API References

API References.

class etacad.bar.Bar(reinforcement_length: float, diameter: float, x: float = 0, y: float = 0, direction: Direction = Direction.HORIZONTAL, orientation: Orientation = Orientation.BOTTOM, transverse_center: tuple = None, left_anchor: float = 0, right_anchor: float = 0, mandrel_radius: float = 0, bend_longitud: float = 0, bend_angle: float = 0, bend_height: float = 0, element_type: ElementTypes = ElementTypes.BAR, denomination: str = None, position: str = None, quantity: int = None)

Longitudinal bar element, computes geometrics and physics props and manages dxf drawing methods.

Parameters:
  • reinforcement_length (float) – Length of the stirrup reinforcement.

  • diameter (float) – Diameter of stirrup bar.

  • x (float) – X coordinate of the bottom left corner Stirrup bounding box point.

  • y (float) – Y coordinate of the bottom left corner Stirrup bounding box point.

  • left_anchor (float) – Left anchor length of stirrup.

  • right_anchor (float) – Right anchor length of stirrup.

  • mandrel_radius (float) – Mandrel radius of bar.

  • direction (Direction) – Direction of the stirrup (Horizontal or Vertical).

  • orientation (Orientation) – Orientation of the stirrup (top, right, down, left).

  • bend_longitud – Bending longitud of the bar at center of bar.

  • bend_angle (float) – Bending declination angle.

  • bend_height (float) – Bending height of the bar at center of bar.

  • transverse_center (tuple) – Transverse center of the drawing of cross-section.

Type:

float

Variables:
  • reinforcement_length – Total length of the reinforcement bar.

  • diameter – Diameter of the bar.

  • radius – Radius of the bar (half of the diameter).

  • length – Overall length of the bar, including bends and anchors.

  • x – X coordinate of the bottom left corner of the bounding box.

  • y – Y coordinate of the bottom left corner of the bounding box.

  • direction – Direction of the bar (horizontal or vertical).

  • orientation – Positioning of the bar (top, right, down, left).

  • transverse_center – Coordinates of the transverse center of the cross-section.

  • left_anchor – Length of the left anchor.

  • right_anchor – Length of the right anchor.

  • mandrel_radius – Radius of the mandrel used for bending.

  • mandrel_radius_ext – External radius of the mandrel plus the bar’s diameter.

  • bend_longitud – Length of the bar bend at its center.

  • bend_angle – Angle of the bar bend.

  • bend_height – Height of the bar at the bend.

  • bending_proyection – Projection length caused by the bar’s bend.

  • box_width – Width of the bounding box containing the bar.

  • box_height – Height of the bounding box containing the bar.

  • weight – Weight of the bar, calculated using a steel density of 7850 kg/m³.

  • element_type – Type of the element (BAR).

  • denomination – Optional denomination for the bar element.

data() dict

Collects and returns the essential attributes of the bar element in a dictionary format.

Returns:

Dictionary containing key attributes of the bar such as denomination, length, diameter and weight.

Return type:

dict

draw_longitudinal(document: Drawing, x: float = None, y: float = None, unifilar: bool = False, dimensions: bool = True, denomination: bool = True, settings: dict = {'text_denomination_distance': 0.0, 'text_denomination_height': 0.05, 'text_dim_distance_horizontal': 0.05, 'text_dim_distance_vertical': 0.05, 'text_dim_height': 0.05}) dict

Draws the longitudinal view of the bar in a DXF document.

Parameters:
  • document (Drawing) – The DXF document to draw on.

  • x (float, optional) – X coordinate for the drawing, defaults to self.x.

  • y (float, optional) – Y coordinate for the drawing, defaults to self.y.

  • unifilar (bool, optional) – Whether to draw a unifilar representation (simplified view), defaults to False.

  • dimensions (bool, optional) – Whether to include dimensions in the drawing, defaults to True.

  • denomination (bool, optional) – Whether to include the denomination label, defaults to True.

  • settings (dict, optional) – Dictionary of settings for dimensioning. Defaults to BAR_SET_LONG.

Returns:

Dict of drawing entities for the longitudinal view.

Return type:

dict

draw_transverse(document: Drawing, x: float = None, y: float = None, settings: dict = {'text_denomination_distance': 0.1, 'text_denomination_height': 0.05, 'text_dim_distance_horizontal': 0.05, 'text_dim_distance_vertical': 0.05, 'text_dim_height': 0.05}) dict

Draws the transverse section of the bar in a DXF document.

Parameters:
  • document (Drawing) – The DXF document to draw on.

  • x (float, optional) – X coordinate for the drawing, defaults to self.x.

  • y (float, optional) – Y coordinate for the drawing, defaults to self.y.

  • settings (dict, optional) – Dictionary of settings for dimensioning. Defaults to BAR_SET_TRANSVERSE.

Returns:

Dict of drawing entities for the transverse section.

Return type:

dict

extract_data(labels: list[str] = None)

Extracts specific data attributes based on the provided list of labels. If no labels are provided, it defaults to extracting “denomination”, “length”, “diameter”, and “weight”.

Parameters:

labels (list[str], optional) – List of attribute names to extract. Defaults to common attributes if not provided.

Returns:

A list of values corresponding to the requested labels.

Return type:

list


class etacad.stirrup.Stirrup(width: float, height: float, diameter: float, reinforcement_length: float, spacing: float, x: float = 0, y: float = 0, mandrel_radius_top: float = 0, mandrel_radius_bottom: float = 0, anchor: float = 0, direction: Direction = Direction.HORIZONTAL, orientation: Orientation = Orientation.BOTTOM, element_type: ElementTypes = ElementTypes.STIRRUP, denomination: str = None, position: str = None)

Stirrup element, computes geometrics and physics props and manages dxf drawing methods.

Parameters:
  • width (float) – External width of stirrup.

  • height (float) – External height of stirrup.

  • diameter (float) – Diameter of stirrup bar.

  • reinforcement_length (float) – Length of the stirrup reinforcement.

  • spacing (float) – Stirrup spacing.

  • x (float) – X coordinate of the bottom left corner Stirrup bounding box point.

  • y (float) – Y coordinate of the bottom left corner Stirrup bounding box point.

  • mandrel_radius_top (float) – Mandrel radius of stirrup bar at the top.

  • mandrel_radius_bottom (float) – Mandrel radius of stirrup bar at the bottom.

  • anchor (float) – Anchor length of stirrup.

  • direction (str) – Direction of the stirrup (Horizontal or Vertical).

  • orientation (str) – Orientation of the stirrup (top, right, down, left).

