Using IfcOpenshell in Binder Notebooks with web-viewer and graph visualization

As an early release (still a little rough around the edges), this repo has been created to allow students to get familiar with ifcopenshell without any knowledge. Its zero-setup running Jupyter-notebooks on binder.

to launch now click this: Binder

Some of the features are: Interactive viewer

  • a viewer adapted from OCCJupyterViewer added with

  • two-directional-selection viewer <-> model

  • section sliders for sections
  • attribute value lister
  • set and get colors

  • graph visualization of the scene graph Graph viewer

  • integrated IFC documentation Doc in help

There are many more examples, quizzes and task in the German version that is part of a mandatory 4th term class for 250 architecture students at the RWTH Aachen that will be migrated over time. We are very open and happy about suggestions, issues, PRs and feedback!


  • more explantory text
  • English verion of slides with RISE to be used in lectures
  • move viewer to SideCar (was not possible in the RWTH-Jupyter-Cluster yet)

I will be applying for some more funding to extend this into a good Open Educational Resource (OER) book from provincial sources in NRW/Germany, very open for collaboration ...

Calculate Differences of IFC files with Hashing


The goal of this tutorial is to learn how to asses whether 2 successively exported IFC building models are different by testing whether entity instances of the latest are present in the original one or entity instances of the original one are present in the latest version.

The data is stored using the Industry Foundation Class (IFC) format, which is the standard format to digitally represent anything related to the construction industry. This format stands as an open-standard, and enables to share building models in form of IFC files between the different actors of a construction project. We can think of IFC as the PDF for the construction industry.

For example, how could you find the difference between those 2 files?

Read more…

IfcOpenShell Optimizer tutorial


The goal of this tutorial is to reduce the size of an IFC file. Indeed, IFC files can become rather large and processing them can lead to expensive computational costs. Most of the time, this important size is due to duplicate entity instances. In this tutorial, we're going to see how to create a newly optimized file which doesn't contain those instances.

Read more…

Using IfcOpenShell and C++ to generate Alignments through the IFC 4x1 schema

IfcOpenShell has an EXPRESS parser and code generator that generates code for the various IFC schemas. As part of the source code repository comes pre-generated code for the two widely used versions IFC2X3 and IFC4. But arbitrary schemas can be fed into the parser to provide support for other schemas at compile time. This post highlights the process of generating code for other schemas and talks about the recent developments within the IFC Alignment project._

Illustration of an alignment as exchanged in IFC

Read more…

Creating a simple wall with property set and quantity information

The following recipe creates a simple wall from scratch using a templating technique to quickly populate the entity instances for the IFC project structure. Simple extrusion geometries, an IfcPropertySet and an IfcElementQuantity are added using the procedural entity instance creation functions. The script is written for a research project with Dr. Patrick Janssen in National University of Singapore. The script takes reference from the FreeCAD IFC exporter script and HelloWall miniExample.


Read more…