What has been discovered after taking IfcOpenShell for a test drive:
- IfcOpenShell is making some great progress and is able to import the vast majority of the geometry successfully 1
- UV coordinates are generally not present in IFC files, making them perfect for the use of procedural materials
- The fact that only blank materials are assigned in IfcBlender is not such a problem since one would probably have to redefine them anyway for the rendering engine
- The fact that there is no normal smoothing for curved surfaces is quite appearant and has priority to be fixed
- Often objects contain multiple parts, these parts should be preserved to make assigning different materials to different subsets of the meshes easier 2
- Mapped representations should result in instanced geometry to reduce memory usage and limit manual work involved in finetuning the meshes 2
I would love to hear your comments and hear how IfcOpenShell fits into your workflow.
1 If you want to get an idea of the progress IfcOpenShell is making, compare this wireframe view of the FZK haus to an import done only a month ago by Rafael Moya.
2 For example consider the following representation (with apologies for the IFC lingo):
At this moment this results in one mesh with id #100. An alternative would be to mesh the five representations that are referenced by #90-#94 [indeed, one of them is #109] seperately and share them amongst the objects that reference them.#100 = IFCSHAPEREPRESENTATION(#13, 'Body', 'MappedRepresentation', (#101, #102, #103, #104, #105));#101 = IFCMAPPEDITEM(#106, #107);#106 = IFCREPRESENTATIONMAP(#108, #109);