FreeCAD BIM update 16

screenshot of a 2d plan in FreeCAD

Hi all!

Here we are for a new update showing what I am doing currently with FreeCAD, specifically on the BIM and NativeIFC fronts.

Revamped NativeIFC and FreeCAD 1.0 plan

Thanks to the brand-new sponsoring I am getting from the NlNet Foundation, I wrote a new NativeIFC roadmap, which should culminate with the merge of Arch, BIM and NativeIFC into one built-in BIM workbench, hopefully in time for the mythical-but-almost-there version 1.0 of FreeCAD. This roadmap contains also a lot of new ideas, I guess these months without coding did some good too, I had a lot of time to rethink and play with concepts in a corner of my mind... Some problems I struggled with for month now appear to have one simple and obvious solution.

I started working on that plan already, below are some improvements that you can only try if you have NAtiveIFC installed.

Updated coin rendering system

The plan is to completely remove the dialog you get when opening an IFC file with the NativeIFC importer. Files will be loaded with the fastest settings, and the rest will be loaded on-demand. The first stone of that plan is to offer a decent aspect when loading the IFC file and not loading the shapes (the "coin only" mode in the dialog). That mode will become the new default, and shapes will be loaded automatically when they are needed. Only, we needed that mode to look as good as the shape mode.

This is now done, that mode now uses the same rendering system as normal FreeCAD shapes, it supports all the display modes, allows to set visual properties like line color or thinckness, etc. Transparency is also supported, but, due to a long-time bug in FreeCAD, objects with both transparent and opaque parts don't render nicely. So for those objects, transparency is at the moment disabled.

The infamous bug that made containers display the shape of their children (which forced me to introduce the much-hated "1mm cube" workaround in NativeIFC) is now solved in FreeCAD main codebranch, so at last we can now say goodbye to that dirty workaround.

See commits dc85ff6, 37e3d2c and 3ff1715

Double-clicking to expand and reveal shape

Another part of the above plan, if we are going to import IFC files with the fastest possible settings, is to allow to quickly load data when needed. I introduced a new system that seems to me to work amazingly well. It works like this: When double-clicking an IFC object in the tree, if it has expandable children, it expands. If not, it loads the shape and other geometric data.

So by double-clicking around, you quickly reveal and expand the contents of your IFC file. When you need more data from an object, you double-click again. The icon will turn "filled" to indicate the data has been loaded.

This gives a super fast and intuitive way to load IFC files and explore their contents. No more decisions to be made before loading and before knowing what there is inside the file.

A third double-click action still needs to be implemented, that's the editing, to be done grphically inside the 3D view. That's for later

See commit b382938

IFC-related tree right-click commands are now inside an IFC subtree

That's a small UX improvement, but there were getting many... The idea here is to keep these individual commands somewhere in case of need (not sure if it will be in the tree) but normally the idea is that you would not need them anymore for day to day work.

See commit 300d3de

I'm back into action!

Finally, just a small line to announce the wheel has turned on my side, and I'm master of my time again. So expect BIM development to resume, and I'm decided to not drop the bone before we have all this merged and working natively inside FreeCAD.

That's it for this week I guess! A big, warm, giant thank you to everybody who kept sponsoring me on Patreon, LiberaPay or GitHub even through adverse situations, I will be forever grateful for that. You made us arrive here.