Skip to content

structural_class

codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover._base_classes.structural_class

Generic module for the concrete structural class according to EN 1992-1-1 Concrete - General.

Classes:

codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover._base_classes.structural_class.AbstractConcreteStructuralClassCalculator

AbstractConcreteStructuralClassCalculator(
    exposure_classes: ExposureClassesBase,
    design_working_life: YEARS,
    concrete_material: ConcreteMaterial,
    plate_geometry: bool,
    quality_control: bool,
)

Bases: ABC

(Abstract class for) Structural class calculator of the concrete element.

This abstract class is in accordance with: EN 1992-1-1 Concrete - General

This abstract class should be implemented in for each specific release of the Eurocode.

Initializer of the AbstractConcreteStructuralClassCalculator class.

The concrete implementation of this class will be used to calculate the structural class.

Parameters:

  • exposure_classes (ExposureClassesBase) –

    The exposure classes of the concrete element

  • design_working_life (YEARS) –

    The design working life of the concrete element

  • concrete_material (ConcreteMaterial) –

    The concrete material of the concrete element

  • plate_geometry (bool) –

    True if the concrete element has a plate geometry, False otherwise

  • quality_control (bool) –

    True if the quality control of the concrete element is ensured, False otherwise

Source code in blueprints/codes/eurocode/en_1992_1_1_2004/chapter_4_durability_and_cover/_base_classes/structural_class.py
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
def __init__(
    self,
    exposure_classes: ExposureClasses,
    design_working_life: YEARS,
    concrete_material: ConcreteMaterial,
    plate_geometry: bool,
    quality_control: bool,
) -> None:
    """Initializer of the AbstractConcreteStructuralClassCalculator class.

    The concrete implementation of this class will be used to calculate the structural class.

    Parameters
    ----------
    exposure_classes : ExposureClasses
        The exposure classes of the concrete element
    design_working_life : YEARS
        The design working life of the concrete element
    concrete_material : ConcreteMaterial
        The concrete material of the concrete element
    plate_geometry : bool
        True if the concrete element has a plate geometry, False otherwise
    quality_control : bool
        True if the quality control of the concrete element is ensured, False otherwise
    """
    self.exposure_classes = exposure_classes
    self.design_working_life = design_working_life
    self.concrete_material = concrete_material
    self.plate_geometry = plate_geometry
    self.quality_control = quality_control
    self._calculated = False
    self._structural_class = self.DEFAULT_STRUCTURAL_CLASS
    self._explanation = self.DEFAULT_EXPLANATION

codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover._base_classes.structural_class.AbstractConcreteStructuralClassCalculator.explanation property

explanation: str

Property which returns the structural class explanation.

codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover._base_classes.structural_class.AbstractConcreteStructuralClassCalculator.source_document abstractmethod property

source_document: str

Property for the source document.

For example, "EN 1992-1-1:2004" Try to use the official and complete name of the document including publishing year, if possible.

Returns:

  • str

    The reference to the document where the structural class calculation method originates. This is an abstract method and must be implemented in all subclasses.

codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover._base_classes.structural_class.AbstractConcreteStructuralClassCalculator.structural_class property

structural_class: int

Property which returns the structural class.

Returns:

  • int

    the structural class

codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover._base_classes.structural_class.AbstractConcreteStructuralClassCalculator.calculate_structural_class

calculate_structural_class() -> None

Method to execute the calculation of the structural class.

Source code in blueprints/codes/eurocode/en_1992_1_1_2004/chapter_4_durability_and_cover/_base_classes/structural_class.py
224
225
226
227
228
229
230
231
232
233
def calculate_structural_class(
    self,
) -> None:
    """Method to execute the calculation of the structural class."""
    if not self._calculated:
        self._structural_class_delta_design_working_life()
        self._structural_class_delta_concrete_grade()
        self._structural_class_delta_plate_geometry()
        self._structural_class_delta_quality_control()
        self._calculated = True

codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover._base_classes.structural_class.AbstractConcreteStructuralClassCalculator.update_structural_class

update_structural_class(delta: int, explanation: str) -> None

Method to update the structural class with the given delta and explanation.

Parameters:

  • delta (int) –

    The delta to be added to the structural class

  • explanation (str) –

    The explanation of the structural class calculation

Raises:

  • TypeError

    If the delta is not an integer

Source code in blueprints/codes/eurocode/en_1992_1_1_2004/chapter_4_durability_and_cover/_base_classes/structural_class.py
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
def update_structural_class(self, delta: int, explanation: str) -> None:
    """Method to update the structural class with the given delta and explanation.

    Parameters
    ----------
    delta: int
        The delta to be added to the structural class
    explanation: str
        The explanation of the structural class calculation

    Raises
    ------
    TypeError
        If the delta is not an integer
    """
    if not isinstance(delta, int):
        raise TypeError(f"unsupported delta type(s) for the update operation: '{type(delta)}'")
    unit_suffix = "classes" if abs(delta) > 1 else "class"
    operator_symbol = "+" if delta >= 0 else "-"
    self._structural_class += delta
    self._explanation = f"{self._explanation} {operator_symbol} {abs(delta)} {unit_suffix} ({explanation})"

codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover._base_classes.structural_class.ConcreteStructuralClassBase

Bases: int

Base class for the Structural class of the concrete element.

This Class can be used to keep track of the operations of the structural class of the concrete element.

In accordance with: EN 1992-1-1 Concrete - General

codes.eurocode.en_1992_1_1_2004.chapter_4_durability_and_cover._base_classes.structural_class.ConcreteStructuralClassBase.explanation property writable

explanation: str

Property which returns the structural class explanation.

Returns:

  • str

    The explanation of the structural class