From Wiki.OSArch
Ifcopenshell logo.png IfcOpenShell IfcOpenShell is a C++ and Python open source software library that helps users and software developers to work with the IFC file format. The IFC file format can be used to describe building and construction data. The format is commonly used for Building Information Modelling. LGPL-3.0

IfcOpenShell is an open source (LGPL 3) software library that helps developers work with the industry foundation classes (IFC) file format. The IFC file format can be used to describe building and construction data. The format is commonly used for building information modelling (BIM), for example, mechanical loading analysis, and thermal and energy efficiency studies. IfcOpenShell is primarily a collection of C++ libraries, however, as it has Python bindings, it can be integrated with programs like FreeCAD and Blender.


IfcOpenshell contains multiple tools which can be used independently or together :


A command line tool to convert IFC to different format including :

.obj WaveFront OBJ (a .mtl file is also created)
.dae Collada Digital Assets Exchange
.glb glTF Binary glTF v2.0
.stp STEP Standard for the Exchange of Product Data
.igs IGES Initial Graphics Exchange Specification
.xml XML Property definitions and decomposition tree
.svg SVG Scalable Vector Graphics (2D floor plan)
.ifc IFC-SPF Industry Foundation Classes

You can pass multiple options. Type IfcConvert --help to learn more (considering it is installed on your system).


A command-line tool which allow to process geometry in a crash safe manner using a child process with dynamic linking.


A python API to manipulate IFC. See IfcOpenShell code examples. Comes with many utility functions for geolocation, data extraction, IFC query filtering, and more.

IFC Clash[edit]

IFC Clash detection using the flexible collision library.


Conversion of IFC files into input files for Code_Aster structural simulation software.

IFC COBie[edit]

Conversion of IFC-SPF data into SpreadsheetML format for the COBie MVD. Includes error logging of invalid data and support for open format alternatives like CSV and ODS.

IFC CSV[edit]

Import and export support of IFC data to and from CSV files using a custom IFC query language.

IFC Diff[edit]

Compares two IFC files with settings to check geometry or particular data relationships. Produces a parseable diff in JSON.

IFC Patch[edit]

Provides a standard interface for users to easily apply predetermined "recipes" to manipulate IFC data without needing to have any technical knowledge. See forum topic for a example how to run it. https://community.osarch.org/discussion/10/ifcpatch-tool-now-available#latest

IFC Sverchok[edit]

Provides an extension to the Blender Sverchok add-on for visual programming nodes for IFC within the Blender environment.


Provides a way to specify BIM exchange requirements using natural human language and audit IFC files to check if they comply with the requirements.


Warning Warning: Superseeded by BlenderBIM Add-on.

The first Blender plugin created to import ifc into Blender.


Warning Warning: This plugin seems to not be developed anymore.

An Ifc importer for 3ds Max.

Softwares powered by ifcopenshell[edit]

Many software rely on ifcopenshell for their IFC support and more :

  • BIMxBEM : import IfcRelSpaceBoundary, IfcSpace and related building elements geometry and data
  • BlenderBIM Add-on : ifcopenshell-python - import/export, multi-core geometry processing and more (Winner of 2020 buildingSMART Awards in Technology)
  • FreeCAD : ifcopenshell-python - import/export
  • ifc-pipeline : IfcConvert / ifcopenshell - python
  • Tridify (Epic Megagrants recipient)
  • BIMServer
  • BIMSurfer
  • Xeokit-SDK
  • BIMData.io
  • Areo
  • TriDyme
  • StreamBIM (previously known as Rendra.io) (Winner of 2020 buildingSMART Awards in Construction via Project Celsius)
  • Augin.app

It is also used in university courses around the world.

  • Fachhochschule Nordwestschweiz FHNW (University of Applied Sciences and Arts Northwestern Switzerland)
  • MSc-education of Architecture, Civil Engineering and Construction & Robotics tracks at RWTH Aachen University and TU Eindhoven


IfcOpenShell may be packaged in different Linux repositories, ready to install and use; or it can be packaged together with some programs that use it, for example, FreeCAD.

In other cases you may get one of the stand-alone, pre-compiled distributions, or you may download and compile the source code yourself.

To learn more about installing IfcOpenShell, visit the page in the FreeCAD wiki: IfcOpenShell.

Learn more[edit]

External Resources[edit]

https://github.com/jakob-beetz/IfcOpenShellScriptingTutorial (by Jakob Beetz)

https://github.com/bimfag/intro-python-bim (by Sigve Martin Pettersen and Hans Martin Eikerol)