Updated BIM roadmap

A screenshot of the BIM workbench

This is a better road map of what I envision for BIM/Arch/IFC features for FreeCAD 1.0

Arch/BIM/NativeIFC integration

Currently, the BIM feature set in FreeCAD relies on 3 different modules: Arch, which is built-in, BIM, which is an external, installable add-on, and NativeIFC which is still experimental and must be installed manually. These should be unified to present a cleaner solution to the user and have one single, built-in BIM workbench.

Special care should be taken with IfcOpenShell, as it is still not widely packaged on the different platforms. A special handler should be built to help users to install and update it.

Complete NativeIFC feature set

There are still several features in need to be implemented on the NativeIFC roadmap. They should be completed so the NativeIFC feature set is reasonably complete. Among those are:

  • Handle undo/redo
  • Support 2D entities like linework, texts and dimensions
  • Support types
  • Support quantity sets
  • Support mapped representations

Single-file paradigm

I blogged about this idea last time, and it happens that the last update of BlenderBIM goes very much in that direction too (be sure to watch this video to see the new features), and gives a lot of ideas that we can implement in FreeCAD as well. I started working on this already, and several features are already functional. Basically we're talking of:

  • One IFC file = one FreeCAD document. There is no project object anymore, the project data is held directly by the FreeCAD document. You open an IFC file the same way you open a FreeCAD file, and everything in that file is an IFC entity

  • Any new object created in such an IFC document becomes automatically an IFC object

  • If you need several IFC files in one FreeCAD document, then there are a few possibilities. A non-IFC FreeCAD document should be used, with the Reference tool or using the current IFC project object, this needs to be explored further

  • This should always be fully optional. If you work in a classical FreeCAD document, you should still be able to create your BIM model like it works now, with both IFC and non-IFC objects in a same document. And you should still be able to work with BIM models without any IFC component if you wish so.

I am thinking of solving this paradigm by introducing a lock mechanism to the BIM workbench. When locked, everything in the file is IFC. When unlocked, normal FreeCAD objects can coexist with NativeIFC objects.

NativeIFC graphical edit

BIM objects like walls, slabs, columns, etc... should be editable graphically, directly in the 3D view, like other FreeCAD objects. Other kinds of objects should offer a way to decompose their geometry and have their underlying geometry editable.

The way I see this:

  • IFC objects have their geometric properties (height, baseline, boolean operators,...) rendered as object properties
  • Upon entering edit mode, these properties can be edited graphically by moving markers in the 3D view (same as Draft objects)
  • Draft stretch and trim tools should support IFC objects

IFC generation merged upstream

The current translation of non-IFC objects to IFC is done via the Arch IFC export module. While this has served us well so far, we should rely more on IfcOpenShell and start building FreeCAD support right into IfcOpenShell itself!

New window tool

I guess nobody will disagree with this. The current window tool is cumbersome and hard to use. We need a better, proper window tool that allows to build windows in different ways or with other workbenches, and that provides better ways to handle the placement of a window relatively on its base wall. I already blogged about this earlier already.

I'm also very proud to announce that I just receive a grant form NLNet foundation to finish the work on NativeIFC, and my plan will likely include all of the above and more. More about that soon!