FreeCAD IFC Guide: How to Import and Export
This article provides an overview of the Industry Foundation Classes (IFC) format and explains how FreeCAD handles IFC import and export operations. Readers will learn the fundamental purpose of IFC in open Building Information Modeling (BIM) workflows, the prerequisite tools required by FreeCAD, and the direct, step-by-step procedures to exchange architectural 3D models and parametric data without vendor lock-in.
What is the IFC Format?
The Industry Foundation Classes (IFC) format is an open, vendor-neutral data standard developed and maintained by buildingSMART. It is designed to facilitate interoperability across the Architecture, Engineering, and Construction (AEC) industries. Unlike standard CAD exchange formats like STEP, IGES, or DXF, which primarily transfer geometry, an IFC file contains rich semantic data. This includes:
- Spatial hierarchies: Projects, sites, buildings, and storeys.
- Semantic object types: Walls, slabs, beams, doors, windows, and MEP systems.
- Material definitions and physical properties: Structural, thermal, and manufacturer data.
- Relationship data: How elements connect, intersect, or void one another.
Because IFC is platform-independent, it allows architects, engineers, and contractors using different software suites to share accurate model data seamlessly.
FreeCAD and the IfcOpenShell Integration
FreeCAD supports BIM workflows natively through its integrated BIM Workbench (formerly the Arch Workbench). To process IFC files, FreeCAD relies on IfcOpenShell, an open-source library that parses, converts, and generates IFC data.
Before importing or exporting IFC files:
- Verify that IfcOpenShell is installed. In modern distributions of FreeCAD, IfcOpenShell is often bundled automatically.
- If it is missing, install it via the FreeCAD Addon Manager or your
system’s Python package manager
(
pip install ifcopenshell). - Check status under Edit > Preferences > BIM > IFC to configure read and write parameters.
How to Import IFC Files into FreeCAD
FreeCAD allows users to open an IFC file as a new document or merge it into an existing scene.
Steps to Import:
- Open FreeCAD and switch to the BIM Workbench.
- Go to File > Open (to create a new document) or File > Import (to insert into the active document).
- In the file format dropdown, select **Industry Foundation Classes (*.ifc)**.
- Locate your file and click Open.
Import Settings and Modes
Under Edit > Preferences > BIM > IFC, FreeCAD offers two main ways to handle incoming IFC data:
- Full Parametric BIM Objects: FreeCAD converts IFC
entities into native BIM objects (such as
BIM WallorBIM Structure). This makes the geometry fully editable but can increase load times for large models. - Non-Parametric Shapes: Geometry is imported as standard static shapes (Part shapes). This provides faster loading times and lower memory usage, which is ideal for viewing, referencing, or clash-detection tasks.
How to Export IFC Files from FreeCAD
Exporting to IFC produces a standards-compliant BIM file that can be opened in proprietary applications like Revit, ArchiCAD, or Solibri, as well as open-source viewers like Blender with the Bonsai (formerly BlenderBIM) add-on.
Steps to Export:
- Organize the Model: Ensure elements are properly structured under a spatial container, such as a Building or Building Storey, available in the BIM Workbench.
- Assign IFC Types: Verify that components have
appropriate IFC roles assigned. Select an object and check the
IFC Typeproperty in the Property View (e.g., set a generic solid toIfcWallorIfcSlab). - Select Elements: In the Tree view, highlight the root project container or select all individual objects you intend to export.
- Go to File > Export.
- Set the file type to **Industry Foundation Classes (*.ifc)**.
- Choose the destination path, enter a file name, and click Save.
Best Practices for FreeCAD IFC Workflows
- Maintain Clean Geometry: Ensure solids are manifold and free of self-intersections before export. Non-manifold shapes can fail geometry checks in downstream IFC viewers.
- Use Spatial Containers: Always group components
inside an
App::Partor native FreeCADBuilding Storeycontainer to guarantee a valid IFC spatial structure (IfcProject>IfcSite>IfcBuilding>IfcBuildingStorey). - Manage File Size: For large federated models, import only the storeys or disciplines required to prevent high memory consumption. Use FreeCAD's IFC preference options to skip non-essential properties during read operations.