Creating Section Geometries from the Section Library¶
In order to make your life easier, there are a number of built-in functions that generate typical
structural cross-sections, resulting in Geometry objects.
These typical cross-sections reside in the sectionproperties.pre.library module.
Constructs a rectangular section with the bottom left corner at the origin (0, 0), with
depth d and width b.
Parameters
d (float) – Depth (y) of the rectangle
b (float) – Width (x) of the rectangle
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a rectangular cross-section with a depth of 100 and width of 50,
and generates a mesh with a maximum triangular area of 5:
Constructs a solid ellipse centered at the origin (0, 0) with vertical diameter d_y and
horizontal diameter d_x, using n points to construct the ellipse.
Parameters
d_y (float) – Diameter of the ellipse in the y-dimension
d_x (float) – Diameter of the ellipse in the x-dimension
n (int) – Number of points discretising the ellipse
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates an elliptical cross-section with a vertical diameter of 25 and
horizontal diameter of 50, with 40 points, and generates a mesh with a maximum triangular area
of 1.0:
Constructs a right angled triangle with points (0, 0), (b, 0), (0, h).
Parameters
b (float) – Base length of triangle
h (float) – Height of triangle
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a triangular cross-section with a base width of 10 and height of
10, and generates a mesh with a maximum triangular area of 0.5:
Constructs a right angled isosceles triangle with points (0, 0), (b, 0), (0, h) and a
concave radius on the hypotenuse.
Parameters
b (float) – Base length of triangle
n_r (int) – Number of points discretising the radius
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a triangular radius cross-section with a base width of 6, using
n_r points to construct the radius, and generates a mesh with a maximum triangular area of
0.5:
Constructs a cruciform section centered at the origin (0, 0), with depth d, width b,
thickness t and root radius r, using n_r points to construct the root radius.
Parameters
d (float) – Depth of the cruciform section
b (float) – Width of the cruciform section
t (float) – Thickness of the cruciform section
r (float) – Root radius of the cruciform section
n_r (int) – Number of points discretising the root radius
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a cruciform section with a depth of 250, a width of 175, a
thickness of 12 and a root radius of 16, using 16 points to discretise the radius. A mesh is
generated with a maximum triangular area of 5.0:
Constructs a circular hollow section (CHS) centered at the origin (0, 0), with diameter d and
thickness t, using n points to construct the inner and outer circles.
Parameters
d (float) – Outer diameter of the CHS
t (float) – Thickness of the CHS
n (int) – Number of points discretising the inner and outer circles
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a CHS discretised with 64 points, with a diameter of 48 and
thickness of 3.2, and generates a mesh with a maximum triangular area of 1.0:
Constructs an elliptical hollow section (EHS) centered at the origin (0, 0), with outer vertical
diameter d_y, outer horizontal diameter d_x, and thickness t, using n points to
construct the inner and outer ellipses.
Parameters
d_y (float) – Diameter of the ellipse in the y-dimension
d_x (float) – Diameter of the ellipse in the x-dimension
t (float) – Thickness of the EHS
n (int) – Number of points discretising the inner and outer ellipses
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a EHS discretised with 30 points, with a outer vertical diameter
of 25, outer horizontal diameter of 50, and thickness of 2.0, and generates a mesh with a
maximum triangular area of 0.5:
Constructs a rectangular hollow section (RHS) centered at (b/2, d/2), with depth d, width b,
thickness t and outer radius r_out, using n_r points to construct the inner and outer
radii. If the outer radius is less than the thickness of the RHS, the inner radius is set to
zero.
Parameters
d (float) – Depth of the RHS
b (float) – Width of the RHS
t (float) – Thickness of the RHS
r_out (float) – Outer radius of the RHS
n_r (int) – Number of points discretising the inner and outer radii
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates an RHS with a depth of 100, a width of 50, a thickness of 6 and
an outer radius of 9, using 8 points to discretise the inner and outer radii. A mesh is
generated with a maximum triangular area of 2.0:
Constructs a regular hollow polygon section centered at (0, 0), with a pitch circle
diameter of bounding polygon d, thickness t, number of sides n_sides and an optional
inner radius r_in, using n_r points to construct the inner and outer radii (if radii is
specified).
Parameters
d (float) – Pitch circle diameter of the outer bounding polygon (i.e. diameter of circle
that passes through all vertices of the outer polygon)
t (float) – Thickness of the polygon section wall
r_in (float) – Inner radius of the polygon corners. By default, if not specified, a polygon
with no corner radii is generated.
n_r (int) – Number of points discretising the inner and outer radii, ignored if no inner
radii is specified
rot (float) – Initial counterclockwise rotation in degrees. By default bottom face is
aligned with x axis.
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
Raises
Exception – Number of sides in polygon must be greater than or equal to 3
The following example creates an Octagonal section (8 sides) with a diameter of 200, a
thickness of 6 and an inner radius of 20, using 12 points to discretise the inner and outer
radii. A mesh is generated with a maximum triangular area of 5:
Constructs an I Section centered at (b/2, d/2), with depth d, width b, flange
thickness t_f, web thickness t_w, and root radius r, using n_r points to construct the
root radius.
Parameters
d (float) – Depth of the I Section
b (float) – Width of the I Section
t_f (float) – Flange thickness of the I Section
t_w (float) – Web thickness of the I Section
r (float) – Root radius of the I Section
n_r (int) – Number of points discretising the root radius
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates an I Section with a depth of 203, a width of 133, a flange
thickness of 7.8, a web thickness of 5.8 and a root radius of 8.9, using 16 points to
discretise the root radius. A mesh is generated with a maximum triangular area of 3.0:
Constructs a monosymmetric I Section centered at (max(b_t, b_b)/2, d/2), with depth d,
top flange width b_t, bottom flange width b_b, top flange thickness t_ft, top flange
thickness t_fb, web thickness t_w, and root radius r, using n_r points to construct the
root radius.
Parameters
d (float) – Depth of the I Section
b_t (float) – Top flange width
b_b (float) – Bottom flange width
t_ft (float) – Top flange thickness of the I Section
t_fb (float) – Bottom flange thickness of the I Section
t_w (float) – Web thickness of the I Section
r (float) – Root radius of the I Section
n_r (int) – Number of points discretising the root radius
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a monosymmetric I Section with a depth of 200, a top flange width
of 50, a top flange thickness of 12, a bottom flange width of 130, a bottom flange thickness of
8, a web thickness of 6 and a root radius of 8, using 16 points to discretise the root radius.
A mesh is generated with a maximum triangular area of 3.0:
Constructs a Tapered Flange I Section centered at (b/2, d/2), with depth d, width b,
mid-flange thickness t_f, web thickness t_w, root radius r_r, flange radius r_f and
flange angle alpha, using n_r points to construct the radii.
Parameters
d (float) – Depth of the Tapered Flange I Section
b (float) – Width of the Tapered Flange I Section
t_f (float) – Mid-flange thickness of the Tapered Flange I Section (measured at the point
equidistant from the face of the web to the edge of the flange)
t_w (float) – Web thickness of the Tapered Flange I Section
r_r (float) – Root radius of the Tapered Flange I Section
r_f (float) – Flange radius of the Tapered Flange I Section
alpha (float) – Flange angle of the Tapered Flange I Section (degrees)
n_r (int) – Number of points discretising the radii
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a Tapered Flange I Section with a depth of 588, a width of 191, a
mid-flange thickness of 27.2, a web thickness of 15.2, a root radius of 17.8, a flange radius
of 8.9 and a flange angle of 8°, using 16 points to discretise the radii. A mesh is generated
with a maximum triangular area of 20.0:
Constructs a parallel-flange channel (PFC) section with the bottom left corner at the origin (0, 0), with depth d,
width b, flange thickness t_f, web thickness t_w and root radius r, using n_r points
to construct the root radius.
Parameters
d (float) – Depth of the PFC section
b (float) – Width of the PFC section
t_f (float) – Flange thickness of the PFC section
t_w (float) – Web thickness of the PFC section
r (float) – Root radius of the PFC section
n_r (int) – Number of points discretising the root radius
shift (list[float, float]) – Vector that shifts the cross-section by (x, y)
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a PFC section with a depth of 250, a width of 90, a flange
thickness of 15, a web thickness of 8 and a root radius of 12, using 8 points to discretise the
root radius. A mesh is generated with a maximum triangular area of 5.0:
Constructs a Tapered Flange Channel section with the bottom left corner at the origin
(0, 0), with depth d, width b, mid-flange thickness t_f, web thickness t_w, root
radius r_r, flange radius r_f and flange angle alpha, using n_r points to construct the
radii.
Parameters
d (float) – Depth of the Tapered Flange Channel section
b (float) – Width of the Tapered Flange Channel section
t_f (float) – Mid-flange thickness of the Tapered Flange Channel section (measured at the
point equidistant from the face of the web to the edge of the flange)
t_w (float) – Web thickness of the Tapered Flange Channel section
r_r (float) – Root radius of the Tapered Flange Channel section
r_f (float) – Flange radius of the Tapered Flange Channel section
alpha (float) – Flange angle of the Tapered Flange Channel section (degrees)
n_r (int) – Number of points discretising the radii
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a Tapered Flange Channel section with a depth of 10, a width of
3.5, a mid-flange thickness of 0.575, a web thickness of 0.475, a root radius of 0.575, a
flange radius of 0.4 and a flange angle of 8°, using 16 points to discretise the radii. A mesh
is generated with a maximum triangular area of 0.02:
Constructs a Tee section with the top left corner at (0, d), with depth d, width b,
flange thickness t_f, web thickness t_w and root radius r, using n_r points to
construct the root radius.
Parameters
d (float) – Depth of the Tee section
b (float) – Width of the Tee section
t_f (float) – Flange thickness of the Tee section
t_w (float) – Web thickness of the Tee section
r (float) – Root radius of the Tee section
n_r (int) – Number of points discretising the root radius
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a Tee section with a depth of 200, a width of 100, a flange
thickness of 12, a web thickness of 6 and a root radius of 8, using 8 points to discretise the
root radius. A mesh is generated with a maximum triangular area of 3.0:
Constructs an angle section with the bottom left corner at the origin (0, 0), with depth
d, width b, thickness t, root radius r_r and toe radius r_t, using n_r points to
construct the radii.
Parameters
d (float) – Depth of the angle section
b (float) – Width of the angle section
t (float) – Thickness of the angle section
r_r (float) – Root radius of the angle section
r_t (float) – Toe radius of the angle section
n_r (int) – Number of points discretising the radii
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates an angle section with a depth of 150, a width of 100, a thickness
of 8, a root radius of 12 and a toe radius of 5, using 16 points to discretise the radii. A
mesh is generated with a maximum triangular area of 2.0:
Constructs a Cee section (typical of cold-formed steel) with the bottom left corner at the
origin (0, 0), with depth d, width b, lip l, thickness t and outer radius r_out,
using n_r points to construct the radius. If the outer radius is less than the thickness
of the Cee Section, the inner radius is set to zero.
Parameters
d (float) – Depth of the Cee section
b (float) – Width of the Cee section
l (float) – Lip of the Cee section
t (float) – Thickness of the Cee section
r_out (float) – Outer radius of the Cee section
n_r (int) – Number of points discretising the outer radius
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
Raises
Exception – Lip length must be greater than the outer radius
The following example creates a Cee section with a depth of 125, a width of 50, a lip of 30, a
thickness of 1.5 and an outer radius of 6, using 8 points to discretise the radius. A mesh is
generated with a maximum triangular area of 0.25:
Constructs a zed section with the bottom left corner at the origin (0, 0), with depth d,
left flange width b_l, right flange width b_r, lip l, thickness t and outer radius
r_out, using n_r points to construct the radius. If the outer radius is less than the
thickness of the Zed Section, the inner radius is set to zero.
Parameters
d (float) – Depth of the zed section
b_l (float) – Left flange width of the Zed section
b_r (float) – Right flange width of the Zed section
l (float) – Lip of the Zed section
t (float) – Thickness of the Zed section
r_out (float) – Outer radius of the Zed section
n_r (int) – Number of points discretising the outer radius
Optional[sectionproperties.pre.pre.Material] – Material to associate with this geometry
The following example creates a zed section with a depth of 100, a left flange width of 40, a
right flange width of 50, a lip of 20, a thickness of 1.2 and an outer radius of 5, using 8
points to discretise the radius. A mesh is generated with a maximum triangular area of 0.15:
Constructs a box girder section centered at at (max(b_t, b_b)/2, d/2), with depth d, top
width b_t, bottom width b_b, top flange thickness t_ft, bottom flange thickness t_fb
and web thickness t_w.
Parameters
d (float) – Depth of the Box Girder section
b_t (float) – Top width of the Box Girder section
b_b (float) – Bottom width of the Box Girder section
t_ft (float) – Top flange thickness of the Box Girder section
t_fb (float) – Bottom flange thickness of the Box Girder section
t_w (float) – Web thickness of the Box Girder section
The following example creates a Box Girder section with a depth of 1200, a top width of 1200, a
bottom width of 400, a top flange thickness of 16, a bottom flange thickness of 12 and a web
thickness of 8. A mesh is generated with a maximum triangular area of 5.0:
Constructs a bulb section with the bottom left corner at the point
(-t / 2, 0), with depth d, bulb depth d_b, bulb width b, web thickness t
and radius r, using n_r points to construct the radius.
Parameters
d (float) – Depth of the section
b (float) – Bulb width
t (float) – Web thickness
r (float) – Bulb radius
d_b (float) – Depth of the bulb (automatically calculated for standard sections,
if provided the section may have sharp edges)
n_r (int) – Number of points discretising the radius
Optional[sectionproperties.pre.pre.Material] – Material to associate with
this geometry
The following example creates a bulb section with a depth of 240, a width of 34, a
web thickness of 12 and a bulb radius of 16, using 16 points to discretise the
radius. A mesh is generated with a maximum triangular area of 5.0:
Constructs a concrete rectangular section of width b and depth d, with
n_top top steel bars of diameter dia_top, n_bot bottom steel bars of diameter
dia_bot, n_side left & right side steel bars of diameter dia_side discretised
with n_circle points with equal side and top/bottom cover to the steel.
Parameters
b (float) – Concrete section width
d (float) – Concrete section depth
dia_top (float) – Diameter of the top steel reinforcing bars
n_top (int) – Number of top steel reinforcing bars
dia_bot (float) – Diameter of the bottom steel reinforcing bars
n_bot (int) – Number of bottom steel reinforcing bars
n_circle (int) – Number of points discretising the steel reinforcing bars
cover (float) – Side and bottom cover to the steel reinforcing bars
dia_side (float) – If provided, diameter of the side steel reinforcing bars
n_side (int) – If provided, number of side bars either side of the section
area_top (float) – If provided, constructs top reinforcing bars based on their
area rather than diameter (prevents the underestimation of steel area due to
circle discretisation)
area_bot (float) – If provided, constructs bottom reinforcing bars based on
their area rather than diameter (prevents the underestimation of steel area due
to circle discretisation)
area_side (float) – If provided, constructs side reinforcing bars based on
their area rather than diameter (prevents the underestimation of steel area due
to circle discretisation)
conc_mat – Material to associate with the concrete
steel_mat – Material to associate with the steel
Raises
ValueError – If the number of bars is not greater than or equal to 2 in an
active layer
The following example creates a 600D x 300W concrete beam with 3N20 bottom steel
reinforcing bars and 30 mm cover:
Constructs a concrete rectangular section of width b and depth d, with
steel bar reinforcing organized as an n_bars_b by n_bars_d array, discretised
with n_circle points with equal sides and top/bottom cover to the steel which
is taken as the clear cover (edge of bar to edge of concrete).
Parameters
b (float) – Concrete section width, parallel to the x-axis
d (float) – Concrete section depth, parallel to the y-axis
cover (float) – Clear cover, calculated as distance from edge of reinforcing bar to edge of section.
n_bars_b (int) – Number of bars placed across the width of the section, minimum 2.
n_bars_d (int) – Number of bars placed across the depth of the section, minimum 2.
dia_bar (float) – Diameter of reinforcing bars. Used for calculating bar placement and,
optionally, for calculating the bar area for section capacity calculations.
bar_area (float) – Area of reinforcing bars. Used for section capacity calculations.
If not provided, then dia_bar will be used to calculate the bar area.
filled (bool) – When True, will populate the concrete section with an equally
spaced 2D array of reinforcing bars numbering ‘n_bars_b’ by ‘n_bars_d’.
When False, only the bars around the perimeter of the array will be present.
n_circle (int) – The number of points used to discretize the circle of the reinforcing
bars. The bars themselves will have an exact area of ‘bar_area’ regardless of the
number of points used in the circle. Useful for making the reinforcing bars look
more circular when plotting the concrete section.
Raises
ValueError – If the number of bars in either ‘n_bars_b’ or ‘n_bars_d’ is not greater
than or equal to 2.
The following example creates a 600D x 300W concrete column with 25 mm diameter
reinforcing bars each with 500 mm**2 area and 35 mm cover in a 3x6 array without
the interior bars being filled:
Constructs a concrete tee section of width b, depth d, flange width b_f
and flange depth d_f, with n_top top steel bars of diameter dia_top, n_bot
bottom steel bars of diameter dia_bot, discretised with n_circle points with
equal side and top/bottom cover to the steel.
Parameters
b (float) – Concrete section width
d (float) – Concrete section depth
b_f (float) – Concrete section flange width
d_f (float) – Concrete section flange depth
dia_top (float) – Diameter of the top steel reinforcing bars
n_top (int) – Number of top steel reinforcing bars
dia_bot (float) – Diameter of the bottom steel reinforcing bars
n_bot (int) – Number of bottom steel reinforcing bars
n_circle (int) – Number of points discretising the steel reinforcing bars
cover (float) – Side and bottom cover to the steel reinforcing bars
area_top (float) – If provided, constructs top reinforcing bars based on their
area rather than diameter (prevents the underestimation of steel area due to
circle discretisation)
area_bot (float) – If provided, constructs bottom reinforcing bars based on
their area rather than diameter (prevents the underestimation of steel area due
to circle discretisation)
conc_mat – Material to associatewith the concrete
steel_mat – Material toassociate with the steel
Raises
ValueErorr – If the number of bars is not greater than or equal to 2 in an
active layer
The following example creates a 900D x 450W concrete beam with a 1200W x 250D
flange, with 5N24 steel reinforcing bars and 30 mm cover:
Constructs a concrete circular section of diameter d discretised with n
points, with n_bar steel bars of diameter dia, discretised with n_circle
points with equal side and bottom cover to the steel.
Parameters
d (float) – Concrete diameter
n (float) – Number of points discretising the concrete section
dia (float) – Diameter of the steel reinforcing bars
n_bar (int) – Number of steel reinforcing bars
n_circle (int) – Number of points discretising the steel reinforcing bars
cover (float) – Side and bottom cover to the steel reinforcing bars
area_conc (float) – If provided, constructs the concrete based on its area
rather than diameter (prevents the underestimation of concrete area due to
circle discretisation)
area_bar (float) – If provided, constructs reinforcing bars based on their area
rather than diameter (prevents the underestimation of steel area due to
conc_mat – Material to associate with the concrete
steel_mat – Material to associate with the steel
Raises
ValueErorr – If the number of bars is not greater than or equal to 2
The following example creates a 450DIA concrete column with with 6N20 steel
reinforcing bars and 45 mm cover:
Note that the properties are reported as modulusweighted properties (e.g. E.A) and can
be normalized to the reference material by dividing by that elastic modulus:
A_65=section.get_ea()/precast.elastic_modulus
The reported section centroids are already weighted.