simdesign.rcmrf
A modular computational framework for the generation and nonlinear
modelling of reinforced concrete (RC) moment-resisting frames (MRFs).
It orchestrates the BCIM → BDIM → BNSM pipeline, generating portfolio-level
building class and design information data (exported CSV files), alongside
OpenSees-compatible nonlinear numerical models (in Python or Tcl).
generate() serves as the entry point for running the
pipeline.
Pipeline:
BCIM (Realisation Layer)
↓
BDIM (Design Layer)
↓
BNSM (Modelling Layer)
↓
OpenSees (Analysis Layer)
- simdesign.rcmrf.generate(inputs, outdir=None)[source]
Generates BCIM, BDIM and BNSM data by following complete workflow in Built Data Environment (BED) SimDesign framework for RC-MRF systems.
- Parameters:
inputs (Dict[Literal['bcim', 'bnsm'], Dict]) – Contains input parameters required for data generation. These will replace the defaults obtained for the specified design_class.
outdir (str | Path, optional) – Path to the user-defined output directory. If None, set to Path.cwd() / ‘Outputs’. by default None.
- Returns:
bcim (BCIM) – Building Class Information Model.
bdim (List[BuildingDesign | None]) – List of Building Design Information Models (None if design failed).
bnsm (List[BuildingModel | None]) – List of Building Nonlinear Structural Models (None if design failed).
- Raises:
KeyError – inputs[‘bcim’][‘design_class’] is not specified.
- Return type:
Tuple[BCIM, List[BuildingBase | None], List[BuildingBase | None]]
Examples
Example dictionary to pass as
inputs:inputs = { "bcim": { "design_class": "eu_cdh", "beta": 0.1, "sample_size": 150, "num_storeys": 5, # Distribution parameters "typical_storey_height": { "cv": 0.07, "mu": 2.90, "lower_bound": 2.3, "upper_bound": 3.8, }, "staircase_bay_width": { "lower_bound": 2.8, "upper_bound": 3.2, }, "standard_bay_width": { "corr_coeff_xy": -0.92, "lower_bound_x": 3.5, "upper_bound_x": 7.5, "theta_x": 4.5, "sigma_x": 0.35, "lower_bound_y": 3.5, "upper_bound_y": 7.5, "theta_y": 4.5, "sigma_y": 0.35, }, "steel": { "tag": ["S400", "S500"], "probability": [0.10, 0.90], }, "concrete": { "tag": ["C20/25", "C25/30", "C30/37", "C35/45"], "probability": [0.30, 0.45, 0.20, 0.05], }, "ground_storey_height": { "maximum": 4.20, "factor": [1.0, 1.1, 1.2, 1.3, 1.4], "probability": [0.55, 0.10, 0.20, 0.10, 0.05], }, "construction_quality": {"probability": [0.6, 0.3, 0.1]}, "slab_typology": { "ss1_prob_given_ss1_or_hs": 0.50, "ss2_prob_given_ss2_or_hs": 0.65, "upper_lim_for_min_ss_span_length": 6.0, "upper_lim_for_max_ss2_span_ratio": 2.0, "staircase_slab_depth": 0.15, "floor_slab_thickness": 0.15, }, "wb_prob_given_hs": 0.50, "square_column_prob": 0.50, "layout": "all", "seed": 1993, }, "bnsm": { "model": "CP03", "load_factors": {"G": 1.0, "Q": 0.3}, "mass_factors": {"G": 1.0, "Q": 0.3}, "scheme": "EQL", "max_drift": 0.05, "dincr": 0.001, "opensees": "py", }, }
- simdesign.rcmrf.geometry
- simdesign.rcmrf.bcim
- simdesign.rcmrf.bdim
- simdesign.rcmrf.bdim.factory
- simdesign.rcmrf.bdim.baselib
- simdesign.rcmrf.bdim.eu_cdn
- simdesign.rcmrf.bdim.eu_cdl
- simdesign.rcmrf.bdim.eu_cdm
- simdesign.rcmrf.bdim.eu_cdh
- simdesign.rcmrf.bdim.tr_7599
- simdesign.rcmrf.bdim.tr_0018_dch
- simdesign.rcmrf.bdim.tr_0018_dcm
- simdesign.rcmrf.bdim.tr_post18_dch
- simdesign.rcmrf.bdim.tr_post18_dcm
- simdesign.rcmrf.bnsm