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.

Variables:
  • foundations (List[Foundation]) – List of foundation instances.

  • floors (List[FloorDiaphragm]) – List of floor instances.

  • floor_joints (List[FloorJoint]) – List of floor joints instances.

  • stairs_joints (List[StairsJoint]) – List of stairs joints instances.

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

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

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

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)

See also

BuildingBase

Base class defining the core behaviour and configuration.

foundations: List[Foundation]
floors: List[FloorDiaphragm]
floor_joints: List[FloorJoint]
stairs_joints: List[StairsJoint]
beams: List[Beam]
columns: List[Column]
infills: List[Infill]
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