Swap representation

edited November 2021 in General

I have an IFC-file that I want to optimize. In general, lots of geometry is identical, but it is saved multiple time in a very inefficient way (yes, just dumb faces).
What I want to achieve is creating clean geometric representations (e.g. extrusions, maybe with profiles, which could be interesting especially for cable carriers, ducts and pipes) and replace the old geometry with the new one (using types and mapped geometry would be an option too, I guess?). Is there a way to do this using blenderbim? Or do I need to dig into ifcopenshell directly and do it there?

Comments

  • Blenderbim has a function that cleans up geometry called: "clean wire frames"
    Maybe give that a go?

  • I don't think that solves the problem of not reused geometry. It works for preparing drawings afaik.

  • @tobenz there seems to be two parts to your question:

    1. You can convert meshlike geometry (faceted breps or tessellations) to parametric extrusions currently only in simple scenarios. In the mesh properties tab, you can choose "Update Representation as Foo", where foo includes rectangular, circular, and arbitrary extrusions (with voids). If you want to update it into a parametric profile based extrusion (e.g. Zed profiles, I-beams) then currently unfortunately you need to do the whole material profile set stuff. It works, it's just you need to use material profiles to set it up.
    2. Another is type reuse. In the BlenderBIM Add-on, the (slightly ambiguous) rule is enforced such that types with representation maps must propagate their representations to all occurrences of that type. Therefore, assigning a type with a representation and reassigning the type to that type will automatically ensure types are reused.

    Hope it helps. I've done quite a bit of cleaning similar to what you describe so the tools are all there.

  • @Moult Thanks, I was almost certain that you already had thought about it. I didn't recognize the "update as Foo" until now, but it makes sense. Is it possible to define the parametric profiles within the files or do I need to import it, e. g. via the project library? I think I read that you scripted it into the library file?

    I guess I could place a type and "re-engineer" the shape in edit mode? Currently afk and just wondering...

  • Updating simple geometries works, more complex ones need manual work, but that is fine. What I could not figure out was how to assign a new type (e.g. IfcOutletType) to an IfcFlowTerminal in IFC 2x3. I cannot select this type in the dropdown. Any ideas?

  • In my model I have some types with an empty geometry, and this forces the instances to also display instances. To change this, do I need to redefine the type geometry from scratch (that would be a bit cumbersome to transfer psets) or can I model geometry instead of the empty (which I couldn't as empties don't allow going into edit mode)

  • HI @tobenz can you share very specific file examples of what you're trying to do--helps dial in on an exact solution. If you can't share the file, just share parts of it, maybe.

    Moult
  • If you're using the daily builds, the type UI panel was recently halfway put through the refactoring process. I finished it up here so that might help: https://github.com/IfcOpenShell/IfcOpenShell/commit/2120653104bfdb9a61a96d3eaffd14c77a69b379

  • Selection works now. There seems to be an issue with the geometry though, I get an error and geometry gets replace with a cube.

  • I probably need to see what you're doing - either by screenshare or perhaps share your files?

Sign In or Register to comment.