ifctrano - IFC to Energy Simulation Tool
📖 Full Documentation: 👉 ifctrano Docs
Generate Modelica building models directly from IFC files — with support for simulation, visualization, and multiple libraries.
Overview
ifctrano is yet another IFC to energy simulation tool designed to translate Industry Foundation Classes (IFC) models into energy simulation models in Modelica.
Key Differentiator
Unlike most translation approaches that rely on space boundaries (IfcRelSpaceBoundary) (e.g. see An automated IFC-based workflow for building energy performance simulation with Modelica), ifctrano operates solely on geometrical representation. This is crucial because space boundaries are rarely available in IFC models. Instead, ifctrano requires at least the definition of IfcSpace objects to build energy simulation models.
Space-Zone Mapping
For now, each space is considered as a single thermal zone, and the necessary space boundaries are automatically generated.
Why ifctrano?
✅ No reliance on IfcRelSpaceBoundary
✅ Works with geometric representation only
✅ Supports Modelica-based energy simulation
✅ Tested on multiple open-source IFC files
Open Source IFC Test Files
ifctrano has been tested using open-source IFC files from various repositories:
🚀 Installation
📦 Install ifctrano
!!! warning ifctrano requires Python 3.11 or 3.12; simulating the models requires Docker.
ifctrano is a Python package that can be installed via pip.
pip install ifctrano
✅ Verify Installation
Run the following commands to ensure everything is working:
ifctrano --help
ifctrano verify
🔧 Optional Dependencies
🐳 Docker (for simulation)
To enable model simulation using the official OpenModelica Docker image, install Docker Desktop:
👉 https://docs.docker.com/desktop/
Required for using the --simulate-model flag.
🧠 Graphviz (for layout visualization)
ifctrano leverages Graphviz to optimize component layout in generated Modelica models. It is optional, but recommended.
📥 Install on Windows
- Download and install from: https://graphviz.org/download/
- Add the Graphviz
binfolder to your systemPATH.
🐧 Install on Linux
sudo apt update
sudo apt install graphviz
⚙️ Usage
📁 Generate Modelica models from IFC
🏢 Using the Buildings library
ifctrano create /path/to/your.ifc
🏫 Using the IDEAS library
ifctrano create /path/to/your.ifc IDEAS
🧮 Using the Reduced Order library
ifctrano create /path/to/your.ifc reduced_order
📁 Generate yaml configuration from IFC
Instead of directly generating a Modelica model from an IFC file, this command creates a configuration .yaml file compatible with the Trano Python package (https://github.com/andoludo/trano). This configuration file can be reviewed, adapted, and enriched before generating the final Modelica model, allowing for verification and customization of the translation process.
ifctrano config /path/to/your.ifc
Once the YAML configuration file has been generated and adapted, the following command can be used to generate and/or simulate the model.
ifctrano from-config /path/to/your.yaml
🔥 Include the heating system
Hydronic heating systems modelled with IFC4 MEP conventions (heat generator, circulators, mixing valves, radiators, connected
through IfcDistributionPorts) are translated into trano emissions and systems. Heating elements are read from the
architecture file itself, or from federated discipline models sharing its coordinates:
ifctrano create /path/to/architecture.ifc --hvac /path/to/heating.ifc
ifctrano config /path/to/architecture.ifc --hvac /path/to/heating.ifc
Radiators are assigned to spaces by IfcRelReferencedInSpatialStructure/IfcRelContainedInSpatialStructure, or from
their location. Radiators of a space are lumped into one emitter (Pset_SpaceHeaterTypeCommon.OutputCapacity summed),
and each circuit (heat generator, circulator and mixing valve) becomes trano's hydronic circuit. Radiators not connected
to a heat generator become ideal emitters. Radiators and pumps without output or flow in the model are sized from the
design heat load of their spaces (simplified EN 12831), and every assumption is logged. Heat pumps, which IFC has no
class for, can be declared with --heat-generator water_water_heat_pump (or air_water_heat_pump).
🧱 Show Space Boundaries
To visualize the computed space boundaries:
ifctrano create /path/to/your.ifc --show-space-boundaries
🔁 Simulate the Model
Run a full simulation after model generation:
ifctrano create /path/to/your.ifc --simulate-model
Make sure Docker is installed and running before simulating.
💡 ifctrano aims to make energy simulation model generation from IFC files simpler, more accessible, and less reliant on incomplete IFC attributes. 🚀
Metadata
Release files for ifctrano 0.16.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ifctrano-0.16.0.tar.gz | 46.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ifctrano-0.16.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 97.6 kB
Release files / ifctrano-0.16.0.tar.gz
| Download URL | ifctrano-0.16.0.tar.gz |
|---|---|
| Size | 46.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c1f346f06fb532ca91a00e3c261ac0ce14ca44e5852c8b840ed617cd9f6c8b80
|
|
BLAKE2b-256 checksum How to use checksums |
b92f60ed0d4ee1b29a871f227ea2be88961ba744dcf1e3763867bf8ac35aa71b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ifctrano-0.16.0-py3-none-any.whl
| Download URL | ifctrano-0.16.0-py3-none-any.whl |
|---|---|
| Size | 50.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
43d6bdc85b67b344c8203d05bc0ba8d5e8491eec8a59f5c5338c9d80d0708e23
|
|
BLAKE2b-256 checksum How to use checksums |
aa56f4177a874963f95ddff8da13a00db4d2bc240916ef8d9b7716fefc6ec78c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|