AEC Hackathon, February 2024 in Zurich
- Ahmed Wael Ismail
- Christopher Diggins
- Elia Wäfler
- Helena Krogmann
- Mohamad Khazna
- Olga Poletkina
- Otmane Salih
What is called a BIM model, is actually a disparate set of documents stored in different CDEs, with lots of replication. Communicating and collaborating between stakeholders and teams requires a complex and inaccurate process involving conversions of files.
One of the biggest challenges is having a common understanding of when two documents or issues are talking about the same thing. In other words there is no widely-agreed upon mechanism for a project to have a central authority to identify the entities.
Our proposal was to build an Identity Model in a text-readable format (e.g., JSON) which provides linkage between the different chunks of data (components) and the different documents.
By storing the entity and component data in plain-text, we can use use the same text-based version control tools that developers use such as VS code, Git, and Github.
We have a sample representation of hosting an Identity Model on a Github repository online at [https://github.com/cdiggins/IdentityModelSampleRepo]
Beyond using existing tools, by storing it in an easily parsed format like JSON, it is possible to quickly write new tools that can compute deltas between identity models and show the differences directly in the BIM authoring tool:
revit-receiving-data2.mp4
We can also provide better controls for people making changes to send (commit) data when it make sense:
rhino-sending-data.mp4
- [https://github.com/ara3d/aec-hackathon-identity/blob/main/identy.pptx]
- [https://github.com/ara3d/aec-hackathon-identity/blob/main/identy.pdf]
One of the technical hurdles is dealing with similarity with meshes. For the purpose of the Hackathon we developed some code in C# to compute mesh similarity.
Some of the code for the hackathon can be found as part of the Ara3D repository online at:
- https://github.com/ara3d/ara3d/tree/main/labs/Identification
- https://github.com/ara3d/ara3d/tree/main/labs/IdentificationApp
These folders contains libraries of C# functions for:
- Generating an initial identity model in JSON format
- Computing difference between two identity models as an array of JSON records
In a separate repo:
- A Rhino plug-in was written by Ahmed Wael Imsail to generate a list of OBJs from Rhino.
The following code examples have not yet been uploaded online:
- A Python script for Revit was written by Olga Poletkina to read JSON difference records
- A Python standalone script was written by Elia Waefle to generate a list of OBJ files and JSON parameter sets