FreeCAD BIM weekly update 5

Hi all!

Time for our fifth weekly update, showing what I have been doing this week with FreeCAD, specifically on the BIM and NativeIFC fronts. No new features this week but a lot of research and perparation:

  • NativeIFC: Exploring BBIM 2D output: One of the big stones in our shoes in a BIM workflow in FreeCAD, is the long time it takes for FreeCAD's - actually OpenCasCade's - HLR (Hidden Line Removal) algorithm to generate a 2D view of a model. BlenderBIM features a very fast 2D representation system, that is entirely done with IfcOpenShell. I am exploring how it works, and how it could be used in FreeCAD in place of the OpenCasCade algorithm. issue

  • NativeIFC: Enabled NativeIFC in BIM project tool: One of the original ideas of the NativeIFC mdodule is to not provide its own tools but rather integrate in the current FreeCAD BIM workflow. Since last week I implemented a Python method to create an IFC document from scratch, I now tied it to the BIM Workbench, as a proof of concept. Now, in the BIM workbench, if NativeIFC is installed, the Project tool will now create a NativeIFC project instead of the usual Arch Project. You will notice that the icon has an IFC overlay, to indicate that command is NativeIFC-enabled. Is it a good way forward? Tell me! commit

  • NativeIFC: Explored schema change: IfcOpenShell allows to change the schema of a file, currently only between IFC2x3 and IFC4. I am exploring how to integrate that within NativeIFC IFC documents. issue - branch

  • BIM: Prepared removal of units selector: A global, FreeCAD-wide units selector in the status bar has recently landed in FreeCAD's master repo, turning the units selector in BIM obsolete. I prepared a commit to remove it, that will be merged once the main feature has arived to a stable release. PR

  • NativeIFC: Started translating BIM/FreeCAD objects to NativeIFC: Since the creation of a new IFC document works very well, it's now time to attack other kinds of objects. Since we already have a good workflow in BIM, a first way of doing it is pretty straightforward and obvious: We let people create normal, usual BIM objects, then we turn them into IFC objects, and integrate them to an IFC document. Most of the work is there already, as we can use our current IFC exporter to convert BIM objects (or any other FreeCAD object) to IFC. So I started to work on a simple structure that takes an object, "ifcize" it, and adds it to a given IFC document. This should get us pretty far already, and enabling NativeIFC for existing BIM tools should be just a matter of adding one line that ifcizes the object after it's created. Later on, the ifcizing system can also be used in drag and drop operations. And even later on, we can begin to think if any of those BIM tools needs to be adapted any further.

That's it for this week! As always, thanks to everybody who sponsors me on Patreon, LiberaPay or GitHub!