Looking for users interested in generating IDS (Information Delivery Specification) deliverables from Grasshopper. IDS is a standard to enable nomination of BIM requirements in an open manner that permits model checking in a wide variety of software. Refer to Information Delivery Specification - buildingSMART International for more information.
I’ve started developing components to permit generation of IDS from Grasshopper. I’ve enabled some typical aspects to get started, and will enable enhancements in an agile manner based on feedback from users.
An initial file to demonstrate is here 240902 IDS.gh (13.8 KB)
If you’ve questions or suggestions, let me know. I’ve tested import of the IDS into Solibri and ACCA usBIM, but look forward to feedback on other IDS capable software.
Hi Jon, I wanted to reverse-engineer one IDS in Grasshopper, but from what I understand, at the moment, GH components only allow setting Applicability for the IFC object classes, I would like it to be Property Set based as in the snippet I provided. Am I right, that it’s not possible at the moment?
Much of our development is on demand (where it’s practical to do so, we can’t support anything).
What you are looking for is certainly something we do want to support.
If you can update the plugin, this script should achieve what you have described. Let me know if not.
Thank you,
It seems to be working fine Hopefully, I will find time to investigate IDSes more.
Currently, I deal with hundreds of models from various industries.
Thanks to optimizations by filtering out the Types that I want to check in a given model, I can generate IDSes tailored to each building and thus avoid unnecessary queries about non-existent Types, which in the case of some models speeds up the check by 30 times!
I check models using Blender (Bonsai).
Generating separate IDSes for each building can indeed significantly shorten the time in which the test is performed by the computer, but it adds work to running tests in Blender, where I have to run the test with its separate IDS for each model (this is also a little human error prone). This could probably be automated in Blender, but I wonder if, since we have the ability to load IFC models in Grasshopper, adding the functionality of checking models based on prepared IDSes would be possible directly in Rhino/Grasshopper?
Following this line of thought… would it be possible to encapsulate this entire process in a Grasshopper Hops component and distribute this process across separate CPU threads so we can more efficiently utilize CPU to check multiple models at once?
There are some interesting suggestions here. At the moment, validation is not in our development expertise. So there is no intention to develop a geometry gym IDS based checking tool.
However, if there are other developments that could be utilized, it could be possible to test aspects such as hops. Have you tried IfcOpenShell validation from the command line? I believe this is what is used in Bonsai. Would be interesting to pursue this further.
Thanks for the tip. I used ifcOpenShell Python module. I first tried in Grasshopper using Hops, but more often than not, I can’t configure Hops to distribute work across multiple threads… I don’t know what I’m doing wrong. Anyway, IFC validation via IDS in Grasshopper is not necessary for me, so I ended up doing it externally.
Without going into details… I wanted to create many IDSes at once. I don’t know if I would create such a tree structure, in any case it would be troublesome, so I preferred to loop the process using Anemone. Everything worked, but I had to do something non-standard, I left the loop before the ggIDSIDS component and only sent new data to it, and it saved the IDSes to disk.
Your component saves data also bit different (it is always live and does not have a boolean input), but also the “recorded” output of ggIDS Specification from Anemone did not work. Now I see that I cannot e.g. internalize and copy primitive with Specification. Is it some special data type?