simdesign.rcmrf.bdim.baselib.rebars

This module provides the base class for representing the detailing of structural members in the BDIM layer.

class simdesign.rcmrf.bdim.baselib.rebars.RebarData(*, beam_longitudinal_bar_diameters, beam_transverse_bar_diameters, beam_transverse_bar_spacings, column_longitudinal_bar_diameters, column_transverse_bar_diameters, column_transverse_bar_spacings, units)[source]

Bases: BaseModel

Pydantic model for available rebar sizes and spacings.

Parameters:
  • beam_longitudinal_bar_diameters (List[float])

  • beam_transverse_bar_diameters (List[float])

  • beam_transverse_bar_spacings (List[float])

  • column_longitudinal_bar_diameters (List[float])

  • column_transverse_bar_diameters (List[float])

  • column_transverse_bar_spacings (List[float])

  • units (Literal['mm', 'in'])

beam_longitudinal_bar_diameters

Possible beams longitudinal bar diameters (nominal).

Type:

List[float]

beam_transverse_bar_diameters

Possible beams transverse bar diameters (nominal).

Type:

List[float]

beam_transverse_bar_spacings

Possible beams transverse bar spacings.

Type:

List[float]

column_longitudinal_bar_diameters

Possible columns longitudinal bar diameters (nominal).

Type:

List[float]

column_transverse_bar_diameters

Possible columns transverse bar diameters (nominal).

Type:

List[float]

column_transverse_bar_spacings

Possible columns transverse bar spacings.

Type:

List[float]

units

Units of bar diameters and spacings.

Type:

Literal[‘mm’, ‘in’]

class simdesign.rcmrf.bdim.baselib.rebars.RebarsBase[source]

Bases: ABC

Abstract base class for rebar detailing of structural members.

Determines rebar configurations for beams and columns. The assumptions made in these processes can have a significant impact on the final reinforcement solutions.

_data_path

Path to the JSON file containing rebar data.

Type:

Path | str

beam_long_bar_diams

Possible beam longitudinal bar diameters.

Type:

np.ndarray

beam_trans_bar_diams

Possible beam transverse bar diameters.

Type:

np.ndarray

beam_trans_bar_spacings

Possible beam transverse bar spacings.

Type:

np.ndarray

col_long_bar_diams

Possible column longitudinal bar diameters.

Type:

np.ndarray

col_trans_bar_diams

Possible column transverse bar diameters.

Type:

np.ndarray

col_trans_bar_spacings

Possible column transverse bar spacings.

Type:

np.ndarray

concrete

Concrete material instance considered in design of beams and columns.

Type:

ConcreteBase

steel

Steel material instance considered in design of beams and columns.

Type:

SteelBase

beam_max_sbl

Maximum spacing between longitudinal bars (reinforcement) for beams.

Type:

float

beam_min_sbl

Minimum spacing between longitudinal bars (reinforcement) for beams.

Type:

float

beam_max_leg_dist

For beams, maximum distance between longitudinal bars within a beam section that can be considered to be confined without the need to have an extra stirrup leg around them.

Type:

float

beam_cover

Concrete cover for beams.

Type:

float

col_max_sbl

Maximum spacing between longitudinal bars (reinforcement) for columns.

Type:

float

col_min_sbl

Minimum spacing between longitudinal bars (reinforcement) for columns.

Type:

float

col_max_leg_dist

Maximum distance between longitudinal bars within a column section that can be considered to be confined without the need to have an extra stirrup leg around them.

Type:

float

col_cover

Concrete cover for columns.

Type:

float

get_beam_long_rebars(Asl_top, Asl_bot, b)[source]

Select the longitudinal reinforcement solution for a generic beam with dimension b over an alignment with N sections.

Parameters:
  • Asl_top (np.ndarray) – Required longitudinal reinforcement area at top.

  • Asl_bot (np.ndarray) – Required longitudinal reinforcement area at bottom.

  • b (np.ndarray) – Beam breadth (width).

