Resurrecting annotation storage in IFC
I, along with others, share the view that annotation (text, dimensions, etc) is important information and should be stored in an open-data format.
I see two ways to do this.
- Despite the Great IFC Annotation Purge, we can still use IfcAnnotation and IfcTextLiteralWithExtent, and store annotation data in the IFC. They will be 2D objects in 3D space. FreeCAD and Blender can open these IFC files and see all of these objects in the 3D space. They can be RelAssigns to Group (to associate with a view) or assigned to Product (to associate with a product). Some custom psets can be established to allow for things like variables in annotation.
- We can try not to fight buildingSMART, and let them push IFC as a model-space only schema, and establish a new SVG-based standard for annotation. I believe this is less explored, but highly exciting. An SVG can store views, and nested SVGs store views on sheets. SVG elements can have classes and attributes that allow them to be placed in 3D space. For example, after loading an IFC into Blender or FreeCAD, you then load a particular SVG view into Blender/FreeCAD, which parses let's say <line> or <path> SVG elements, which also have a class like class="dimension" so you know it's a dimension, and origin="0,0,0" so you know where it should turn up in 3D space. Blender already implements this to some degree, in that it stores class names and object IDs to every vector object in the SVG.