FreeCAD BIM development news - February/March 2020

Hi everybody!

High time for a new update about the development of BIM tools for FreeCAD. Once again, sorry for the lag since last update, no need to explain I guess, everyone is having the same kind of struggle. Between the coronavirus confinement and my move to Europe, which I was able to do just in time, things got a bit wacky.

The good news is, I am now well settled in Belgium, and decided to get back as much as possible to FreeCAD. I really miss coding and spending time with it, and currently orienting things to be able to do more of it again, and possibly, who knows, make it my main occupation.

As always, thanks so much to everybody who supports me (and demonstrates patience!) on Patreon or Liberapay! I hope in the near future we can harness new levels and help making the use of FreeCAD as a BIM platform explode!

So here is a short overview of what I've been working with this month:

BIM templates

The BIM Project tool has now been extended to support file-based templates. The system is rather simple: On saving a template, the active document is saved as a standard FreeCAD file, including all the current workspace settings such as working plane position or units settings. On restoring a template, its contents (if any) will be merged into the current document, and the stored settings applied.

I'm quite happy with this simple thing as it works in a way more flexible manner than most templates found in other BIM applications: Here, you can apply a template AFTER starting a file.

Saving working space settings is in my humble opinion not so useful, as in FreeCAD there is not much "preparation" needed before starting to model, and you usually switch these things all the time, and they are easy to manipulate, but having a way to store some "libraries" of objects somewhere and be able to recall them anytime into your project when you need them seems an awesome feature to have.

BIM library online mode

The BIM Library tool, that allows you to insert in your model elements from the FreeCAD parts library, now has an online mode, that you can switch on/off. When off, the tool works as before: The parts library must be installed from the FreeCAD addons manager, and the library tool relies on it. You can keep the library updated with the addons manager.

In online mode, you don't need to install the library. Its contents are fetched directly from the online GIT repository. However, browsing the entire library via the web takes a couple of seconds and placing takes time because files need to be downloaded. We might also be limited by the Github API, so for now it works but I keep it under watch.

Updated BIM documentation

The documentation of the BIM workbench is now finally complete and fully up-to-date. I'll do my best to keep it that way from now on!

BIM tutorial

The BIM in-game tutorial, that you find inside the BIM workbench and that walks you through the different steps to find your marks with the BIM workbench, is almost complete now. You can launch it from within FreeCAD, from menu Help -> BIM tutorial.

There are just a few paragraphs missing, basically one to show how to use the TechDraw workbench to produce printable 2D documents, and one to manage IFC properties of your objects.

Custom tests in BIM preflight

The BIM Preflight tool has been upgraded to support custom tests. This tool allows you to perform a series of tests on your model before exporting to IFC, to detect issues that could make your model less compatible or conform to standards.

Now, you can write your own tests too. These are pretty simple to write in Python, they are just simple functions that must pass or fail. This can allow a BIM team, for example, to setup rules, and to setup rules that verify that the rules were applied to the model.

Would we now need a kind of "certificate" system that a certain model passed the tests? What's yor idea on that? Don't hesitate to give your ideas.

Level manager

The Views and levels manager has been upgraded a bit, with new buttons and tools. You can now change the height of a level on the fly, or rename it, making it a much more interesting levels manager.

There is more work to be done on this widget so it can really become a good structure view of your model and allow to manage the whole thing in one simpler place than the tree view. But I think we are getting there.

Top, Front, Side working plane shortcuts

In the Bim Workbench, under the snap menu are now three new commands to set the working plane to Top, Front and Side positions. This is specially convenient to use from keyboard shortcuts, so you spare yourself a few clicks.

Pipe tool improvement

The Pipe tool has gained one new property called Wall Thickness that allows to specify the thickness of the material the tube is made of, which effectively makes the tube hollow. This makes working with tubes more realistic, although it might also add unnecessary detail and make the model heavier. Keeping the wall thickness to zero makes the tube fully filled, like it was before.

IFC export of ortho arrays

The IFC exporter now supports Orthogonal arrays. The array object itself is exported as an IfcElementAssembly, and its subobjects as clones. This reproduces more or less the same behaviour as the array, where each copy is an instance of the original object, but the arraying information is lost, as unfortunately the IFC standard doesn't provide a structure for instantiated arrays.

More array types will be supported later on, but I thought I'd start with one case to see if it works well.

IFC export of App Parts

App Parts are a special type of object container in FreeCAD, similar to groups or building parts. They are still not widely used in BIM workflows, but have their advantages too, as they are more simple than building parts, but have more features than groups. Think of them as a group that moves its children when moved, and defines relative coordinates (the placement of the children remain unchanged even after moving the part).

App Parts are now supported at IFC export. They are also exported as IfcElementAssembly objects.

Custom Property Sets in IFC Properties Manager

The IFC properties manager now allows you to define your own property sets, which can then easily be added to your objects from the property manager tool.

Misc other improvements

That is only the part I've been working on myself, but others are very active on other places of FreeCAD, and many improvements are coming everywhere else. What we call "the big merge", which was the merging of Realthunder's code that added the App Link system, which caused quite some instability in FreeCAD because of its magnitude, is now mostly stabilized (grab a 0.19 preview build to test, it's now very stable), and huge work is being done to refactor and extend the Draft workbench, which is one of the base pieces of the BIM workbench. Other workbenches such as FEM, TechDraw or Path have also seen very active development.

A little bit about the future

Several of us also think that with the fast growth, FreeCAD is coming to a point where the project and community as a whole are getting difficult to manage. Also, FreeCAD begins to interest companies, and its current loose, community-based only structure fails to provide what companies need (contact points, "official" communication channels, and official sponsoring possibilities).

Although it is of uttermost importance to everybody involved in the project to make sure FreeCAD continues absolutely free of any influence of the commercial world, and its developers free to develop in any direction and pace they want, without any form of pressure or direction, we also think there could exist a new "layer" on top of the FreeCAD development itself, that could provide that better interface, and possibly could receive sponsoring and help developers to feel more comfortable or do more or a better job. It is still not clear how this could exist, but we have started thinking.

Also being myself in Europe now is an excellent opportunity to dig into this further and connect to other projects, gather ideas, etc.

I think that's it for this edition, thanks for reading, and see you next month!