Variables:
  • reinforcement_length – Length of the stirrup reinforcement.

  • spacing – Stirrup spacing.

  • mandrel_radius_top – Mandrel radius of stirrup bar at the top.

  • mandrel_radius_ext_top – Mandrel radius plus diameter of stirrup bar at the top.

  • mandrel_radius_bottom – Mandrel radius of stirrup bar at the bottom.

  • mandrel_radius_ext_bottom – Mandrel radius plus diameter of stirrup bar at the bottom.

  • anchor – Anchor length of stirrup.

  • quantity – Number of stirrups that forms de reinforcement.

  • diameter – Diameter of stirrup bar.

  • direction – Direction of the stirrup (Horizontal or Vertical).

  • orientation – Orientation of the Stirrup (top, right, down, left).

  • length – Length of the bar to fork the stirrup.

  • weight – Weight of the stirrup, considering 7850 kg / m3.

  • box_width – Width of the box that contains the stirrup.

  • box_height – Height of the box that contains the stirrup.

data() dict

Collects and returns the essential attributes of the stirrup element in a dictionary format.

Returns:

Dictionary containing key attributes of the bar such as denomination, length, diameter, weight and

quantity. :rtype: dict

draw_longitudinal(document: Drawing, x: float = None, y: float = None, unifilar=True) dict

Draw the longitudinal reinforcement of the stirrup in the dxf file.

Parameters:
  • document (Drawing) – Document in which it will be drawn.

  • x (float) – X coordinate of the bottom corner of the drawing.

  • y (float) – Y coordinate of the bottom corner of the drawing.

  • unifilar (bool) – Single-line drawing.

Returns:

None.

Return type:

None

draw_transverse(document: Drawing, x: float = None, y: float = None, unifilar: bool = False, dimensions: bool = False, settings: dict = {'dim_style': 'EZ_M_10_H25_CM', 'text_dim_distance_anchor': 0.1, 'text_dim_distance_horizontal': 0.05, 'text_dim_distance_vertical': 0.1, 'text_distance_length_count': 0.1, 'text_length_count_height': 0.05}) dict

Draw the cross-section of the stirrup in the dxf file.

Parameters:
  • document (Drawing) – Document in which it will be drawn.

  • x (float) – X coordinate of the bottom corner of the drawing.

  • y (float) – Y coordinate of the bottom corner of the drawing.

  • unifilar (bool) – Single-line drawing.

  • dimensions (bool) – Dimensions drawing.

  • settings (dict, optional) – Dictionary of settings for dimensioning. Defaults to STIRRUP_SET_TRANSVERSE.

Returns:

None.

Return type:

None

extract_data(labels: list[str] = None) list

Extracts specific data attributes based on the provided list of labels. If no labels are provided, it defaults to extracting “denomination”, “length”, “diameter”, “weight” and “quantity”.

Parameters:

labels (list[str], optional) – List of attribute names to extract. Defaults to common attributes if not provided.

Returns:

A list of values corresponding to the requested labels.

Return type:

list



class etacad.concrete.Concrete(vertices: list[tuple[float, float]], height: float = None, length: float = None, x: float = 0.0, y: float = 0.0, specific_weight: float = 2400, element_type: ElementTypes = ElementTypes.CONCRETE)

A class used to represent a concrete section with various geometric and physical attributes.

Parameters:
  • vertices (list[tuple[float, float]]) – List of tuples representing the vertices of the concrete polygon.

  • height (float, optional) – Height of the concrete section. Defaults to None.

  • length (float, optional) – Length of the concrete section. Defaults to None.

  • x (float, optional) – X-coordinate for the concrete section’s placement. Defaults to 0.0.

  • y (float, optional) – Y-coordinate for the concrete section’s placement. Defaults to 0.0.

  • specific_weight (float, optional) – Specific weight of the concrete. Defaults to CONCRETE_WEIGHT.

  • element_type (ElementTypes, optional) – Type of the structural element (e.g., CONCRETE).

Variables:
  • dim3D (float) – The third dimension (either height or length) of the concrete section.

  • volume (float) – Volume of the concrete section.

  • weight (float) – Weight of the concrete section.

  • box_width (float) – Width of the bounding box in the longitudinal direction.

  • box_height (float) – Height of the bounding box in the longitudinal direction.

  • box_width_transverse (float) – Width of the bounding box in the transverse direction.

  • box_height_transverse (float) – Height of the bounding box in the transverse direction.

  • element_type (ElementTypes, optional) – Type of the structural element (e.g., CONCRETE).

Raises:

TypeError – If neither height nor length is provided.

Methods

draw_longitudinal(document, x=None, y=None, dimensions=True, dimensions_inner=True, settings=CONCRETE_SET_LONG)

Draws the concrete section in the longitudinal direction with optional dimensioning.

draw_transverse(document, x=None, y=None, dimensions=True, dimensions_boxing=True, dimensions_inner=True,
settings=CONCRETE_SET_TRANSVERSE)

Draws the concrete section in the transverse direction with optional dimensioning.

polygon

Property method to return a Polygon object created from the vertices of the concrete section.

draw_longitudinal(document: Drawing, x: float = None, y: float = None, dimensions: bool = True, dimensions_inner: bool = True, settings: dict = {'dim_style_boxing': 'EZ_M_10_H25_CM', 'dim_style_inner': 'EZ_M_10_H25_CM', 'text_dim_distance_horizontal': 0.25, 'text_dim_distance_vertical': 0.25, 'text_dim_inner_distance_horizontal': 0.125, 'text_dim_inner_distance_vertical': 0.125}) dict

Draws the concrete section in the longitudinal direction with optional dimensioning.

Parameters:
  • document (Drawing) – The drawing document to which the concrete section will be added.

  • x (float, optional) – X-coordinate for the placement of the concrete section. Defaults to None, in which case self.x is used.

  • y (float, optional) – Y-coordinate for the placement of the concrete section. Defaults to None, in which case self.y is used.

  • dimensions (bool, optional) – Flag to indicate whether to draw dimensions. Defaults to True.

  • dimensions_inner (bool, optional) – Flag to indicate whether to draw inner dimensions. Defaults to True.

  • settings (dict, optional) – Dictionary of settings for dimensioning. Defaults to CONCRETE_SET_LONG.

