A Python package for the modeling the seismic vulnerability of buildings using the simulated design. Currently, it focuses on Reinforced Concrete (RC) Moment Resisting Frames (MRFs), but the workflow is adaptable to other structural systems. To ensure modularity and scalability for future extensions, the rcmrf framework is integrated within the broader simdesign library. The framework can accommodate the design of buildings using both historical and modern seismic design procedures and regulations, while capturing building-to-building variability. It generates Building Class Information Models (BCIM), Building Design Information Models (BDIM), and Building Nonlinear Structural Models (BNSM) that are analyzable in OpenSees.
Follow the steps below to install the simdesign package.
Note: Python 3.12 is required. Ensure that correct version is installed:
python --version # should be 3.12.xCreate a virtual environment to manage dependencies:
python -m venv .venvActivate the virtual environment:
.venv\Scripts\activate # On Windows
source .venv/bin/activate # Linux / macOSOpen the terminal and simply run:
pip install simdesignClone the repository:
git clone https://github.com/builtenvdata/simulated-design.git
cd simulated-designInstall the simdesign package:
pip install .Alternatively, to install in editable mode (useful for development), run:
pip install -e .Once installed, you can import and use the package in Python:
# Example usage
from simdesign import rcmrf
# The main inputs for each design class
inputs = {
"bcim": {
"design_class": "eu_cdl",
"sample_size": 30,
"num_storeys": 4,
"beta": 0.1,
"seed": 2
},
"bnsm": {
"model": "DP01",
"scheme": "EQL",
"dincr": 1e-3,
"max_drift": 0.1,
"opensees": "py",
"include_infills": False
}
}
# Run the bed-workflow for rcmrf systems and save the outputs
bcim, bdim, bnsm = rcmrf.generate(inputs=inputs, outdir="Outputs")For more examples please see the scripts folder or see full documentation for advanced use.
Moreover, it is possible to visualize and design buildings with specific geometries:
Contributions are welcome! If you’d like to contribute, follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Make your changes.
- Update the test files (
test_rcmrf.py) for new features. - Run pytest and check if all tests pass (
pytest tests). - Commit the changes (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature-branch). - Open a pull request.
If you use the SimDesign tool, please be sure to cite the reference publication:
Ozsarac, V., Pereira, N., Mohamed, H., Romão, X., & O’Reilly, G. J. (2025). The Built Environment Data Framework for Simulated Design and Vulnerability Modelling in Earthquake Engineering. Earthquake Engineering & Structural Dynamics, 54(11), 2651-2670. https://doi.org/10.1002/eqe.4378
Hasanoğlu, S., Ozsarac, V., & O’Reilly, G. J. (2025). A model for the simulated design of Turkish RC frame buildings in seismic vulnerability analysis. Bulletin of Earthquake Engineering, 23(15), 6829-6856. https://doi.org/10.1007/s10518-025-02301-y
This project is licensed under the AGPL-3.0 license. See the LICENSE file for details.