simdesign.rcmrf.bnsm.cp02.building

This module provides the Building Nonlinear Structural Model (BNSM) implementation for the CP02 modelling configuration.

class simdesign.rcmrf.bnsm.cp02.building.Building(design, 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, include_infills=True, cyclic_model=False, cracked_beam=False, cracked_column=False)[source]

Bases: BuildingBase

BNSM implementation for the CP02 model.

This class aggregates CP02-specific structural components (e.g. beams, columns, joints, infills) and relies on the behaviour defined in BuildingBase without modification.

Parameters:
  • design (BuildingBase)

  • load_factors (Dict[Literal['G', 'Q'], float])

  • mass_factors (Dict[Literal['G', 'Q'], float])

  • scheme (Literal['FMP', 'EQL', 'MPP', 'TRI', 'UNI'])

  • max_drift (float)

  • dincr (float)

  • include_infills (bool)

  • cyclic_model (bool)

  • cracked_beam (bool)

  • cracked_column (bool)

foundations

List of foundation instances.

Type:

List[Foundation]

floors

List of floor instances.

Type:

List[FloorDiaphragm]

floor_joints

List of floor joints instances.

Type:

List[FloorJoint]

stairs_joints

List of stairs joints instances.

Type:

List[StairsJoint]

beams

List of beam instances.

Type:

List[Beam]

columns

List of column instances.

Type:

List[Column]

infills

List of infill instances.

Type:

List[Infill]

See also

BuildingBase

Base class defining the core behaviour and configuration.

FoundationClass

alias of Foundation

FloorDiaphragmClass

alias of FloorDiaphragm

FloorJointClass

alias of FloorJoint

StairsJointClass

alias of StairsJoint

BeamClass

alias of Beam

ColumnClass

alias of Column

InfillClass

alias of Infill

export_hinges(directory=None)[source]

Export plastic-hinge capacity data for beams and columns to JSON.

For every floor joint and foundation joint in the model, this method computes the hysteretic energy capacity (Eh_cap) and ultimate chord rotation (theta_ult) of the plastic hinges framing into that joint, then writes the collected data to “info_hinges.json” in the target directory.

The hysteretic energy capacity is computed as:

Eh_cap = My * (theta_ult - theta_y) * lambda

where “lambda” is an empirical definition that depends on concrete strength (fc), longitudinal-steel yield strength (fsyl), normalised axial load (niu), and the transverse-reinforcement spacing ratio (s_h = s / h).

lambda = 52 * 0.41^(0.01*(fc + 0.1*fsyl)) * 0.34^niu * 0.21^(s/h)

Notes

  • Beam ends are tagged “I” for the start end (right/front beam) and “J” for the end (left/rear beam), following the convention in “BEAM_END_MAP”.

  • Column ends are tagged “I” for the top column and “J” for the bottom column.

  • For beams, “niu” is assumed to be 0 (axial load neglected).

Parameters:

directory (str | Path | None)

Return type:

None