Returns:

A dictionary with keys “concrete_elements”, “dimensions”, and “all_elements”, each containing the

corresponding drawing elements. :rtype: dict

draw_transverse(document: Drawing, x: float = None, y: float = None, dimensions: bool = True, dimensions_boxing: bool = True, dimensions_inner: bool = False, settings: dict = {'dim_style_boxing': 'EZ_M_10_H25_CM', 'dim_style_inner': 'EZ_M_10_H25_CM', 'text_dim_distance_horizontal': 0.25, 'text_dim_distance_vertical': 0.25, 'text_dim_inner_perpendicular_distance': 0.05}) dict

Draws the concrete section in the transverse direction with optional dimensioning.

Parameters:
  • document (Drawing) – The drawing document to which the concrete section will be added.

  • x (float, optional) – X-coordinate for the placement of the concrete section. Defaults to None, in which case self.x is used.

  • y (float, optional) – Y-coordinate for the placement of the concrete section. Defaults to None, in which case self.y is used.

  • dimensions (bool, optional) – Flag to indicate whether to draw dimensions. Defaults to True.

  • dimensions_boxing (bool, optional) – Flag to indicate whether to draw boxing dimensions. Defaults to True.

  • dimensions_inner (bool, optional) – Flag to indicate whether to draw inner dimensions. Defaults to False.

  • settings (dict, optional) – Dictionary of settings for dimensioning. Defaults to CONCRETE_SET_TRANSVERSE.

Returns:

A dictionary with keys “concrete_elements” and “all_elements”, each containing the corresponding drawing elements.

Return type:

dict

property polygon

Property to get a Polygon object created from the vertices of the concrete section.

Returns:

A Polygon object representing the concrete section.

Return type:

Polygon


class etacad.beam.Beam(width, height, length, x: float = 0, y: float = 0, direction: Direction = Direction.HORIZONTAL, orientation: Orientation = Orientation.RIGHT, number_init: int = None, as_sup: dict = None, anchor_sup: float | list = 0, as_right: dict = None, anchor_right: float | list = 0, as_inf: dict = None, anchor_inf: float | list = 0, as_left: dict = None, anchor_left: float | list = 0, cover=0.025, concrete_specific_weight=2400, stirrups_db: float | list = None, stirrups_sep: float | list = None, stirrups_length: list = None, stirrups_anchor: float | list = None, stirrups_x: list = None, columns: list[list[float, float]] = None, columns_pos: list[float] = None, columns_symbol: list[str] = None, nomenclature: str = '#', denomination: str = None, element_type: ElementTypes = ElementTypes.BEAM)

Beam element, computes geometrics and physics props and manages dxf drawing methods (longitudinal, transversal, reinforcement detailing, etc.)

Parameters:
  • width (float) – Width of the beam.

  • height (float) – Height of the beam.

  • x (float) – X-coordinate of the bottom left corner of the beam concrete shape.

  • y (float) – Y-coordinate of the bottom left corner of the beam concrete shape.

  • direction (Direction) – Direction of the beam (HORIZONTAL or VERTICAL).

  • orientation (Orientation) – Orientation of the beam (TOP, RIGHT, DOWN, LEFT).

  • as_sup (dict) – Dictionary containing reinforcement information for the top side.

  • anchor_sup (float | list) – Anchor length for the top reinforcement or list of lengths.

  • as_right (dict) – Dictionary containing reinforcement information for the right side.

  • anchor_right (float | list) – Anchor length for the right reinforcement or list of lengths.

  • as_inf (dict) – Dictionary containing reinforcement information for the bottom side.

  • anchor_inf (float | list) – Anchor length for the bottom reinforcement or list of lengths.

  • as_left (dict) – Dictionary containing reinforcement information for the left side.

  • anchor_left (float | list) – Anchor length for the left reinforcement or list of lengths.

  • cover (float) – Concrete cover for the reinforcement.

  • concrete_specific_weight – Specific weight of the concrete. Defaults to CONCRETE_WEIGHT.

  • stirrups_db (float | list) – Diameter of stirrups or list of diameters.

  • stirrups_sep (float | list) – Separation between stirrups or list of separations.

  • stirrups_length (list) – List of lengths for stirrups.

  • stirrups_anchor (float | list) – Anchor length of stirrups or list of anchor lengths.

  • stirrups_x (list) – List of x-coordinates for stirrups.

  • columns (list[list[float, float]]) – List of lists containing column width and height.

  • columns_pos (list[float]) – List of positions (X-coordinate of start) for columns.

  • columns_symbol (list[str]) – List of symbols representing columns.

  • nomenclature (str) – Nomenclature prefix used for labeling elements.

  • number_init (int) – Initial number for labeling elements.

  • element_type (ElementTypes) – Type of the structural element (BEAM).

Variables:
  • width – Width of the beam.

  • height – Height of the beam.

  • length – Length of the beam.

  • x – X-coordinate of the bottom left corner of the beam concrete shape.

  • y – Y-coordinate of the bottom left corner of the beam concrete shape.

  • direction – Direction of the element (HORIZONTAL or VERTICAL).

  • orientation – Orientation of the element (e.g., TOP, RIGHT, DOWN, LEFT).

  • as_sup – Dictionary containing reinforcement information for the top side.

  • max_db_sup – Maximum diameter of the top reinforcement bars.

  • anchor_sup – Anchor length for the top reinforcement or list of lengths.

  • number_init_sup – Initial numbering for the top reinforcement bars.

  • as_right – Dictionary containing reinforcement information for the right side.

  • max_db_right – Maximum diameter of the right reinforcement bars.

  • anchor_right – Anchor length for the right reinforcement or list of lengths.

  • number_init_right – Initial numbering for the right reinforcement bars.

  • as_inf – Dictionary containing reinforcement information for the bottom side.

  • max_db_inf – Maximum diameter of the bottom reinforcement bars.

  • anchor_inf – Anchor length for the bottom reinforcement or list of lengths.

  • number_init_inf – Initial numbering for the bottom reinforcement bars.

  • as_left – Dictionary containing reinforcement information for the left side.

  • max_db_left – Maximum diameter of the left reinforcement bars.

  • anchor_left – Anchor length for the left reinforcement or list of lengths.

  • number_init_left – Initial numbering for the left reinforcement bars.

  • cover – Concrete cover for the reinforcement.

  • concrete_specific_weight – Specific weight of the concrete.

  • concrete – Concrete instance class.

  • stirrups_db – Diameter of stirrups or list of diameters.

  • stirrups_sep – Separation between stirrups or list of separations.

  • stirrups_length – List of lengths for stirrups.

  • stirrups_anchor – Anchor length of stirrups or list of anchor lengths.

  • stirrups_x – List of x-coordinates for stirrups.

  • columns – List of lists containing column width and height.

  • columns_pos – List of positions (X-coordinate of start) for columns.

  • columns_symbol – List of symbols representing columns.

  • bars_as_sup – List of top reinforcement bars as entities.

  • bars_as_right – List of right reinforcement bars as entities.

  • bars_as_inf – List of bottom reinforcement bars as entities.

  • bars_as_left – List of left reinforcement bars as entities.

  • all_bars – List of all reinforcement bars as entities.

  • stirrups – List of stirrups as entities.

  • all_elements – List of all elements/entities in the structure.

  • nomenclature – Nomenclature prefix used for labeling elements.

  • number_init – Initial number for labeling elements.

  • element_type – Type of the structural element (e.g., BEAM).

