simdesign.rcmrf.bdim.baselib.building

This module provides the base class for representing buildings within the BDIM layer.

class simdesign.rcmrf.bdim.baselib.building.TaxonomyData(slab_type, beam_type, column_section, steel_grade, concrete_grade, quality, geometry, beta, design_class, beta_v=None, staircase_slab_depth=None, slab_thickness=None, slab_orientation=None)[source]

Bases: object

Taxonomy data required for performing simulated-designs.

Variables:
  • slab_type (Literal[1, 2, 3]) – Slab typology: 1: Solid two-way cast-in-situ slabs (SS2). 2: Solid one-way cast-in-situ slabs (SS1). 3: One-way composite slab with ceramic blocks and RC joists or pre-stressed beams (HS).

  • beam_type (Literal[1, 2]) – Beam typology: 1: Wide beams. 2: Emergent beams.

  • column_section (Literal[1, 2]) – Column cross-section type: 1: Square solid section. 2: Rectangular solid section.

  • steel_grade (str) – Steel material class ID, e.g., ‘S400’.

  • concrete_grade (str) – Concrete material class ID, e.g., ‘C20/25’.

  • quality (Literal[0, 1, 2, 3]) – Construction quality level: 0: Excellent quality. 1: High quality. 2: Moderate quality. 3: Low quality.

  • geometry (GeometryBase) – Building geometry instance.

  • beta (float) – Design lateral load factor.

  • design_class (str) – Building design class selected.

  • beta_v (float, optional) – Vertical load factor. By default None.

  • staircase_slab_depth (float, optional) – Depth of the staircase slabs. By default None.

  • slab_thickness (float, optional) – Slab thickness (depth). By default None.

  • slab_orientation (Literal[1, 2, 3], optional) – Slab unloading orientation. By default None. 1: Unloading in beams along X direction. 2: Unloading in beams along Y direction. 3: Unloading in beams along both directions.

Parameters:
  • slab_type (Literal[1, 2, 3])

  • beam_type (Literal[1, 2])

  • column_section (Literal[1, 2])

  • steel_grade (str)

  • concrete_grade (str)

  • quality (Literal[0, 1, 2, 3])

  • geometry (GeometryBase)

  • beta (float)

  • design_class (str)

  • beta_v (float | None)

  • staircase_slab_depth (float | None)

  • slab_thickness (float | None)

  • slab_orientation (Literal[1, 2, 3] | None)

slab_type: Literal[1, 2, 3]
beam_type: Literal[1, 2]
column_section: Literal[1, 2]
steel_grade: str
concrete_grade: str
quality: Literal[0, 1, 2, 3]
geometry: GeometryBase
beta: float
design_class: str
beta_v: float | None = None
staircase_slab_depth: float | None = None
slab_thickness: float | None = None
slab_orientation: Literal[1, 2, 3] | None = None
class simdesign.rcmrf.bdim.baselib.building.BuildingBase(taxonomy)[source]

Bases: ABC

Abstract base class for buildings.

Must be inherited by design-class-specific buildings.

Variables:
  • taxonomy (TaxonomyData) – Building taxonomy data.

  • beams (List[BeamBase]) – List of beam instances.

  • columns (List[ColumnBase]) – List of column instances.

  • joints (List[JointBase]) – List of joint instances.

  • slabs (List[SlabBase]) – List of slab instances.

  • stairs (List[StairsBase]) – List of stairs instances.

  • infills (List[InfillBase]) – List of infill wall instances.

  • steel (SteelBase) – Steel material instance considered in design of beams and columns.

  • concrete (ConcreteBase) – Concrete material instance considered in design of beams and columns.

  • loads (LoadsBase) – Loads instance used to apply building loads.

  • materials (MaterialsBase) – Materials instance used to set building materials.

  • rebars (RebarsBase) – Rebars instance used to determine reinforcement arrangement.

  • quality (QualityBase) – Quality instance used to adjust properties of structural elements.

  • ColumnClass (Type[ColumnBase]) – Column class used to instantiate column objects.

  • BeamClass (Type[BeamBase]) – Beam class used to instantiate beam objects.

  • JointClass (Type[JointBase]) – Joint class used to instantiate joint objects.

  • SlabClass (Type[SlabBase]) – Slab class used to instantiate slab objects.

  • StairsClass (Type[StairsBase]) – Stairs class used to instantiate stairs objects.

  • InfillClass (Type[InfillBase]) – Infill class used to instantiate infill objects.

  • ElasticModelClass (Type[ElasticModelBase]) – Elastic model class used to run structural analyses.

  • ok (bool) – Decision flag for determining whether design is ok or not.

  • ITER_MAX (int) – Maximum number of iterations in the iterative design routine. By default 200.

  • COLUMN_UNIFORMIZATION_STEP (int, optional) – Step size for column section uniformization. For example, if equals to 2, the same column section might be varied at every two storeys from bottom to top. If None, a constant section is used at all storeys. By default None.

  • OVERSTRENGTH_FACTOR_COLUMN_MOMENT (float, optional) – Overstrength factor for capacity design moments for columns (strong-column weak-beam principle). If None, column capacity design moments are not considered. By default None.

  • OVERSTRENGTH_FACTOR_BEAM_SHEAR (float, optional) – Overstrength factor for capacity design shear forces for beams. If None, beam capacity design shear forces are not considered. By default None.

  • OVERSTRENGTH_FACTOR_COLUMN_SHEAR (float, optional) – Overstrength factor for capacity design shear forces for columns. If None, column capacity design shear forces are not considered. By default None.

  • COLUMN_POSITION_FACTORS (Dict[...]) – Position factors to account for column axial force increase due to seismic loading. Used to compute preliminary axial forces on columns.

