Arch IFC/cs

The Arch Workbench features an Industry Foundation Classes (IFC) importer. The IFC format is a more and more widely spread format to interchange data between BIM applications, used in architecture and engineering.

The importer is still a work in progress, and depends on an external piece of open-source software, called IfcOpenShell, which is not bundled with FreeCAD and must be installed on your system. If IfcOpenShell is correctly installed, it will be detected by FreeCAD and used to import IFC files. It is still possible to force the use of the old python IFC importer, which doesn't depend on IfcOpenShell, by enabling the related option in the Arch preferences settings. But this importer has been discontinued and will only be able to import a small subset of IFC objects.

The use of IfcOpenShell is highly recommended, since it is much faster and more powerful than the internal parser. IfcOpenShell supports all IFC2x3 and IFC4 entities that carry geometry information, not all of them can be converted to Arch objects, those that can't will be imported as simple Part shapes.

Importing
All IfcProduct-based entities from IFC2x3 or IFC4 files will be imported into the FreeCAD document. The IFC preferences settings allow you to set how the IFC objects are imported: as full parametric Arch objects, as non-parametric Arch objects, as non-parametric Part shapes, or as one Part shape per floor. Each of these types looses some information over the previous one, but is lighter on resources, which allows to open bigger files. A last type allows to discard entirely the importing of Arch objects, which is useful for structural analytic models.

If parametric Arch objects are used, for all IFC types that have an equivalent in the Arch Module, the corresponding type is used. For the others, a generic Part shape is created. All Arch objects, parametric and non-parametric, will carry the full set of IfcProperties attached to each object.

IfcAnnotation objects are also imported, as well as linear and curve-based IfcStructuralItem-based entities.

Enabling the show debug messages in the IFC preferences settings will print a report indicating if any object from the IFC file failed to import.

Exporting
Exporting to IFC files will export all the selected objects and their descendants. To export a whole building or a whole floor, it is only needed to select the building or floor object. Arch objects will be exported with the type set in their "Role" property. Their IfcProperties are exported as well, and if these objects have an IFC UID from a previous import, the same UID will be kept at export. Objects that are not Arch objects are exported as IfcBuildingElementPRoxy.

IFC files are exported as IFC2x3 or IFC4 depending on your version of IfcOpenShell, which can be compiled with any of the IFC schemas.

If the shape of exported objects is based on an extrusion or a boolean operation, the operation and components will be correctly exported to IFC. If not, the object's shape is exported as IfcFacetedBrep. If the shape contains curves, these will be faceted.

Links
Tutorial Import/Export IFC - compiling IfcOpenShell