draw_longitudinal(document: Drawing, x: float = None, y: float = None, concrete_shape: bool = True, bars: bool = True, columns: bool = True, columns_axes: bool = True, stirrups: bool = True, middle_axe: bool = True, middle_axe_symbol: str = 'A', dim: bool = True, dim_style: str = 'EZ_M_25_H25_CM', unifilar_bars: bool = False, unifilar_stirrups: bool = True, settings: dict = {'concrete_settings': {'dim_style_boxing': 'EZ_M_25_H25_CM', 'dim_style_inner': 'EZ_M_10_H25_CM', 'text_dim_distance_horizontal': 0.6, 'text_dim_distance_vertical': 0.1}, 'text_dim_height': 0.05, 'text_dim_horizontal_distance': 0.05}) dict

Draws the longitudinal section of the beam.

Parameters:
  • document (Drawing) – The DXF document where the beam will be drawn.

  • x (float, optional) – X-coordinate of the left bottom corner of beam concrete shape.

  • y (float, optional) – Y-coordinate of the left bottom corner of beam concrete shape.

  • concrete_shape (bool) – If True, the concrete shape of the beam is drawn.

  • bars (bool) – If True, the reinforcement bars are drawn.

  • columns (bool) – If True, the columns are drawn.

  • columns_axes (bool) – If True, the axes of the columns are drawn.

  • stirrups (bool) – If True, the stirrups are drawn.

  • middle_axe (bool) – If True, the middle axis of the beam is drawn.

  • middle_axe_symbol (str) – Symbol to represent the middle axis.

  • dim (bool) – If True, dimensions are drawn.

  • dim_style (str) – The dimension style to be used.

  • unifilar_bars (bool) – If True, the reinforcement bars are drawn as unifilar.

  • unifilar_stirrups (bool) – If True, the stirrups are drawn as unifilar.

  • settings (dict) – Dictionary of drawing settings. Default is BEAM_SET_LONG.

Returns:

A list of graphical entities representing the longitudinal section of the beam.

Return type:

list

draw_longitudinal_rebar_detailing(document: Drawing, x: float = None, y: float = None, unifilar: bool = True, columns_axes: bool = True, settings: dict = {'text_height': 0.05}) dict

Draws the longitudinal rebar detailing for the beam.

Parameters:
  • document (Drawing) – The DXF document where the detailing will be drawn.

  • x (float, optional) – X-coordinate of the starting point for drawing.

  • y (float, optional) – Y-coordinate of the starting point for drawing.

  • unifilar (bool) – If True, the rebar is drawn as unifilar.

  • columns_axes (bool) – If True, the axes of the columns are drawn.

  • settings (dict) – Dict with beam longitudinal rebar drawing settings.

Returns:

A list of graphical entities representing the longitudinal rebar detailing.

Return type:

list

draw_transverse(document: Drawing, x: float = None, y: float = None, x_section: float = None, unifilar: bool = False, dimensions: bool = True, settings: dict = {'concrete_settings': {'dim_style_boxing': 'EZ_M_10_H25_CM', 'dim_style_inner': 'EZ_M_10_H25_CM', 'text_dim_distance_horizontal': 0.1, 'text_dim_distance_vertical': 0.1, 'text_dim_inner_perpendicular_distance': 0.05}, 'text_dim_distance': 0.05, 'text_dim_height': 0.05}) dict

Draws the transverse section of the beam at a given x-section.

Parameters:
  • document (Drawing) – The DXF document where the beam will be drawn.

  • x (float) – X-coordinate of the starting point for drawing.

  • y (float) – Y-coordinate of the starting point for drawing.

  • x_section (float, optional) – The x-coordinate of the section to be drawn.

  • unifilar (bool) – If True, the bars are drawn as unifilar.

  • dimensions (bool) – If True, dimensions are drawn.

  • settings (dict) – Dict with beam transverse drawing settings.

Returns:

A dict of graphical entities representing the transverse section of the beam.

Return type:

dict

draw_transverse_rebar_detailing(document: Drawing, x: float = None, y: float = None, x_section: float = None, unifilar: bool = False, dimensions: bool = True) dict

Draws the transverse rebar detailing for the beam at a given x-section.

Parameters:
  • document (Drawing) – The DXF document where the detailing will be drawn.

  • x (float, optional) – X-coordinate of the starting point for drawing.

  • y (float, optional) – Y-coordinate of the starting point for drawing.

  • x_section (float, optional) – The x-coordinate of the section to be drawn.

  • unifilar (bool) – If True, the rebar is drawn as unifilar.

  • dimensions (bool) – If True, dimensions are drawn.

Returns:

A dict of graphical entities representing the transverse rebar detailing.

Return type:

dict