Parameters:

taxonomy (TaxonomyData)

steel: SteelBase
concrete: ConcreteBase
loads: LoadsBase
materials: MaterialsBase
rebars: RebarsBase
quality: QualityBase
ColumnClass: Type[ColumnBase]
BeamClass: Type[BeamBase]
JointClass: Type[JointBase]
SlabClass: Type[SlabBase]
StairsClass: Type[StairsBase]
InfillClass: Type[InfillBase]
ElasticModelClass: Type[ElasticModelBase]
ITER_MAX: int = 200
COLUMN_UNIFORMIZATION_STEP: int | None = None
OVERSTRENGTH_FACTOR_COLUMN_MOMENT: float | None = None
OVERSTRENGTH_FACTOR_BEAM_SHEAR: float | None = None
OVERSTRENGTH_FACTOR_COLUMN_SHEAR: float | None = None
COLUMN_POSITION_FACTORS: Dict[Literal['bot', 'top'], Dict[Literal['central', 'exterior'], float]] = {'bot': {'central': 1.1, 'exterior': 1.3}, 'top': {'central': 1.3, 'exterior': 1.5}}
property stairs_midstorey_beams: List[BeamBase]

List of stairs midstorey beams.

Returns:

List of stairs midstorey beams.

Return type:

List[BeamBase]

property next_steel: SteelBase

Next steel material.

Returns:

Next steel material.

Return type:

SteelBase

property next_concrete: ConcreteBase

Next concrete material.

Returns:

Next concrete material.

Return type:

ConcreteBase

property geometry: GeometryBase

Frame building geometry instance.

Returns:

Frame building geometry instance.

Return type:

GeometryBase

property beta: float

Design lateral load factor (in g).

Returns:

Design lateral load factor (in g).

Return type:

float

property beam_type: Literal[1, 2]

Typology of beams.

Returns:

Typology of beams. 1: Wide beams are allowed. 2: Emergent beams are used only.

Return type:

Literal[1, 2]

property column_section: Literal[1, 2]

Cross-section of columns.

Returns:

Cross-section of columns. 1: Square solid section. 2: Rectangular solid section.

Return type:

Literal[1, 2]

property design_class: str

Building design class, e.g., ‘eu_cdh’.

Returns:

Building design class, e.g., ‘eu_cdh’.

Return type:

str

property slab_thickness: float | None

Slab thickness (depth) in the building.

Returns:

Slab thickness (depth) considered in the building, if already set in the taxonomy, otherwise, None.

Return type:

float | None

property slab_type: Literal[1, 2, 3]

Slab typology considered in the building.

Returns:

Slab typology considered in the building. 1: Solid two-way cast-in-situ slabs (SS2). 2: Solid one-way cast-in-situ slabs (SS1). 3: One-way composite slab with ceramic blocks and RC joists or pre-stressed beams (HS).

Return type:

Literal[1, 2, 3]

property staircase_slab_depth: float

Building staircase slab thickness (depth).

Returns:

Building staircase slab thickness (depth).

Return type:

float

property steel_grade: str

Reinforcing steel material grade, e.g., ‘S400’.

Returns:

Reinforcing steel material grade, e.g., ‘S400’.

Return type:

str

property concrete_grade: str

Concrete material grade, e.g., ‘C20/25’.

Returns:

