/IFC2SB

Generation of Space Boundaries based on IFC files for Building Simulation

Primary LanguageC++GNU General Public License v3.0GPL-3.0

License: LGPL v3 License: LGPL v3

IFC2SB: Industry Foundation Classes to Space Boundaries  

Generation of simulation geometries for CFD and BEPS.
Partially developed within the BIM2SIM project.

What it does

Generates watertight and valid space geometries from IFC4 building geometry.
Full attribution according to IFC4 standard.
Resolves issues like clashes and gaps.
CFD-mode: Exports an STL with solids representing spaces (closed air volumes).
BEPS-mode: Exports an IFC4 with generated IfcSpace, IfcRelSpaceBoundary1stLevel and IfcRelSpaceBoundary2ndLevel entities.
Prerequisites: IFC4 file with 3D building geometries (especially IfcBuildingElements).
See PhD thesis

Building Elements (left) | Generated air volumes/spaces (right):

Installation on Linux

Prerequisites and dependencies

An instruction (Dockerfile) can be found here

Miscellaneous

sudo apt-get install git cmake gcc g++

OpenCascade 7.5.0

# this will install most of the third-party libraries needed by OpenCascade
sudo apt-get install tcllib tklib tcl-dev tk-dev libfreetype-dev libxt-dev libxmu-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libfreeimage-dev libtbb-dev qt5-default libomp-dev

IfcOpenShell 0.6.0

sudo apt-get install libboost-all-dev libxml2-dev

Clipper 6.4.2 - an open source freeware library for clipping and offsetting lines and polygons

sudo apt-get install libpolyclipping-dev 

R-Trees: A Dynamic Index Structure for Spatial Searching
Already included as header-only

Triangle: A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator
Already included as header-only

ConvexDecomposition: Decomposing and slicing concave polygons into convex polygons
Already included as header-only

STL Reader: Read STL geometry files into user provided containers
Already included as header-only

Build

mkdir build
cd build
cmake ../cmake # or ccmake for GUI, argument _-DSTATIC_OCC_IFCOS=OFF_ or _ON_ for dynamic or static build (includes OCC and IfcOpenShell), -DCLIPPER_INCLUDE_PATH="/usr/include/polyclipping"
make -j16 # number of CPU

Usage examples

IFC result file:

./IFC2SB -j16 --graph /home/fluid/Downloads/IFCfiles/AC20-FZK-Haus.ifc 

STL result file:

./IFC2SB -j16 --graph --stl /home/fluid/Downloads/IFCfiles/AC20-FZK-Haus.ifc 

SB Viewer:

./SBV /home/fluid/Downloads/IFCfiles/AC20-FZK-Haus_with_SB.ifc s
s = 1 for 1stLvlSB, s = 2 for 2ndLvlSB

Results

Space Boundaries for BEPS as .ifc
First level space boundaries, attributed according to IFC4

Second level space boundaries, attributed according to IFC4 (e.g. opening SBs, right image)

Spaces

Geometry for CFD as .stl

How to cite IFC2SB

@phdthesis{Fichter2022,
	title        = {Automatisierte Erzeugung geometrischer Modelle für die Gebäudesimulation im Kontext des Building Information Modeling},
	author       = {Fichter, Eric},
	year         = 2022,
	school       = {RWTH Aachen University}
}
@inproceedings{Fichter2021,
	title        = {Automatic generation of second level space boundary geometry from {IFC} models},
	author       = {Fichter, Eric and Richter, Veronika and Frisch, Jerome and {van Treeck}, Christoph},
	year         = 2021,
	booktitle    = {Proceedings of Building Simulation 2021: 17th Conference of IBPSA}
}
@software{IFC2SB,
	title        = {IFC2SB},
	author       = {{Fichter, Eric}},
	url          = {https://git.rwth-aachen.de/fichter/ifc2sb},
	version      = {1.0},
	date         = {2022-01-01}
}

Contact

Eric Fichter
fichter@e3d.rwth-aachen.de
E3D - Institute of Energy Efficiency and Sustainable Building
RWTH Aachen University