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 Trano requires python 3.9 or higher and docker to be installed on the system.

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

🧱 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.13.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.13.0
File Size Uploaded
ifctrano-0.13.0.tar.gz 33.6 kB Details

Built distribution (wheel)

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

Total release size: 69.3 kB

Release files / ifctrano-0.13.0.tar.gz

Download URL ifctrano-0.13.0.tar.gz
Size 33.6 kB
Tags Source
SHA-256 checksum
How to use checksums
90395a23f010658463d1d43ce61cbcff6513ef548563d7283496c91561426eb2
BLAKE2b-256 checksum
How to use checksums
34c5e3a4010c78769aed02f8e8408f917077c9e4fb942e5f03b204f20d8d5e22
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.13.0-py3-none-any.whl

Download URL ifctrano-0.13.0-py3-none-any.whl
Size 35.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
821b091fcab375eec8822e73d0d5563d5e32307434a698b41cba0726638557cc
BLAKE2b-256 checksum
How to use checksums
ed5dfe3f7fa00735b13222b3f3bb3a40bb1341d3867b4dc6ac4d1ead57c76d7c
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

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

This release

0.13.0 This release

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