BuilDyn is an open-source free-to-use PyPI package to help simulating Functional Mockup Units (FMU) for buildings. Its primarily use is probing buildings thermal dynamics, randomizing building parameters, and demand-driven building simulation. As this is an open-source project, we encourage users and researchers to contribute with new ideas and directions to follow for future releases!
Setup
The only hard requirement for this package is python == 3.13.
Aside from that, there are two ways to build this package in your environment:
Installation via Pip
We distribute the newest version of this package over PyPI.
pip install buildyn
Installation from source code
Aside from the pip installation, you can also build the newest version of this package from scratch. First, clone this repository.
git clone https://github.com/felixmkoch/buildyn.git
After that, you can pip install this package into your python environemnt using
pip install .
Strcture
The package has two main classes to consider: FMU and BuilDyn. FMU is a modified and extended wrapper around the FmuSlave from FmPy. BuilDyn enables users full control over variations, walker distributions, and demand-dirven simulation. Multiple functionalities are inspired by BuilDa. For further information about the structure we refer to our paper.
Usage
One general use-case would be the following:
from buildyn import FMU
from buildyn.buildyn import BuilDyn
from buildyn.walker.random.random_walker import RandomWalker
from buildyn.walker.interval_walker import IntervalWalker
fmu_path = "model1.fmu"
start_variables = {
"weaDat.filNam": "resources/Munich.mos",
"internalGain.fileName": "resources/NoActivity.txt"
}
fmu = FMU(fmu_path, init_values=start_variables)
observables = ["thermalZone.TAir", "heatingPower"]
rw = RandomWalker(min=10, max=500, is_discrete=True)
iw = IntervalWalker(rw, 900) # 900 is the step size of the walker.
buildyn = BuilDyn(fmu, observables=observables)
buildyn.add_walker_distribution("heatingPower", iw)
print(buildyn.sample_one())
To explore all features of BuilDyn, we refer to our notebooks; each of them thematizes one key part.
Citation
If you are using BuilDyn, consider citing the corresponding paper.
@inproceedings{
koch26buildyn,
title={BuilDyn: Excitation-Driven Data Generation for Building Thermal Dynamics Modeling and Control},
author={Koch, Felix and Krug, Thomas and Raisch, Fabian and Schäfer, Benjamin and Tischler, Benjamin},
booktitle={Proceedings of the 17th ACM International Conference on Future and Sustainable Energy Systems}
year={2026}
}
Metadata
Release files for buildyn 1.1.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 | |
|---|---|---|---|
| buildyn-1.1.0.tar.gz | 34.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| buildyn-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 78.6 kB
Release files / buildyn-1.1.0.tar.gz
| Download URL | buildyn-1.1.0.tar.gz |
|---|---|
| Size | 34.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
514e3a9dc678a3b1d117bf5418b227c2b8213ff11d8ebc2015f0e84ff8ac0e23
|
|
BLAKE2b-256 checksum How to use checksums |
e4ba36f968e6c100c1e1504c8a1e94b2949f24ae64cf850818bd8e788279edc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.4
|
Release files / buildyn-1.1.0-py3-none-any.whl
| Download URL | buildyn-1.1.0-py3-none-any.whl |
|---|---|
| Size | 44.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fdc419439f3a0fa738387986257fbe03d5615b486c3d31c9d7d128be8d0d4b61
|
|
BLAKE2b-256 checksum How to use checksums |
311b21d735397716cab54247fe252546ccf399015df8ae9bc88b24067281bb0c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.4
|