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.

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

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).

Type:

Literal[1, 2, 3]

beam_type

Beam typology: 1: Wide beams. 2: Emergent beams.

Type:

Literal[1, 2]

column_section

Column cross-section type: 1: Square solid section. 2: Rectangular solid section.

Type:

Literal[1, 2]

steel_grade

Steel material class ID, e.g., ‘S400’.

Type:

str

concrete_grade

Concrete material class ID, e.g., ‘C20/25’.

Type:

str

quality

Construction quality level: 0: Excellent quality. 1: High quality. 2: Moderate quality. 3: Low quality.

Type:

Literal[0, 1, 2, 3]

geometry

Building geometry instance.

Type:

GeometryBase

beta

Design lateral load factor.

Type:

float

design_class

Building design class selected.

Type:

str

beta_v

Vertical load factor. By default None.

Type:

float, optional

staircase_slab_depth

Depth of the staircase slabs. By default None.

Type:

float, optional

slab_thickness

Slab thickness (depth). By default None.

Type:

float, optional

slab_orientation

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.

Type:

Literal[1, 2, 3], optional

class simdesign.rcmrf.bdim.baselib.building.BuildingBase(taxonomy)[source]

Bases: ABC

Abstract base class for buildings.

Must be inherited by design-class-specific buildings.

Parameters:

taxonomy (TaxonomyData)

taxonomy

Building taxonomy data.

Type:

TaxonomyData

beams

List of beam instances.

Type:

List[BeamBase]

columns

List of column instances.

Type:

List[ColumnBase]

joints

List of joint instances.

Type:

List[JointBase]

slabs

List of slab instances.

Type:

List[SlabBase]

stairs

List of stairs instances.

Type:

List[StairsBase]

infills

List of infill wall instances.

Type:

List[InfillBase]

steel

Steel material instance considered in design of beams and columns.

Type:

SteelBase

concrete

Concrete material instance considered in design of beams and columns.

Type:

ConcreteBase

loads

Loads instance used to apply building loads.

Type:

LoadsBase

materials

Materials instance used to set building materials.

Type:

MaterialsBase

rebars

Rebars instance used to determine reinforcement arrangement.

Type:

RebarsBase

quality

Quality instance used to adjust properties of structural elements.

Type:

QualityBase

ColumnClass

Column class used to instantiate column objects.

Type:

Type[ColumnBase]

BeamClass

Beam class used to instantiate beam objects.

Type:

Type[BeamBase]

JointClass

Joint class used to instantiate joint objects.

Type:

Type[JointBase]

SlabClass

Slab class used to instantiate slab objects.

Type:

Type[SlabBase]

StairsClass

Stairs class used to instantiate stairs objects.

Type:

Type[StairsBase]

InfillClass

Infill class used to instantiate infill objects.

Type:

Type[InfillBase]

ElasticModelClass

Elastic model class used to run structural analyses.

Type:

Type[ElasticModelBase]

ok

Decision flag for determining whether design is ok or not.

Type:

bool

ITER_MAX

Maximum number of iterations in the iterative design routine. By default 200.

Type:

int

COLUMN_UNIFORMIZATION_STEP

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.

Type:

int, optional

OVERSTRENGTH_FACTOR_COLUMN_MOMENT

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.

Type:

float, optional

OVERSTRENGTH_FACTOR_BEAM_SHEAR

Overstrength factor for capacity design shear forces for beams. If None, beam capacity design shear forces are not considered. By default None.

Type:

float, optional

OVERSTRENGTH_FACTOR_COLUMN_SHEAR

Overstrength factor for capacity design shear forces for columns. If None, column capacity design shear forces are not considered. By default None.

Type:

float, optional

COLUMN_POSITION_FACTORS

Position factors to account for column axial force increase due to seismic loading. Used to compute preliminary axial forces on columns.

Type:

Dict[…]

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[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[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[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]

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