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:
BaseModelPydantic 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:
ABCAbstract 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:
- 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
Allow use of 3rd diameter for longitudinal reinforcement
Possibly limit the number of @t1’s and @b1’s to 2 (corner bars only)
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.