Skip to content

andoludo/ifctrano

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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. ๐Ÿš€