Returns:

  • dbl_t1 (np.ndarray) – Diameter of 1st type of longitudinal bars at top.

  • nbl_t1 (np.ndarray) – Number of 1st type of longitudinal bars at top.

  • dbl_t2 (np.ndarray) – Diameter of 2nd type of longitudinal bars at top.

  • nbl_t2 (np.ndarray) – Number of 2nd type of longitudinal bars at top.

  • dbl_b1 (np.ndarray) – Diameter of 1st type of longitudinal bars at bottom.

  • nbl_b1 (np.ndarray) – Number of 1st type of longitudinal bars at bottom.

  • dbl_b2 (np.ndarray) – Diameter of 2nd type of longitudinal bars at bottom.

  • nbl_b2 (np.ndarray) – Number of 2nd type of longitudinal bars at bottom.

Return type:

tuple[ndarray]

Abbreviations for rebars

  • b: rebar, bar, reinforcement

  • l: longitudinal

  • h: horizontal (transverse)

  • n: number of

  • d: diameter

Assumptions

  • Always starts with top reinforcement

  • At top or bottom of the beam sections at most two type of bars can be used (e.g., dbl_t1, dbl_t2, dbl_b1, dbl_b2).

  • The diameter of 1st type long. bar is always greater than or equal to the diameter of 2nd type long. bar (dbl1 >= dbl2). Even if 2nd diam is smaller, choose the closest one to dbl1 from the available bars.

  • dbl1’s and dbl2’s at bottom and top parts of the sections do not necessarily have to be the same. (e.g., dbl_t1=0.020, dbl_b1=0.025)

  • Along the beam which is continuous over the multiple spans maximum of two rebar diameter is allowed.

  • At the two ends of beam sections, the provided reinforcement could be different.

  • Number of 1st type longitudinal bars is equal for all the sections. Number of 1st type longitudinal bars at bottom and also at top can be minimum of two. Hence, at least four corner bars of 1st type are provided.

Example Section

           Y
           ^
           |
-----------------------     -------------
| @t1  @t2   @t2  @t1 |     |   -- cover
|                     |     |
|                     |     |
|          +          |     h
|                     |     |
|                     |     |
| @b1 @b2 @b1 @b2 @b1 |     |   -- cover
-----------------------     -------------  ----> Z
|--------- b ---------|

Asl_top = 2.Ab_@t1 + 2.Ab_@t2
Asl_bot = 3.Ab_@b1 + 2.Ab_@b2

Number of unique diameter values at a section can be one or two
unique(db_@t1), db_@t2), db_@b1), db_@b2)) = (dbl_1, dbl_2)
OR
unique(db_@t1), db_@t2), db_@b1), db_@b2)) = dbl

TODO

  1. Allow use of 3rd diameter for longitudinal reinforcement

  2. Possibly limit the number of @t1’s and @b1’s to 2 (corner bars only)

  3. Enforce continuous @t1 and @b1 (corner bars) in all beam sections.

get_beam_transv_rebars(Ash_sbh, nbl_t1, nbl_t2, nbl_b1, nbl_b2, dbl_t1, dbl_b1, b, h)[source]

Select transverse reinforcement solution for a generic beam with dimension b and h over an alignment with N sections.

Parameters:
  • Ash_sbh (np.ndarray) – Required transverse reinforcement area to spacing ratio.

  • nbl_t1 (np.ndarray) – Number of 1st type of longitudinal bars at top.

  • nbl_t2 (np.ndarray) – Number of 2nd type of longitudinal bars at top.

  • nbl_b1 (np.ndarray) – Number of 1st type of longitudinal bars at bottom.

  • nbl_b2 (np.ndarray) – Number of 2nd type of longitudinal bars at bottom.

  • dbl_t1 (np.ndarray) – Diameter of 1st type of longitudinal bars at top.

  • dbl_b1 (np.ndarray) – Diameter of 1st type of longitudinal bars at bottom.

  • b (np.ndarray) – Beam breadth (width).

  • h (np.ndarray) – Beam height (depth).

Returns:

  • dbh (np.ndarray) – Diameter of horizontal bars (transverse reinforcement).

  • sbh (np.ndarray) – Spacing of horizontal bars (transverse reinforcement).

  • nbh_parallel_b (np.ndarray) – Number of horizontal bars (stirrup legs) parallel to width.

  • nbh_parallel_h (np.ndarray) – Number of horizontal bars (stirrup legs) parallel to height.

Return type:

tuple[ndarray]

Abbreviations for rebars

  • Same as get_beam_long_rebars.

Assumptions

  • Same as get_beam_long_rebars.

