How to create IfcBuiltSystem and aggregate IfcElementAssembly?
Hi,
I'm trying to organize a project and I think IfcBuiltSystem and IfcElementAssembly are good alternatives for my use case.
Here shows how to create an IfcElementAssembly. Thanks to whoever made this work! :)
Is there something similar to teach how to create an IfcBuiltSystem and aggregate an IfcElementAssembly in it?
Or can someone show me the "step-by-step"?
Thanks
Comments
This help?
https://www.dropbox.com/scl/fi/xe8fqbxes4mkf39ircg40/2023-08-06_18-36-53_KeyShowView_Carnac.mp4?rlkey=w500xj5ix23inosvv9e9tsrt8&dl=0
...
curious to hear what your use case is?
Yes it helped a lot! But I think I missed something because I couldn't assign elements (0:37s in video).

My doubts:
1 - in the video I didn't see if a collection is created for IfcBuildingSystem (my goal of organizing the project)
2 - as IfcBuildingSystem is going to be discontinued, I thought of using IfcBuiltSystem
3 - I tried IfcBuiltSystem in the popup and the system is created (message " 1 system found" appears) and saved in the IFC file, but it does not appear for editing and neither in the outliner. I don't know if it's a bug or I'm doing something wrong. :(
Taking a closer look at the IfcElementAssembly tutorial I realized that it is still not possible to insert IfcElementAssembblyType using BIMTool. I tried 2 methods:
A - Click on BIMMTool/Create element/Add. The type assembly is created, but with the "programmed" shape
1 => expected shape
2 => element created
B - via script (like BIMTool), but I was unsuccessful because the class is not recognized (info panel)
The manual method, as proposed in the tutorial, in my use case may be unfeasible because there are 20 types of assemblies with many different elements and that originate more than 700 assemblies.
My use case is presented in this post.
Cheers
IfcSystems do not show up in the outliner. So if your goal is to use the outlier to organize, I would either use an IfcElementAssembly or IfcSpatialStructureElement.
Yes, i'm not sure why

IfcBuiltSystem
doesn't show up in the following pulldown.I'm not sure what you meant here.
As far as I know
IfcElementAssemblyType
only works with (1) geometry. That is, you can't assembly/aggregate an intelligent wall and intelligent column together and then have 100 instances of that.As I understand it, however, I 'think' it should work this way. It just hasn't been implemented yet.
...
Thankfully, however, @bruno_perdigao, the following pull request, has added some alpha functionality that allows for 'Aggregate/Assembly Types'--such that if the parent changes, all the instances change.
https://github.com/IfcOpenShell/IfcOpenShell/pull/3328
Thank you, I will change my strategy and follow your advice.
Reported bug!
Ok, I understand how IfcElementAssembly and IfcElementAssemblyType work
Here I have my problems, from what I've seen in other posts, the shortcut ctrl+shft+d is used to copy the instance, but in my use case I think I need to create IfcElementAssembly instances from IfcElementAssemblyType via script.
I'll leave a comment in this thread, maybe I'll get some help.
Thanks
seems like 'IfcBuiltSystem' is only in IFC4x3....
https://github.com/IfcOpenShell/IfcOpenShell/assets/507113/fb592599-3c60-416b-a33e-e9beb4ff0a77
Yes I know. Thanks