class etacad.column.Column(width, depth, height, diameter: float = None, column_type: int = ColumnTypes.RECTANGULAR, x=0, y=0, direction: Direction = Direction.VERTICAL, orientation: Orientation = Orientation.RIGHT, as_sup: dict = None, as_right: dict = None, as_inf: dict = None, as_left: dict = None, anchor_sup: list | float = 0, anchor_right: list | float = 0, anchor_inf: list | float = 0, anchor_left: list | float = 0, cover=0, concrete_specific_weight: float = 2400, stirrups_db: list | float = None, stirrups_anchor: list | float = None, stirrups_sep: list | float = None, stirrups_length: list | float = None, stirrups_x: list | float = None, beams: list | float = None, beams_pos: list | float = None, beams_symbol: list | float = None, nomenclature: str = '#', denomination: str = None, number_init: int = None, element_type: ElementTypes = ElementTypes.COLUMN)

Column element, computes geometrics and physics props and manages dxf drawing methods (longitudinal, transversal, reinforcement detailing, etc.)

Parameters:
  • width (float) – Width of the column (rectangular section) in units of length.

  • depth (float) – Depth of the column (rectangular section) in units of length.

  • height (float) – Height of the column in units of length.

  • diameter (float, optional) – Diameter of the column if circular (optional), defaults to None.

  • column_type (int) – Type of column section (rectangular or circular), defaults to RECTANGULAR.

  • x (float) – X-coordinate of the column’s position, defaults to 0.

  • y (float) – Y-coordinate of the column’s position, defaults to 0.

  • direction (Direction) – Orientation of the column (VERTICAL or HORIZONTAL), defaults to VERTICAL.

  • orientation (Orientation) – Column’s orientation (RIGHT, LEFT, etc.), defaults to RIGHT.

  • as_sup (dict, optional) – Dictionary representing the longitudinal steel in the upper part of the column.

  • as_right (dict, optional) – Dictionary representing the longitudinal steel in the right side of the column.

  • as_inf (dict, optional) – Dictionary representing the longitudinal steel in the lower part of the column.

  • as_left (dict, optional) – Dictionary representing the longitudinal steel in the left side of the column.

  • anchor_sup (list, optional) – List of anchorage values for the upper part of the column.

  • anchor_right (list, optional) – List of anchorage values for the right side of the column.

  • anchor_inf (list, optional) – List of anchorage values for the lower part of the column.

  • anchor_left (list, optional) – List of anchorage values for the left side of the column.

  • cover (float, optional) – Concrete cover of the column in units of length.

  • concrete_specific_weight (float) – Specific weight of the concrete used in the column.

  • stirrups_db (list, optional) – List of diameters of the stirrups used in the column.

  • stirrups_anchor (list, optional) – List of anchorage values for the stirrups.

  • stirrups_sep (list, optional) – List of spacing values between stirrups.

  • stirrups_length (list, optional) – List of lengths of stirrups.

  • stirrups_x (list, optional) – List of x-coordinates for stirrups placement.

  • beams (list, optional) – List of crossing beams interacting with the column.

  • beams_pos (list, optional) – List of positions for the crossing beams.

  • beams_symbol (list, optional) – List of symbols used to represent crossing beams.

  • nomenclature (str, optional) – Column identification string or nomenclature.

Variables:
  • as_sup (dict) – Dictionary containing the top longitudinal reinforcement details.

  • as_right (dict) – Dictionary containing the right longitudinal reinforcement details.

  • as_inf (dict) – Dictionary containing the bottom longitudinal reinforcement details.

  • as_left (dict) – Dictionary containing the left longitudinal reinforcement details.

  • max_db_sup (float) – Maximum diameter of the top longitudinal bars.

  • max_db_right (float) – Maximum diameter of the right longitudinal bars.

  • max_db_inf (float) – Maximum diameter of the bottom longitudinal bars.

  • max_db_left (float) – Maximum diameter of the left longitudinal bars.

  • max_db_hz (float) – Maximum horizontal diameter among the longitudinal bars.

  • max_db_vt (float) – Maximum vertical diameter among the longitudinal bars.

  • anchor_sup (list) – List of top bar anchorage lengths.

  • anchor_right (list) – List of right bar anchorage lengths.

  • anchor_inf (list) – List of bottom bar anchorage lengths.

  • anchor_left (list) – List of left bar anchorage lengths.

  • bars_as_sup (list) – List of bars in the top longitudinal reinforcement.

  • bars_as_right (list) – List of bars in the right longitudinal reinforcement.

  • bars_as_inf (list) – List of bars in the bottom longitudinal reinforcement.

  • bars_as_left (list) – List of bars in the left longitudinal reinforcement.

  • number_init_sup (int) – Initial number for top longitudinal bars.

  • number_init_right (int) – Initial number for right longitudinal bars.

  • number_init_inf (int) – Initial number for bottom longitudinal bars.

  • number_init_left (int) – Initial number for left longitudinal bars.

  • cover (float) – Concrete cover thickness.

  • stirrups_db (list) – List of stirrup diameters.

  • stirrups_anchor (list) – List of stirrup anchorage lengths.

  • stirrups_sep (list) – List of stirrup separations.

  • stirrups_length (list) – List of stirrup lengths.

  • stirrups_x (list) – List of stirrup X-coordinates.

  • stirrups (list) – List of stirrup elements.

  • beams (list) – List of crossing beams.

  • beams_pos (list) – List of crossing beams’ positions.

  • beams_symbol – List of crossing beams’ symbols.

  • all_bars (list) – List of all bars in the column.

  • all_elements (list) – List of all elements in the column.

  • box_width (float) – Width of the bounding box for the column.

  • box_height (float) – Height of the bounding box for the column.

  • nomenclature (str) – Nomenclature for the column reinforcement.

  • element_type (int) – Type of element, set to COLUMN by default.

draw_longitudinal(document: Drawing, x: float = None, y: float = None, concrete_shape: bool = True, bars: bool = True, beams: bool = True, beams_axes: bool = True, stirrups: bool = True, middle_axe: bool = True, middle_axe_symbol: str = 'A', dim: bool = True, dim_style: str = 'EZ_M_25_H25_CM', unifilar_bars: bool = False, unifilar_stirrups: bool = True) dict

Draws the longitudinal view of the column, including concrete shape, beams, stirrups, and bars. Also includes dimensioning and optional middle axes.