Concrete material grade, e.g., ‘C20/25’.

Return type:

str

property gamma_rc: float

Reinforced concrete unit weight in building.

Returns:

Reinforced concrete unit weight in building.

Return type:

float

property continuous_columns: Dict[Tuple[float | int], List[List[ColumnBase]]]

Continuous columns grouped by grid position on XY-plane.

Returns:

Lists of continuous columns at each grid on XY-plane.

Return type:

Dict[Tuple[Union[float, int]], List[List[ColumnBase]]]

Notes

Key of the returned dictionary corresponds to grid ids (x, y). Items contain nested list of continuous columns at corresponding grid. If there are discontinuous columns, the nested list will contain more than one list of continuous columns.

property continuous_beams_x: Dict[Tuple[float | int], List[List[BeamBase]]]

Continuous beams along -X grouped by grid on YZ-plane.

Returns:

Lists of continuous beams at each grid on YZ-plane.

Return type:

Dict[Tuple[Union[float, int]], List[List[BeamBase]]]

Notes

Key of the returned dictionary corresponds to grid ids (y, z). Items contain nested list of continuous beams at corresponding grid. If there are discontinuous beams, the nested list will contain more than one list of continuous beams.

property continuous_beams_y: Dict[Tuple[float | int], List[List[BeamBase]]]

Continuous beams along -Y grouped by grid on XZ-plane.

Returns:

Lists of continuous beams at each grid on XZ-plane.

Return type:

Dict[Tuple[Union[float, int]], List[List[BeamBase]]]

Notes

Key of the returned dictionary corresponds to grid ids (x, z). Items contain nested list of continuous beams at corresponding grid. If there are discontinuous beams, the nested list will contain more than one list of continuous beams.

property num_storeys: int

Number of storeys in the building.

Returns:

Number of storeys in the building.

Return type:

int

Notes

The results is correct if at least one column is fully continuous along the building.

property dim_change: bool

Flag indicating whether section dimensions can be increased.

Returns:

Flag indicating whether it is possible to increase section dimensions or not.

Return type:

bool

property dim_change_column: bool

Flag indicating whether column dimensions can be increased.

Returns:

Flag indicating whether it is possible to increase column section dimensions or not.

Return type:

bool

property dim_change_beam: bool

Flag indicating whether beam dimensions can be increased.

Returns:

Flag indicating whether it is possible to increase beam section dimensions or not.

Return type:

bool

property mat_change: bool

Flag for determining if materials can be changed.

Returns:

Flag for determining if it is possible change materials or not.

Return type:

bool

property beam_change: bool

Flag for determining if beam type can be changed.

Returns:

Flag for determining if it is possible change beam_type or not.

Return type:

bool

Notes

Can be overwritten.

property column_change: bool

Flag for determining if column section can be changed.

Returns:

Flag for determining if it is possible change column_section or not.

Return type:

bool

Notes

Can be overwritten.

property beams_fail: bool

Boolean indicating if any beams failed the design check.

Returns:

Boolean indicating if beams failed to pass the design check or not.

Return type:

bool

property columns_fail: bool

Boolean indicating if any columns failed the design check.

Returns:

Boolean indicating if columns failed to pass the design check or not.

Return type:

bool

property elastic_nodes: List[Point]

Nodes (points) in the linear elastic numerical model.

Returns:

Nodes (points) in the linear elastic numerical model.

Return type:

List[Point]

property elastic_nodes_ground: List[Point]

Ground-level nodes in the linear elastic numerical model.

Returns:

Ground-level nodes in the linear elastic numerical model.

Return type:

List[Point]

taxonomy: TaxonomyData
beams: List[BeamBase]
columns: List[ColumnBase]
joints: List[JointBase]
slabs: List[SlabBase]
infills: List[InfillBase]
stairs: List[StairsBase]
ok: bool
run_iterative_design_algorithm()[source]

Execute the iterative design algorithm.

Notes

The algorithm is slightly different than the original algorithm.

Return type:

None

to_csv(directory)[source]

Save the generated BDIM data into the specified directory.

The files will be saved into the directory upon re-creating it.

Parameters:

directory (str | Path) – Output directory where the bdim outputs (.csv files) will be saved. e.g., My/Directory/Path

Return type:

None

set_seed_for_quality_adjustments(seed)[source]

Set a new random seed for reproducibility.

This method updates the quality object’s seed attribute and sets the global NumPy random seed to ensure deterministic behavior in random operations.

Parameters:

seed (int) – The new seed value to set.

Return type:

None