simdesign.rcmrf.bnsm.baselib.joint

This module provides base classes for representing beam-column joints within the BNSM layer.

The module includes:

  • JointBase: abstract interface for joint objects, including access to design properties and common functionality.

  • StairsJointBase: mid-storey (stairs) joint implementation that creates a central joint node used to connect offset beam and column elements.

  • FloorJointBase: floor-level joint implementation that can optionally model joint flexibility (rigid, elastic, or inelastic).

class simdesign.rcmrf.bnsm.baselib.joint.JointBase[source]

Bases: ABC

Abstract base class for beam-column joint implementations in the BNSM layer.

Variables:

design (JointDesign) – Instance of joint design information model.

design: JointBase
property bx: float

Joint width along global x-axis.

Returns:

Joint width along global x-axis (based on columns’ section widths).

Return type:

float

property by: float

Joint width along global y-axis.

Returns:

Joint width along global y-axis (based on columns’ section widths).

Return type:

float

property h: float

Joint height based on all beam section heights.

Returns:

Joint height based on all beam section heights.

Return type:

float

Notes

The largest of the beam heights is selected.

property fcm: float

Mean concrete compressive strength.

Returns:

Mean value of concrete compressive strength (in base units).

Return type:

float

abstractmethod add_to_ops()[source]

Adds joint model objects to the OpenSees domain.

Return type:

None

abstractmethod to_py()[source]

Gets the Python commands to define joint model objects in the OpenSees domain.

Returns:

List of Python commands for constructing the components of joint in OpenSees.

Return type:

List[str]

abstractmethod to_tcl()[source]

Gets the Tcl commands to define joint model objects in the OpenSees domain.

Returns:

List of Tcl commands for constructing the components of joint in OpenSees.

Return type:

List[str]

class simdesign.rcmrf.bnsm.baselib.joint.StairsJointBase(design, mass)[source]

Bases: JointBase

Base class implementation used in the BNSM layer to represent beam-column joints at a mid-storey level (stairs joint). It provides methods to define a stairs joint in the OpenSees domain and to export equivalent Python and Tcl commands.

The mid-storey joint modelling approach follows macro-model formulations, where joint behaviour is represented through rotational springs based on O’Reilly 2016.

References

O’Reilly, G. J. (2016). Performance-based seismic assessment and retrofit of existing RC frame buildings in Italy (Doctoral dissertation, IUSS Pavia).

Variables:

center_node (Node) – Central joint node for connecting nodes at joint offset distances.

Parameters:

See also

JointBase

Base class joint definition extended by this class.

center_node: Node
add_to_ops()[source]

Adds stairs joint model objects to the OpenSees domain (i.e., nodes).

Return type:

None

to_py()[source]

Gets the Python commands to define stairs joint model objects in the OpenSees domain (i.e., joint node).

Returns:

List of Python commands for constructing the components of stairs joint in OpenSees.

Return type:

List[str]

to_tcl()[source]

Gets the Tcl commands to define stairs joint model objects in the OpenSees domain (i.e., joint node).

Returns:

List of Tcl commands for constructing the components of stairs joint in OpenSees.

Return type:

List[str]

class simdesign.rcmrf.bnsm.baselib.joint.FloorJointBase(design, mass, model, load_factors)[source]

Bases: StairsJointBase

Base class implementation used in the BNSM layer to represent beam-column joints at a floor level. It provides methods to define an floor-level joint in the OpenSees domain and to export equivalent Python and Tcl commands.

Variables:
  • floor_node (Node) – Floor node which is constrained by the floor diaphragm.

  • flexibility_model (Literal['inelastic', 'elastic', 'rigid']) – Joint flexibility model.

  • axial_force (float) – Axial force acting on joint.

Parameters:
  • design (JointBase)

  • mass (float)

  • model (Literal['inelastic', 'elastic', 'rigid'])

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

See also

StairsJointBase

Mid-storey (stairs) joint definition that this class extends.

property mz_tag: int

Material tag for the joint hinge about global-z (Mz).

Returns:

Material tag for the joint hinge about global-z (Mz).

Return type:

int

property my_tag: int

Material tag for the joint hinge about global-y (My).

Returns:

Material tag for the joint hinge about global-y (My).

Return type:

int

property sec_tag: int

Tag of aggregated beam-column joint element section.

Returns:

Tag of aggregated beam-column joint element section.

Return type:

int

property ele_tag: int

Tag of beam-column joint element.

Returns:

Tag of beam-column joint element.

Return type:

int

property fcm: float

Mean concrete compressive strength.

Returns:

Mean value of concrete compressive strength (in base units).

Return type:

float

property hstorey: float

Internal storey height.

Returns:

Internal storey height.

Return type:

float

Notes

The equations were derived using constant storey height. If possible the average one is used.

flexibility_model: Literal['inelastic', 'elastic', 'rigid']
floor_node: Node
axial_force: float
add_to_ops()[source]

Adds floor joint model objects to the OpenSees domain (i.e., joint nodes and flexibility element).

Return type:

None

to_py()[source]

Gets the Python commands to define floor joint model objects in the OpenSees domain (i.e., joint nodes and flexibility element).

Returns:

List of Python commands for constructing the components of floor joint in OpenSees.

Return type:

List[str]

to_tcl()[source]

Gets the Tcl commands to define floor joint model objects in the OpenSees domain (i.e., joint nodes and flexibility element).

Returns:

List of Tcl commands for constructing the components of floor joint in OpenSees.

Return type:

List[str]