Parameters:
  • document (Drawing) – The drawing document to which the elements will be added.

  • x (float, optional) – X-coordinate for the drawing position. Defaults to column’s x position.

  • y (float, optional) – Y-coordinate for the drawing position. Defaults to column’s y position.

  • concrete_shape (bool) – Whether to draw the concrete shape. Defaults to True.

  • bars (bool) – Whether to draw the longitudinal bars. Defaults to True.

  • beams (bool) – Whether to draw crossing beams. Defaults to True.

  • beams_axes (bool) – Whether to draw the axes for beams. Defaults to True.

  • stirrups (bool) – Whether to draw the stirrups. Defaults to True.

  • middle_axe (bool) – Whether to draw the middle axis. Defaults to True.

  • middle_axe_symbol (str) – Symbol to use for the middle axis. Defaults to “A”.

  • dim (bool) – Whether to add dimensions to the drawing. Defaults to True.

  • dim_style (str) – Style of the dimensions. Defaults to “EZ_M_25_H25_CM”.

  • unifilar_bars (bool) – Whether to draw bars in unifilar view. Defaults to False.

  • unifilar_stirrups (bool) – Whether to draw stirrups in unifilar view. Defaults to True.

Returns:

A dict of entities drawn on the document.

Return type:

dict

draw_longitudinal_rebar_detailing(document: Drawing, x: float = None, y: float = None, unifilar: bool = True, beam_axes: bool = True, settings: dict = {'bar_settings': {'text_denomination_distance': 0.05, 'text_denomination_height': 0.05, 'text_dim_distance_horizontal': 0.05, 'text_dim_distance_vertical': 0.05, 'text_dim_height': 0.05}, 'spacing': 0.3, 'text_height': 0.05}) dict

Draws the longitudinal rebar detailing for the column.

Parameters:
  • document (Drawing) – The DXF document where the detailing will be drawn.

  • x (float, optional) – X-coordinate of the starting point for drawing.

  • y (float, optional) – Y-coordinate of the starting point for drawing.

  • unifilar (bool) – If True, the rebar is drawn as unifilar.

  • beam_axes (bool) – If True, the axes of the beam are drawn.

  • settings (dict) – Dict with column longitudinal rebar drawing settings.

Returns:

A dict of graphical entities representing the longitudinal rebar detailing.

Return type:

dict

draw_transverse(document: Drawing, x: float = None, y: float = None, y_section: float = None, unifilar: bool = False, dimensions: bool = True, settings: dict = {'concrete_settings': {'dim_style_boxing': 'EZ_M_10_H25_CM', 'dim_style_inner': 'EZ_M_10_H25_CM', 'text_dim_distance_horizontal': 0.05, 'text_dim_distance_vertical': 0.05}, 'text_dim_height': 0.05}) dict

Draws the transverse view of the column at a given y-section. generate a drawing from the transverse perspective.

Parameters:
  • document (Drawing) – The DXF document where the column will be drawn.

  • x (float) – X-coordinate of the starting point for drawing.

  • y (float) – Y-coordinate of the starting point for drawing.

  • y_section (float, optional) – The y-coordinate of the section to be drawn.

  • unifilar (bool) – If True, the bars are drawn as unifilar.

  • dimensions (bool) – If True, dimensions are drawn.

  • settings (dict) – Dict with column transverse drawing settings.

Returns:

A dict of entities representing the transverse view of the column.

Return type:

dict

draw_transverse_rebar_detailing(document: Drawing, x: float = None, y: float = None, y_section: float = None, unifilar: bool = False, dimensions: bool = True, settings: dict = {'bar_settings': {'text_denomination_distance': 0.05, 'text_denomination_height': 0.05, 'text_dim_distance_horizontal': 0.05, 'text_dim_distance_vertical': 0.05, 'text_dim_height': 0.05}, 'spacing': 0.3, 'text_height': 0.05}) dict

Draws the transverse rebar detailing for the column at a given y-section.

Parameters:
  • document (Drawing) – The DXF document where the detailing will be drawn.

  • x (float, optional) – X-coordinate of the starting point for drawing.

  • y (float, optional) – Y-coordinate of the starting point for drawing.

  • y_section (float, optional) – The y-coordinate of the section to be drawn.

  • unifilar (bool) – If True, the rebar is drawn as unifilar.

  • dimensions (bool) – If True, dimensions are drawn.

  • settings (dict) – Dict with column longitudinal rebar drawing settings.

Returns:

A dict of graphical entities representing the transverse rebar detailing.

Return type:

dict


class etacad.slab.Slab(length_x, length_y, thickness, x=0, y=0, direction: Direction = Direction.HORIZONTAL, orientation: Orientation = Orientation.BOTTOM, as_sup_x_db: list | float = None, as_sup_y_db: list | float = None, as_inf_x_db: list | float = None, as_inf_y_db: list | float = None, as_sup_x_sp: list | float = None, as_sup_y_sp: list | float = None, as_inf_x_sp: list | float = None, as_inf_y_sp: list | float = None, as_sup_x_anchor: list | float = None, as_sup_y_anchor: list | float = None, as_inf_x_anchor: list | float = None, as_inf_y_anchor: list | float = None, as_sup_x_bend_longitud: list | float = None, as_sup_y_bend_longitud: list | float = None, as_sup_x_bend_angle: list | float = None, as_sup_y_bend_angle: list | float = None, cover=0, concrete_specific_weight: float = 2400, nomenclature: str = '#', number_init: int = None, description: str = None, element_type: ElementTypes = ElementTypes.SLAB)

Slab element, computes geometrics and physics props and manages dxf drawing methods (longitudinal, transversal, reinforcement detailing, etc.)

