FreeCAD BIM development news - December 2019/January 2020

Hi all!

Here is another update about the development of BIM tools for FreeCAD. Sorry about the two months span between updates once again, I'm in the process of moving back to Europe, and things got a bit disrupted...

Nevertheless, here we are, and back on track!

As always, thanks so much to everybody who supports me (and demonstrates patience!) on Patreon or Liberapay!

I've been mostly busy with bugfixing and maintenance work this month, so there are not many new features ready, but several others are in the work and will come out soon. Here is the gist of what we have (sorry, no images this time! Hurrying before FOSDEM!)

Units choice in IFC export

Although IFC files are written in "real world" units, that is, a one meter long wall is always one meter, regardless of the units of the file, regardless of the units of your BIM app (it will simply appear as 3.28 feet if you are working in feet), so far IFC files written by FreeCAD were always written in meters, which is actually the default in IFC.

Now there is a preference option under preferences->import/export->IFC to write the file in feet. Note that the internal, base unit in the IFC file is still meters, there is simply a conversion factor applied, so the utility of this is relative, but there is one important aspect, which is that if you open that IFC file in Revit, if it is written in feet, Revit will automatically switch to imperial units on opening.

Start page improvements

I did a little bit of improvements to the start page, there is now a preference to hide the tips that appear on it, and on the top left corner I also added an icon to directly open the start preference page.

There is still a nasty little bug I haven't been able to fix yet, which is that the notepad feature doesn't save/restore across sessions anymore, when FreeCAD is compiled with Qt5. So at the moment that notepad is pretty much useless. Anyway, I'm not sure anyone has really been using it at all?

Blender exporter

The Blender exporter is now basically ready, I did a lot of optimizing so it is now significantly faster, and objects with multiple materials are now supported.

There is still a question I have been discussing with Dion Moult, the author of the new IFC exporter for Blender (part of IfcOpenShell), which is how faceted objects in Blender could be exported as true curved surfaces. One solution would be to use parametric objects in Blender, so for example a cylinder would still "know" that it is a cylinder, and hold somewhere its radius and extrusion parameters, so it could be exported to IFC as an extruded circle, but that would require specific tools and not so intuitive modeling in Blender, and that would also prevent from, say, perform a boolean subtraction on that cylinder.

Another solution would be to use an algorithm to detect and recreate curved lines or surfaces from faceted ones. So far I haven't found a good open-source one that could be put to good use here, but possibly such thing exist somewhere...

The new exporter (for Blender >= 2.80 only) can be found here (provisorily). Press the "raw" button, right-click -> save as, and from Blender preferences, in the Addons tab, press the "Install" button and navigate to your saved file.

Same as the importer, this exporter needs FreeCAD installed on your system, and compiled with the same version of Python as Blender uses (check the version number in the Python console inside both applications). If the exporter is not able to locate your FreeCAD library automatically, you need to configure its path manually in the Addon preferences.

Draft text UI improvements

The Draft Text tool now gained a proper multi-line editor, which is much more comfortable to compose your text. There is a button to press to create the object after you finished writing, but as before, leaving two blank lines at the end of your text (press Enter twice) ends the command and creates the text.

Other things I'm busy with

None of these is ready yet, but I'm working on them and they should land soon:

  • A curtain wall tool, that would be able to take a surface and divide it and place mullions and panels
  • A structural truss tool
  • Hatching inside the 3D view (for DXF export and more)
  • Hatching of sections, based on a pattern defined in materials
  • Supporting the new BCF viewer in the BIMBots plugin
  • Better handling of material properties in IFC


This weekend, FOSDEM is happening in Brussels, and it will be a major FreeCAD event too, as many developers (sliptonic, kkremitzki, vejmarie...) are coming. We've been busy preparing our talk, and also some swag to distribute! (If you're keen to produce your own t-shirts or stickers, all the files are here)

We'll have a talk on saturday at 11:20, and a side-event at Brussels hackerspace on thursday at 18:00. Be sure to check the forum page (or myself on twitter) to see where to find us during FOSDEM!

That's all for now, thanks for reading!