get_column_long_rebars(Aslx_req, Asly_req, rhol_min, bx, by)[source]

Select the longitudinal reinforcement solution for a generic column with dimension bx and by over an alignment with N sections.

Parameters:
  • Aslx_req (np.ndarray) – Required longitudinal reinforcement area at bottom or top side of the section, In other words, required area of bars distributed along -x on one side.

  • Asly_req (np.ndarray) – Required longitudinal reinforcement area at left or right side of the section. In other words, required area of bars distributed along -y on one side.

  • rhol_min (np.ndarray) – Minimum longitudinal reinforcement ratio.

  • bx (np.ndarray) – Breadth (width) along global -x axis.

  • by (np.ndarray) – Breadth (width) along global -y axis.

Returns:

  • dbl_c (np.ndarray) – Diameter of corner longitudinal bars.

  • dbl_i (np.ndarray) – Diameter of internal longitudinal bars.

  • nbl_ix (np.ndarray) – Number of internal longitudinal bars (reinforcement) at bottom or top side of the section. In other words, half of the total number of internal longitudinal bars distributed along X (on one side of the section).

  • nbl_iy (np.ndarray) – Number of internal longitudinal bars (reinforcement) at left or right side of the section. In other words, half of the total number of internal longitudinal bars distributed along Y (on one side of the section).

Return type:

tuple[ndarray]

Abbreviations for rebars

b: rebar, bar, reinforcement l: longitudinal h: horizontal (transverse) n: number of d: diameter i: internal c: corner

Assumptions

  • All corner bars have the same diameter.

  • Corner bars are continuous over the sections.

  • All internal bars have the same diameter.

  • Internal bars may or may not be continuous.

  • Internal bars can have either the same diameters as corner bars or can have a smaller diameter which is still closest to the corner one.

Example Section

          Y
          ^
          |
-----------------------     -------------
| @c    @i    @i   @c |     |  ---- cover
|                     |     |
| @i               @i |     |
|                     |     |
| @i       +       @i |     by
|                     |     |
| @i               @i |     |
|                     |     |
| @c    @i    @i   @c |     |  ---- cover
-----------------------     -------------  ----> X
|-------- bx ---------|

Aslx_req = 2.Ab_@c + 2.Ab_@i
Asly_req = 2.Ab_@c + 3.Ab_@i

Number of unique diameter values at a section can be one or two
unique(db_@c, db_@i) = (dbl_c, dbl_i)
OR
unique(db_@c, db_@i) = dbl_c
get_column_transv_rebars(bx, by, Ashx_sbh_req, Ashy_sbh_req, dbl_c, nbl_ix, nbl_iy)[source]

Select transverse (horizontal/shear) reinforcement solution for a generic column with dimension bx and by over an alignment with N sections.

Parameters:
  • bx (np.ndarray) – Breadth (width) along global -x axis.

  • by (np.ndarray) – Breadth (width) along global -y axis.

  • Ashx_sbh_req (np.ndarray) – Required ratio of transverse reinforcement area along -x axis (i.e., parallel to -x axis) to the bar spacing.

  • Ashy_sbh_req (np.ndarray) – Required ratio of transverse reinforcement area along -y axis (i.e., parallel to -y axis) to the bar spacing.

  • dbl_c (np.ndarray) – Diameter of corner longitudinal bars.

  • nbl_ix (np.ndarray) – Number of internal longitudinal bars (reinforcement) at bottom or top side of the section. In other words, half of the total number of internal longitudinal bars distributed along X (on one side of the section).

  • nbl_iy (np.ndarray) – Number of internal longitudinal bars (reinforcement) at left or right side of the section. In other words, half of the total number of internal longitudinal bars distributed along Y (on one side of the section).

Returns:

  • dbh (np.ndarray) – Diameter of horizontal bars (transverse reinforcement).

  • sbh (np.ndarray) – Spacing of horizontal bars (transverse reinforcement).

  • nbh_x (np.ndarray) – Number of horizontal bars (stirrup legs) along -x axis.

  • nbh_y (np.ndarray) – Number of horizontal bars (stirrup legs) along -y axis.

Return type:

tuple[ndarray]

Abbreviations for rebars

  • Same as get_column_long_rebars.

Assumptions

  • Same as get_column_long_rebars.