Parameters:
  • length_x (float) – Slab length along the X axis.

  • length_y (float) – Slab length along the Y axis.

  • thickness (float) – Slab thickness.

  • x (float) – X-coordinate of the bottom left corner of the slab concrete shape.

  • y (float) – Y-coordinate of the bottom left corner of the slab concrete shape.

  • direction (Direction) – Direction of the slab (HORIZONTAL or VERTICAL).

  • orientation (Orientation) – Slab orientation (TOP, RIGHT, DOWN, LEFT).

  • as_sup_x_db (list | float) – Superior X-direction rebar diameter.

  • as_sup_y_db (list | float) – Superior Y-direction rebar diameter.

  • as_inf_x_db (list | float) – Inferior X-direction rebar diameter.

  • as_inf_y_db (list | float) – Inferior Y-direction rebar diameter.

  • as_sup_x_sp (list | float) – Superior X-direction rebar spacing.

  • as_sup_y_sp (list | float) – Superior Y-direction rebar spacing.

  • as_inf_x_sp (list | float) – Inferior X-direction rebar spacing.

  • as_inf_y_sp (list | float) – Inferior Y-direction rebar spacing.

  • as_sup_x_anchor (list | float) – Superior X-direction rebar anchor lengths.

  • as_sup_y_anchor (list | float) – Superior Y-direction rebar anchor lengths.

  • as_inf_x_anchor (list | float) – Inferior X-direction reabar anchor lengths.

  • as_inf_y_anchor (list | float) – Inferior Y-direction rebar anchor lengths.

  • as_sup_x_bend_longitud (list | float) – Bend lengths of superior X bars.

  • as_sup_y_bend_longitud (list | float) – Bend lengths of superior Y bars.

  • as_sup_x_bend_angle (list | float) – Bend angles of superior X bars.

  • as_sup_y_bend_angle (list | float) – Bend angles of superior Y bars.

  • as_sup_x_bend_height (list | float) – Bend heights of superior X bars.

  • as_sup_y_bend_height (list | float) – Bend heights of superior Y bars.

  • cover (float) – Concrete cover for reinforcement.

  • nomenclature (str) – Prefix used in bar position identifiers.

  • number_init (int | None) – Initial number used for bar position numbering.

  • description (str | None) – Optional description of the slab element.

  • element_type (ElementTypes) – Type of the structural element (SLAB).

Variables:
  • length_x (float) – Slab length along the X axis.

  • length_y (float) – Slab length along the Y axis.

  • thickness (float) – Slab thickness.

  • x (float) – X-coordinate of the bottom left corner of the slab concrete shape.

  • y (float) – Y-coordinate of the bottom left corner of the slab concrete shape.

  • direction (Direction) – Direction of the slab (HORIZONTAL or VERTICAL).

  • orientation (Orientation) – Slab orientation (TOP, RIGHT, DOWN, LEFT).

  • as_sup_x_db (list | float) – Superior X-direction rebar diameter.

  • as_sup_y_db (list | float) – Superior Y-direction rebar diameter.

  • as_inf_x_db (list | float) – Inferior X-direction rebar diameter.

  • as_inf_y_db (list | float) – Inferior Y-direction rebar diameter.

  • as_sup_x_sp (list | float) – Superior X-direction rebar spacing.

  • as_sup_y_sp (list | float) – Superior Y-direction rebar spacing.

  • as_inf_x_sp (list | float) – Inferior X-direction rebar spacing.

  • as_inf_y_sp (list | float) – Inferior Y-direction rebar spacing.

  • as_sup_x_anchor (list | float) – Superior X-direction rebar anchor lengths.

  • as_sup_y_anchor (list | float) – Superior Y-direction rebar anchor lengths.

  • as_inf_x_anchor (list | float) – Inferior X-direction reabar anchor lengths.

  • as_inf_y_anchor (list | float) – Inferior Y-direction rebar anchor lengths.

  • as_sup_x_bend_longitud (list | float) – Bend lengths of superior X bars.

  • as_sup_y_bend_longitud (list | float) – Bend lengths of superior Y bars.

  • as_sup_x_bend_angle (list | float) – Bend angles of superior X bars.

  • as_sup_y_bend_angle (list | float) – Bend angles of superior Y bars.

  • as_sup_x_bend_height (list | float) – Bend heights of superior X bars.

  • as_sup_y_bend_height (list | float) – Bend heights of superior Y bars.

  • cover (float) – Concrete cover for reinforcement.

  • bars_as_sup_x (list[SpacedBars]) – List of generated superior X-direction bars.

  • bars_as_sup_y (list[SpacedBars]) – List of generated superior Y-direction bars.

  • bars_as_inf_x (list[SpacedBars]) – List of generated inferior X-direction bars.

  • bars_as_inf_y (list[SpacedBars]) – List of generated inferior Y-direction bars.

  • nomenclature (str) – Prefix used in spaced bar position identifiers.

  • number_init (int | None) – Initial number used for spaced bar position numbering.

  • description (str | None) – Optional description of the slab element.

  • element_type (ElementTypes) – Type of the structural element (SLAB).

  • concrete (Concrete) – Concrete element representing the slab volume.

  • all_bars (list[SpacedBars]) – All reinforcement bars of the slab.

  • all_elements (list) – All drawable elements (bars, annotations).

  • positions (dict) – Dictionary of bar positions used in labeling.

  • max_db_sup_x (float) – Maximum diameter in superior X bars.

  • max_db_sup_y (float) – Maximum diameter in superior Y bars.

  • max_db_inf_x (float) – Maximum diameter in inferior X bars.

  • max_db_inf_y (float) – Maximum diameter in inferior Y bars.

  • max_db_hz (float) – Maximum horizontal bar diameter.

  • number_init_sup_x (int) – Initial bar ID number for superior X bars.

  • number_init_sup_y (int) – Initial bar ID number for superior Y bars.

  • number_init_inf_x (int) – Initial bar ID number for inferior X bars.

  • number_init_inf_y (int) – Initial bar ID number for inferior Y bars.

property box_height: float

Bounding box height (equal to length_y).

property box_width: float

Bounding box width (equal to length_x).

draw_longitudinal(document: Drawing, x: float = None, y: float = None, concrete_shape: bool = True, bars: bool = True, bars_sup: bool = True, bars_inf: bool = True, one_bar: bool = False, one_bar_position_sup: int = 4, one_bar_position_inf: int = 6, dimensions: bool = True, description: bool = True, unifilar_bars: bool = False) dict

Draws the longitudinal view of the slab, including the concrete section and reinforcement bars.

The method adds the concrete outline and/or longitudinal bars (superior and/or inferior) to the specified ezdxf drawing, with customizable display options. It returns a dictionary with categorized drawing elements.

