Skip to main content

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

🐧 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.17.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ifctrano 0.17.0
File Size Uploaded
ifctrano-0.17.0.tar.gz 47.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ifctrano 0.17.0
File Interpreter ABI Platform
ifctrano-0.17.0-py3-none-any.whl Python 3 none any Details

Total release size: 98.6 kB

Release files / ifctrano-0.17.0.tar.gz

Download URL ifctrano-0.17.0.tar.gz
Size 47.3 kB
Tags Source
SHA-256 checksum
How to use checksums
fdc5d6d3cff527661f8071fdb37a1f786dd7a525155fad6805cfef237e14d1fb
BLAKE2b-256 checksum
How to use checksums
762dcf2ba8ae42c805c73f1c776b316c6ec029754e548c270d7244c89aba0cef
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.17.0-py3-none-any.whl

Download URL ifctrano-0.17.0-py3-none-any.whl
Size 51.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4a8c4f11dff761880d501323a0f240edfdc4d9f4cbcce43269ef1de6b42637fc
BLAKE2b-256 checksum
How to use checksums
7a97959cee44f107407fa21ac52c709adb917dacd78a2feebf17b334944b8d35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.17.0 This release

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.11.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page