BlenderBIM: add/subtracting things from 'IFC Representations'

Does anyone know how to assign or unassigned objects from different 'IFC Representations'?
Or create a new 'IFC Representation' and assign objects to it?

Comments

  • I was just talking to @Moult yesterday about this. First of all, there is a bug, solved now:
    https://github.com/IfcOpenShell/IfcOpenShell/commit/cd5786d2a7b5e3f38692aff095967f133a886bf3
    Second of all, there are Representation contexts, found in scene properties. These are global and define which representations can exist in the file. So unless you add the representation context to the scene, you can not add a representation of this type to any object. You can delete a representation with the cross, or add one by picking it from the drop down menu and clicking on the plus. When you create a new representation, it duplicates the geometry of an existing one, which you can replace afterwards.
    I would suggest to get the update first, because in the current release this feature really doesn't work very well.

  • Thanks @JanF
    I pulled the latest.
    Is there a way to assign geometry to multiple representation contexts?
    That is a door frame object, for example, that is assigned to both the following contexts...

  • edited September 2020

    @theoryshaw a single geometry, be it mesh or curve or otherwise, (i.e. the "data" of an object in Blender) can only currently be assigned to a single representation context. The assignment is provided in the name of the data - click on the mesh data tab and you will see a name akin to Model/Body/MODEL_VIEW/GUID. If you want the exact same geometry to be assigned to two contexts, then the file needs to store the geometry twice. This is very, very similar to how it works in IFC (but not identical). Keep in mind that IFC also has certain restrictions on what geometry is allowed to be stored in certain contexts. For example, the model will be stored in 3 dimensions, but the plan in 2 dimensions.

  • Thanks Dion, how would you suggest approaching a door frame, for example, that could show up in multiple contexts?
    For example, the door frame, in two contexts illustrated below, is common to both. That is, if you change the door frame geometry, it will change in both contexts.

  • It is not currently possible (well, everything is possible with some manual workarounds like using drivers in Blender, but not without an inconvenient amount of work!). Also, keep in mind that the door frame as you've shown should be in 2D for the plan view representation.

  • edited September 2020

    sounds good.
    One more question, could you do a 'duplicate linked' across contexts?

  • edited September 2020

    @theoryshaw nope - it is also not allowed in IFC. If it is important, in the future we can write ways to create links / constraints, but they will be purely a BlenderBIM Add-on feature, not native IFC.

  • edited September 2020

    Sound good. remember IFC is malleable as well--there's no sacred cow. :)... but yes, i get it.... it's a balance of many factors.

  • Here's an example of a window object with a linked 2D plan representation, driven by custom properties assigned to the glass panel. I find it quite elegant, have to test how it scales to thousands of objects though. (I know it will not work for the way the representations are done in BlenderBIM now)

  • holy shit.. this is cool! Exploring.

  • edited September 2020

    @JanF I think it does not need to scale to 1,000 objects. For example, a project may only have 20 door types, which then have 1,000 instances. However, since the geometry is mapped, you can temporarily apply the driver to 1 of the 20 doors, edit it, then remove the driver. The driver doesn't need to be applied simultaneously to all 1,000 objects.

  • Drivers may be "fragile" in some situations, you always should try to copy (shift+d) / instance (alt + d) objects to figure if things still are going right.

Sign In or Register to comment.