Parameters:
  • document (Drawing) – The ezdxf Drawing object where the elements will be rendered.

  • x (float, optional) – X-coordinate of the left bottom corner of slab concrete shape. Defaults to slab’s own X.

  • y (float, optional) – Y-coordinate of the left bottom corner of slab concrete shape. Defaults to slab’s own Y.

  • concrete_shape (bool) – Whether to draw the concrete outline of the slab.

  • bars (bool) – Whether to draw reinforcement bars.

  • bars_sup (bool) – Whether to draw superior reinforcement bars.

  • bars_inf (bool) – Whether to draw inferior reinforcement bars.

  • one_bar (bool) – Whether to draw a single selected bar instead of the full set.

  • one_bar_position_sup (int, optional) – Position index for the superior bar to draw when one_bar is True.

  • one_bar_position_inf (int, optional) – Position index for the inferior bar to draw when one_bar is True.

  • dimensions (bool) – Whether to draw dimensions.

  • description (bool) – Whether to include denomination/description for each bar.

  • unifilar_bars (bool) – If True, draws bars in unifilar (symbolic) representation.

Returns:

Dictionary containing grouped drawing elements: - “concrete_elements”: list of DXF elements related to the concrete section - “spaced_bars_elements”: list of DXF elements related to spaced bars - “all_elements”: flat list combining all drawable elements

Return type:

dict

draw_longitudinal_rebar_detailing(document: Drawing, x: float = None, y: float = None, unifilar: bool = False, settings: dict = {'bar_settings': {'text_denomination_distance': 0.05, 'text_denomination_height': 0.05, 'text_dim_distance_horizontal': 0.05, 'text_dim_distance_vertical': 0.05, 'text_dim_height': 0.05}, 'spacing': 0.3, 'text_distance_vertical': 0.15, 'text_height': 0.05}) dict

Draws a detailed longitudinal reinforcement schedule for the slab.

This method creates a vertical list of labeled reinforcement bars for both top (superior) and bottom (inferior) layers in the X and Y directions. Each group of bars is preceded by a label, and bars are spaced according to the settings provided. Bars are drawn symbolically or in full detail based on the unifilar flag.

Parameters:
  • document (Drawing) – The ezdxf Drawing object where the detailing will be placed.

  • x (float, optional) – X-coordinate of the top-left corner of the detailing layout. Defaults to the slab’s own x.

  • y (float, optional) – Y-coordinate of the top-left corner of the detailing layout. Defaults to the slab’s own y.

  • unifilar (bool) – If True, draws symbolic (unifilar) representations of the bars; otherwise, detailed.

  • settings (dict) – Dictionary containing configuration for text height, spacing, and bar styling.

Returns:

Dictionary containing grouped DXF elements: - “text_elements”: DXF elements related to text labels. - “bars_elements”: List of DXF elements for all reinforcement bars. - “all_elements”: Flat list combining all the elements above for easier access.

Return type:

dict

draw_table_rebar_detailing(document: Drawing, x: float = None, y: float = None) dict

Draws a reinforcement detailing table for the slab.

This method generates a tabular summary of the reinforcement bars used in the slab, including information such as position, diameter, spacing, quantity, individual length, total length, and weight. The table is created from internal slab data and inserted into the provided DXF document at the specified coordinates.

Parameters:
  • document (Drawing) – The ezdxf Drawing object where the table will be drawn.

  • x (float, optional) – X-coordinate of the bottom-left corner of the table. If not specified, defaults to the slab’s own x.

  • y (float, optional) – Y-coordinate of the bottom-left corner of the table. If not specified, defaults to the slab’s own y.

Returns:

Dictionary containing the generated DXF elements of the table.

Return type:

dict

draw_transverse(document: Drawing, x: float = None, y: float = None, axe_section: str = 'x', concrete_shape: bool = True, bars: bool = True, dimensions: bool = True, descriptions: bool = True, description_start_sup: int = 6, description_start_inf: int = 8, unifilar: bool = False, settings: dict = {'concrete_settings': {'dim_style_boxing': 'EZ_M_25_H25_CM', 'dim_style_inner': 'EZ_M_10_H25_CM', 'text_dim_distance_horizontal': 0.05, 'text_dim_distance_vertical': 0.05}, 'description_start_coefficient': 6, 'spaced_bars_settings': {'dim_style': 'EZ_M_25_H25_CM', 'text_denomination_distance': 0.0, 'text_denomination_height': 0.05, 'text_description_distance_horizontal': 0.4, 'text_description_distance_vertical': 0.2, 'text_description_height': 0.05, 'text_dim_distance_horizontal': 0.05, 'text_dim_distance_vertical': 0.05, 'text_dim_height': 0.05}, 'text_dim_height': 0.05}) dict

Draws the transverse section of the slab, including the concrete shape and reinforcement bars.

This method generates the DXF elements representing a cross-sectional view of the slab along the selected axis (‘x’ or ‘y’). It includes both transverse and longitudinal reinforcement bars, as well as optional dimensions and descriptions. It handles symbolic (unifilar) or detailed representation.

Parameters:
  • document (Drawing) – The ezdxf Drawing object where the transverse view will be drawn.

  • x (float, optional) – X-coordinate of the left bottom corner of slab concrete shape. Defaults to slab’s own X.

  • y (float, optional) – Y-coordinate of the left bottom corner of slab concrete shape. Defaults to slab’s own Y.

  • axe_section (str) – Section axis (“x” for right view or “y” for front view).

  • concrete_shape (bool) – Whether to draw the concrete shape of the slab section.

  • bars (bool) – Whether to draw reinforcement bars.

  • dimensions (bool) – Whether to draw dimension lines.

  • descriptions (bool) – Whether to show bar descriptions.

  • description_start_sup (int) – Initial number to use for upper transverse bar labels.

  • description_start_inf (int) – Initial number to use for lower transverse bar labels.

  • unifilar (bool) – If True, draws symbolic (unifilar) bars; if False, uses detailed geometry.

  • settings (dict) – Dictionary of drawing settings for concrete and reinforcement bars.

Returns:

Dictionary containing grouped DXF elements: - “concrete”: DXF elements related to the concrete shape. - “spaced_bars_elements”: List of DXF elements for all reinforcement bars. - “all_elements”: Flat list combining all the elements above for easier access.

Return type:

dict

extract_data() list

Extracts and formats reinforcement bar data for tabular representation.

This method iterates over all reinforcement bars associated with the slab and gathers relevant properties such as position, diameter, spacing, quantity, length, total length, and weight. Numeric values like length, total length, and weight are formatted to two decimal places, while spacing is represented as a string.

Returns:

A list of lists, where each inner list represents one row of bar data with the following fields: [POSITION, DIAMETER, SPACING, QUANTITY, LENGTH, TOTAL LENGTH, WEIGHT]

Return type:

list