IfcElementAssembly in the BlenderBIM add-on

Related to this comment by @bruno_perdigao.

I am using the latest development release of the BlenderBIM add-on.
How do I recreate what you are doing in your .gif from your post?

This is my attempt, I just have one IfcElementAssembly with two beams, but copy pasting the IfcElementAssembly didn't copy all the related items in the IfcElementAssembly

It seems to be merged as I read here:
https://github.com/IfcOpenShell/IfcOpenShell/pull/3328

Comments

  • did you select the aggregate's empty, and crtl + shift + d?

  • @theoryshaw

    I tried several buttons, but nothing seems to happen.

  • hmm.. not sure.

  • could it be this?...

  • @theoryshaw

    I indeed didn't check that, but now it "copies" only the empty.

    But for you it works as intended?

  • yes.
    Did you make sure to use crtl + shift + d?

  • @theoryshaw said:
    yes.
    Did you make sure to use crtl + shift + d?

    Yes, I did. :(. I am doing something wrong...

    Are you on the latest stable release?

  • Are you on the latest stable release?

    yes.
    Are you holding ctrl and shift down at the same time, and then hitting d :)

  • are you on windows/mac/linux?

  • @theoryshaw
    I'm on Windows 11 with Blender 3.5 and BlenderBIM latest stable release installed:

    I created three IfcBeams from the IFC4 Demo library and made them into an IfcElementAssembly using the IFC aggregates tab

    I selected the Selectable/Selectable, no ide what this does.

    I made the BIM tool active and now select the IfcElementAssembly/Assembly empty, then I press ctrl shift D, only the empty appears, same when having the Select Box active.

  • Just to be sure, I expected when duplicating the empty of the IfcElementAssembly the entire related IFC elements would be copied with it. or is that not intended behaviour? I can make this work but then i just dumb copying the IfcElementAssemblies.

  • PR was pulled only 4 days ago. Sorry, when you said stable release, i thought you meant the latest release.

    bruno_perdigaoCoen
  • I would recommend using the following method to get the bleeding, bleeding edge.
    you can handle it. ;)
    https://blenderbim.org/docs/devs/installation.html#live-development-environment

    Coen
  • Yes, it was recently merged. I hope it works now

  • For anyone willing to try this feature, a few warnings about it:

    • It's still experimental and may change in the future.
    • The refresh operator deletes and recreates all duplicates. So it can become very slow if you have a lot of objects.
    • If there is any issue that you think it's related to this, please tag me here or in an issue on BlenderBIM's GitHub repo.
    theoryshawCoen
  • edited July 2023

    @bruno_perdigao

    Nice feature!

    Is it possible to update/replace/modify one IFC element in each of the assemblies?

    theoryshaw
  • Can one of the IFCElementAssemblys also be rotated relative to the ground plane? ( I struggle in Revit which won't allow this transform).

  • edited July 2023

    @Bedson

    Can one of the IFCElementAssemblys also be rotated relative to the ground plane? ( I struggle in Revit which won't allow this transform).

    Don't really understand your question, you want to rotate an assembly? If so, is the Select Parts an option?

  • edited July 2023

    Is it possible to update/replace/modify one IFC element in each of the assemblies?

    I don't know if I fully understand, but for now, any changes you want to make have to be done in the parent IfcElementAssembly. Then, if you use the refresh operator, the changes will reflect on the duplicate.
    There are a few things that I want to implement to make things easier: a button to select the parent (right now you have to know where it is) and a button to unlink the duplicate if you want to make it independent.

    Can one of the IFCElementAssemblys also be rotated relative to the ground plane? ( I struggle in Revit which won't allow this transform).

    Yes. Not the best demo, but the GIF in this comment shows a little bit of how it works

  • @bruno_perdigao

    Then, if you use the refresh operator

    Where is this refresh operator button hidden? ?

  • For a future roadmap, i do like the idea of being to edit any of the assemblies instances throughout the project, and then they all update.

    Coen
  • @theoryshaw said:
    For a future roadmap, i do like the idea of being to edit any of the assemblies instances throughout the project, and then they all update.

    And I would like to add the possibility to array assemblies.

  • Dumb question, why not use Blender's collection instances for these typed assemblies? There might be some performance advantages.

  • @theoryshaw said:
    Dumb question, why not use Blender's collection instances for these typed assemblies? There might be some performance advantages.

    A blender collection won't survive an IFC roundtrip?

  • @theoryshaw said:
    For a future roadmap, i do like the idea of being to edit any of the assemblies instances throughout the project, and then they all update.

    If collection instances too, could use something like the following to edit any child aggregate type, to change them all.
    https://bartoszstyperek.gumroad.com/l/GroupPro

  • @Coen said:

    @theoryshaw said:
    Dumb question, why not use Blender's collection instances for these typed assemblies? There might be some performance advantages.

    A blender collection won't survive an IFC roundtrip?

    It could. :) It's only a matter of code.
    It actually did at one point: https://github.com/IfcOpenShell/IfcOpenShell/issues/1194

    Coen
  • Where is this refresh operator button hidden?

    Sorry, it is hidden. You have to select the children duplicate (the empty with the IfcElementAssembly class), press F3 and type "refresh aggregate". And you have to do it for each duplicate. I know, not ideal...

    Coen
  • @theoryshaw I'm trying to finish this basic implementation, and then I'll investigate how to improve with a different system. Thanks for the references, I'll dig in when I have the time.

Sign In or Register to comment.