Full native representation roundtripping in the BlenderBIM Add-on
The current approach in most authoring tools is as follows:
- Import, by conversion to platform (Blender, FreeCAD) specific schema
- Export, by conversion from platform specific schema
- Life is hard, let's do an MVD.
Nobody seems to have succeeded in this approach, as there is a huge amount of data loss in this process. The largest symptom of this is retention of the IFC representation. Whenever you see geometric losing its parametric capabilities, this is a symptom of this occurring.
A common mitigation strategy is to make the conversion to/from parametric geometry smarter. This is a lot of work. FreeCAD has gone this route, and same with the BlenderBIM Add-on to some degree (much less invested than FreeCAD - Blender meshes first, and experimentally preserves some basic shapes later). Not to mention this work will never be complete - there are combinations of primitives in IFC that will never exist in any geometry kernel (alignment curves, I-beam/SHS profiles, point clouds).
I am proposing a new approach, whereby the IFC representation model is retained in the authoring app - and the authoring app offers a fine-grained editing capability to edit parts of the shape representation tree. This retention of the IFC representation will theoretically allow 100% parametric geometry round-tripping with no data loss.
In short, this button becomes possible:
This first commit creates a proof of concept, and I have successfully demonstrated a round-trip of a medium sized file full of parametric geometry with zero parametric geometry data loss (still other data loss at the moment): https://github.com/IfcOpenShell/IfcOpenShell/commit/6cc4ce46c20cd3050070e8c63306a767bf36016b
Will keep this thread updated with the progress, as I suspect this could be a game-changer for IFC authoring.