Skip to main content

🔥 Trano: Automated Building Energy Simulation (BES) Model Generation 🚀

License: Apache-2.0

📖 Full Documentation: 👉 Trano Docs


Trano is a Python package that generates building energy simulation (BES, building energy modelling) models in Modelica from a simple description of the building in YAML, JSON or RDF: envelope, HVAC systems and their controls, and electrical systems. The generated models are simulated with OpenModelica (or Dymola), validated against ASHRAE 140 (BESTEST), and, with the FastSmoothBuildings library, translated to CasADi for model predictive control (MPC). Unlike tools that directly convert BIM to BES, Trano introduces an intermediate, library-independent description, paving the way for seamless integration with IFC translators.

Trano is Modelica library agnostic but is natively designed to work with:
✅ Validated detailed Modelica libraries (e.g., Buildings, IDEAS,...)
✅ Reduced-order models (e.g., AIXLIB, ISO13790,...)
✅ Models for optimal control (FastSmoothBuildings: close to Buildings, closed loop or for optimal control, translated to CasADi)
✅ your library...

🧪 Supported libraries and validation

Library Version Zone model Role
Buildings 13.0.0 Buildings.ThermalZones.Detailed.MixedAir detailed, validated
IDEAS 3.0.0 IDEAS.Buildings.Components.Zone detailed, validated
AixLib reduced order (reduced_order) 3.0.1 AixLib.ThermalZones.ReducedOrder.ThermalZone simplified, informational
ISO 13790 (iso_13790) AixLib 3.0.1 ISO13790.Zone5R1C simplified, informational
FastSmoothBuildings - FastSmoothBuildings.Zones.Zone (the physics of MixedAir), with the hydronic and ventilation systems and their controllers close to Buildings, closed loop, CasADi ready
FastSmoothBuildingsMPC - the same, the controls of the systems as inputs optimal control, CasADi ready

The HVAC components (radiators, valves, pumps, boilers, heat pumps, air handling units) come from the Buildings library for every Modelica library. The Modelica name of every parameter in every library is listed in the parameter reference.

The models trano generates are validated against ASHRAE Standard 140 (BESTEST): the 27 single-zone cases are simulated for a year with every library and compared with the acceptance limits of the standard and the spread of the reference programs. Buildings, IDEAS and FastSmoothBuildings (the smooth library that exports to CasADi for MPC) pass every case (see the validation results and the walk through the cases); the two simplified zones are reported for information. Simulations run in the official OpenModelica image. The library FastSmoothBuildings, its study against Buildings and its analysis as an MPC model live in its own repository (documentation).

The systems are validated too: the heat pumps (COP against their EN 14511 table, electricity, cycling), the gas boilers (efficiency, gas, cycling), the valves and pumps, and the ventilation units (supply air temperature, recovered heat, fan electricity) are simulated one at a time on a study zone and on combined houses with the three libraries, and every KPI is held to a band with its physical reasoning (validation/systems, results).

✨ Key Features

🛠️ Built for Open-Source BES

  • Designed with widespread adoption in mind.
  • Optimized for OpenModelica, but also compatible with Dymola.

🔥 Full Thermal & Electrical Modeling

  • Generates both thermal and electrical models.
  • Supports building envelope, systems, and electricity.
  • Models:
    • Envelope (geometry & materials) 🏢
    • HVAC systems (emission, hydronic distribution, boilers) ❄️🔥
    • Electrical components (PV systems, electrical loads) ⚡

🎨 Easy to Use & Modify

  • Generates graphical representations of components & connections 🎭. building.jpg
  • Fully modular design for seamless modifications:
    • Envelope 🏠
    • Emission 💨
    • Hydronic Distribution 🚰
    • Production & Electricity ⚡

🧩 Extensible Component Variants

Every Trano component (radiator, space, control, AHU, boiler, ...) is selected by a variant name — switching variant: default to variant: ideal swaps the underlying Modelica model. You can also drop your own variant YAML files into any folder and load them via the CLI (--variants-folder), the Python API (register_variants_folder), or the TRANO_VARIANTS_PATH environment variable.

📚 Tutorial: Creating and using component variants

🎛️ Models for optimal control

  • FastSmoothBuildings library: trano create-model house.yaml FastSmoothBuildings generates a model close to Buildings (layered walls, windows with their angular optics, long-wave and solar exchanges in the rooms, radiators, valves, boilers, heat pumps, ventilation with heat recovery, PV) that rumoca translates to a CasADi ODE. FastSmoothBuildings simulates the building in closed loop with its controllers and pressure-driven water circuits; FastSmoothBuildingsMPC leaves the controllers out, so that trano_optimization (the trano-optimization package, installed next to trano) decides the controls: it simulates the model, estimates its state and solves optimal control problems with IPOPT. In closed loop, FastSmoothBuildings follows Buildings within 0.05–0.39 K on the zone temperatures (0.05–0.25 K with controlled heating) (see the FastSmoothBuildings reference).

🚀 With Trano, creating and modifying detailed BES models has never been easier!


📖 Full Documentation: 👉 Trano Docs

📄 License

Trano is released under the Apache License 2.0. Releases up to and including 0.56.0 were published under the LGPL-3.0-or-later.

Metadata

Release files for trano 0.68.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 trano 0.68.0
File Size Uploaded Provenance Actions
trano-0.68.0.tar.gz 264.9 kB Without provenance Details for trano-0.68.0.tar.gz

Built distribution (wheel)

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

Total release size: 585.9 kB

Release files / trano-0.68.0.tar.gz

Download URL trano-0.68.0.tar.gz
Size 264.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7bfd5505b03c5e890fb69c1305e9aed60810302227852ab18f15d9e14ffee9f3
BLAKE2b-256 checksum
How to use checksums
5d20efe19bb509bab3f9083d78feee605d7ff19241b8fb3b69cb4b339e5b8c1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / trano-0.68.0-py3-none-any.whl

Download URL trano-0.68.0-py3-none-any.whl
Size 321.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
80833adccaf9fa40afd43fc9b95751f29b8e1ed5a7c0287af82fe6e9a92193e7
BLAKE2b-256 checksum
How to use checksums
837df79ca09824df78818d83e1ecc3132ca95c21441aa0415bb833fd88a9c2bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for trano 0.68.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.68.0 This release

2 release files No provenance

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