IfcOpenShell is an open source (LGPL) software library for working with IFC format.

Initially (started in 2011) it was mainly intended as a software library for developers to build software for Building Information Modelling (BIM), a novel trend in the construction sector where information is exchanged in semantically structured information models. The main open standard, IFC (Industry Foundation Classes), is similar to STEP in its geometry definitions and encodings.

Over time the functionality of IfcOpenShell grew to include authoring of IFC models, by means of the BlenderBIM add-on for Blender, and geneneration of technical 2D drawings. Hence, more and more end-users embrace IfcOpenShell directly. There is also a cloud offering called ifc-pipeline that uses the IfcOpenShell to convert models on the server to static files such as glTF and SVG for visualization on the web. IfcOpenShell is also used extensively in academia, both in education for students to familiarize themselves with the exchange format and computational geometry approaches and research, as a rapid development platform to test novel ideas.

IfcOpenShell is written in C++, but has an extensive Python API. This is an effective combination that offers good performance of the computationally intensive parts and the flexibility and readability of a widely used scripting language, with great modules for web front-ends and machine learning to solve the next generation of issues that our built environment faces.

Industrial sector: 
Software type: 
Open Source
Scope of application: 
Data Analysis, Authoring, BIM, Data Exchange
Functionality / feature-set: 
Parsing IFC models, Writing IFC models, Converting IFC geometry to OCCT BRep, Converting OCCT BRep to IFC entity instances, Geometric analysis of IFC models by means of OCCT, Conversion of IFC models to other formats such as Collada and glTF, Generating 2D drawings from 3D IFC models, 3D authoring environment for IFC models
Suitable for: 
Freelance, Personal, Startups, Research & Science
Deployment options: 
Web: Cloud; SaaS; Web-based
Desktop: Mac; Windows; Linux
Server: Windows; Linux
Programming Languages: 
C++, Python
Support Options: 
Forum/Community, FAQ/Knowledge Base, Social Media
Training Options: 
Documentation, Occasionally mixed consultancy/training sessions

Q. What are the implications of the LGPL license?
A. When you distribute software that includes a modified version of IfcOpenShell, you need to distribute those changes as well. You also need to enable end-users to relink to a custom version of IfcOpenShell where applicable.

Q. What's with the name? Ifc Opens Hell?
A. No, you're not reading it correctly. An IfcOpenShell is one of the ways geometry can be described inside an Ifc file. Since the name reflects on the Ifc part, the open source part and the geometry part of the project, we figured we'd pick this as our name.

Q. How can I do … with the IFC standard?
A. IFC is a huge and complex standard. Often users conflate the IFC schema with IfcOpenShell functionality, but the IfcOpenShell forums offer a helpful place to familiarize users with both.