BlenderBIM - nothing gets updated after first export

BlenderBIM 0.0.210221 / Blender 2.91.2 / macOS Big Sur 11.2.1
When I create a random mesh and assign the IFC class, I can export it correctly to IFC.
However, everytime I start editing the mesh in Blender and repeat the export, the IFC file keeps the first geometry. Am I missing a step? Do you need to reassign class or remove and regenerate the representation first?


  • @StefanBoeykens Right now, you need to regenerate the representation. In the Mesh properties, there is a button called "Update Mesh Representation". For easy access, you can use the "Shift E" shortcut in the viewport and either mouse/keyboard shortcut to the "Update Mesh Representation" command.

    In the master branch, there is now a mode to auto update every time you update it in Blender, so that you do not need to explicitly tell it to regenerate the representation.

    The reason for this behaviour is:

    1. There have been quite a lot of usecases where people want to edit the objects but not edit the IFC file, such as if they are prototyping or experimenting with an option, or simply tweaking the geometry for a particular specific purpose that should not be fed back into the IFC. This makes editing the IFC an explicit operation.
    2. Users need to understand that Blender by default manipulates meshes out of the box. Sometimes, editing meshes in IFC is what you want. Sometimes not. Sometimes you want to maintain the parametric shape. Sometimes you want to convert parametric shapes into meshes, and sometimes the other way around. Making these conversions explicit is something that the BlenderBIM Add-on is doing to ensure that the full capabilities of IFC are not lost on the user. In most BIM apps, users don't get a say in this, and things are translated mostly in a hardcoded, magic way. This is the opposite of how I believe the BlenderBIM Add-on should work - users should have a choice between heuristic magic, and fine-grained custom manual control.

    The UX is still far from polished - as you've discovered, it was not obvious to you as a user how these workflows occur. In fact, there are still no gizmos to edit parametric shapes visually in 3D, only via entering properties, which is quite poor UX. There is also currently no way to convert from mesh to parametric (the function exists, but no UX for it - so we will bring it back in the next release perhaps), although you can convert from parametric to mesh. There is also no UX to edit heavily nested parametric IFC geometry (e.g. nested CSG booleans with different type of solids). However, the code now supports all of these things at a fundamental programmatic level - so we can start moving away from the guts and into the UX.

    Hope it helps describe the current state of the software. Things are changing fast, though!

  • edited February 2021

    A heads up that thanks to collaborating with @fbpyr the BlenderBIM Add-on can now intelligently convert meshes into parametric IFC rectangle extrusions, true parametric circle extrusions, as well as arbitrary polyline swept solid extrusions. The user does not need to manually specify profiles and extrusion vectors - the BlenderBIM Add-on is smart enough to work it out (famous last words!).

    Note: currently only supports creating 1 extrusion per IFC representation - still need to build the features to edit nested items / or edit portions of representation items.

  • When converting from mesh to arbitrary swept solid extrusion, BlenderBIM takes the largest cross-section/profile by default to extrude it, correct? Is there a way to specify which cross-section is selected for extrusion?

  • it extrudes in the object's z direction... so you would change the object origin z direction, to have it extrude in a different direction.

  • Thank you, it works!
    However... For now, I changed the local orientation of the object via "Options -> Transform -> Affect Only -> Origins" and assigned an IFC class after that, because once after the object turned into IFC, the Affect Only -> Origins does not work as expected anymore.
    This is a problem because I am using a script to combine two instances of the same (IFC) objects with different representations into one, and now one representation has a different orientation...
    What can I do about that? Thank you very much!

  • It works perfectly for the first part.
    After merging the representations, however, the SweptSolid is still rotated...
    Here is the script I am using.

Sign In or Register to comment.