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:
GeometryBaseClass representing a standard frame structure.
This class inherits from
GeometryBaseand 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 theyz,exterior, andinteriorswitches.For XZ panels, the fixed-y indices (
j_range) are determined by thexz,exterior, andinteriorswitches.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