simdesign.rcmrf.geometry.standard

Standard geometry module for defining regular frame structures parametrically.

This module provides the StandardGeometry class for uniform, rectangular RC moment-resisting frames (equal bay widths and storey heights), using the tag encoding of simdesign.utils.tags for points, lines and rectangles (two digits per grid index).

class simdesign.rcmrf.geometry.standard.StandardGeometry(num_storeys, storey_height, num_bays_x, bay_width_x, num_bays_y, bay_width_y, tag=None)[source]

Bases: GeometryBase

Class representing a standard frame structure.

This class inherits from GeometryBase and extends it to represent a standard frame structure. It initializes the frame with the given parameters and constructs the base geometry of the frame. It is called StandardGeometry because its base geometry is built as a uniform and regular frame (equal bay widths and storey heights).

Parameters:
  • num_storeys (int) – The number of storeys in the frame.

  • storey_height (float) – The height of each storey.

  • num_bays_x (int) – The number of bays along the X-direction.

  • bay_width_x (float) – The width of each bay along the X-direction.

  • num_bays_y (int) – The number of bays along the Y-direction.

  • bay_width_y (float) – The width of each bay along the Y-direction.

  • tag (str | None)

_num_storeys

The number of storeys in the frame.

Type:

int

_num_bays_x

The number of bays along the X-direction.

Type:

int

_num_bays_y

The number of bays along the Y-direction.

Type:

int

_storey_height

The height of each storey.

Type:

float

_bay_width_x

The width of each bay along the X-direction.

Type:

float

_bay_width_y

The width of each bay along the Y-direction.

Type:

float

add_infills(xz=True, yz=True, ground=True, exterior=True, interior=False, ext_type=None, int_type=None)[source]

Initialize the rectangles representing infill panels in XZ and/or YZ planes of the frame.

Parameters:
  • xz (bool, default=True) – If True, add infill rectangles in XZ planes (varying x and z for fixed y).

  • yz (bool, default=True) – If True, add infill rectangles in YZ planes (varying y and z for fixed x).

  • ground (bool, default=True) – If True, include panels starting from ground level (k=0..num_storeys-1). If False, start from the first elevated storey (k=1..num_storeys-1).

  • exterior (bool, default=True) – Include infills on exterior grid lines (i=0 or i=n_x, j=0 or j=n_y).

  • interior (bool, default=False) – Include infills on interior grid lines (excluding the exterior lines).

  • ext_type (str | None) – Typology of exterior frame infills. Options: ‘Weak’, ‘Medium’, ‘Strong’.

  • int_type (str | None) – Typology of interior frame infills Options: ‘Weak’, ‘Medium’, ‘Strong’.

Return type:

None

Notes

  • For YZ panels, the fixed-x indices (i_range) are determined by the yz, exterior, and interior switches.

  • For XZ panels, the fixed-y indices (j_range) are determined by the xz, exterior, and interior switches.

  • Created rectangles are tagged using encode_rectangle_tag() with plane ‘YZ’ or ‘XZ’ and assigned the label ‘Infill’.

add_new_elements_for_stairs(ext_type=None, int_type=None, infills=True)[source]

Adds the new lines (beams) and connecting points for supporting stairs along with the masonry infill walls surrounding the stairs.

This method adds new lines and points to represent stairs in the frame. It identifies rectangles that represent stairs and generates additional points and lines for each staircase within those rectangles. For each staircase, it creates two additional points at mid-storey height, divides the vertical lines passing through these points into two, and adds a beam between the two nodes supporting the staircase loads.

Parameters:
  • ext_type (str | None) – Typology of exterior frame infills. Options: ‘Weak’, ‘Medium’, ‘Strong’.

  • int_type (str | None) – Typology of interior frame infills. Options: ‘Weak’, ‘Medium’, ‘Strong’.

  • infills (bool, optional) – Flag to add infill walls surrounding the stairs.

Return type:

None

Notes

  • Ensure to add the lines and points for stairs after finalizing the base geometry.

  • The grid IDs at the stair line levels should always end with ‘.5’. For example, for stairs between floor one and two the grid id will be 1.5.

  • Do not update the grid system after using this method.

TODO

  • Improve the the behaviour grid id restrictions of stairs.

  • Add option for defining the supporting beam location