Skip to content

i_profile

structural_sections.steel.profile_definitions.i_profile

I-Profile.

Classes:

  • IProfile

    Representation of I shaped profiles.

structural_sections.steel.profile_definitions.i_profile.IProfile dataclass

IProfile(
    *,
    top_flange_width: MM,
    top_flange_thickness: MM,
    bottom_flange_width: MM,
    bottom_flange_thickness: MM,
    total_height: MM,
    web_thickness: MM,
    top_radius: MM,
    bottom_radius: MM,
    name: str = "I-Profile",
    plotter: Callable[[Profile], Figure] = plot_shapes,
)

Bases: Profile

Representation of I shaped profiles.

For standard profiles, use the specific standard profile class like HEA, HEB, HEM or IPE. For example,

hea_profile = HEA.HEA200

Attributes:

  • top_flange_width (MM) –

    The width of the top flange [mm].

  • top_flange_thickness (MM) –

    The thickness of the top flange [mm].

  • bottom_flange_width (MM) –

    The width of the bottom flange [mm].

  • bottom_flange_thickness (MM) –

    The thickness of the bottom flange [mm].

  • total_height (MM) –

    The total height of the profile [mm].

  • web_thickness (MM) –

    The thickness of the web [mm].

  • top_radius (MM) –

    The radius of the curved corners of the top flange.

  • bottom_radius (MM) –

    The radius of the curved corners of the bottom flange.

  • name (str) –

    The name of the profile. Default is "I-Profile". If corrosion is applied, the name will include the corrosion value.

  • plotter (Callable[[Profile], Figure]) –

    The plotter function to visualize the profile (default: plot_shapes).

structural_sections.steel.profile_definitions.i_profile.IProfile.bottom_flange_thickness instance-attribute

bottom_flange_thickness: MM

The thickness of the bottom flange [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.bottom_flange_width instance-attribute

bottom_flange_width: MM

The width of the bottom flange [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.bottom_radius instance-attribute

bottom_radius: MM

The radius of the curved corners of the bottom flange [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.max_thickness property

max_thickness: MM

Maximum element thickness of the profile [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.name class-attribute instance-attribute

name: str = 'I-Profile'

The name of the profile. Default is "I-Profile". If corrosion is applied, the name will include the corrosion value.

structural_sections.steel.profile_definitions.i_profile.IProfile.plotter class-attribute instance-attribute

plotter: Callable[[Profile], Figure] = plot_shapes

The plotter function to visualize the profile (default: plot_shapes).

structural_sections.steel.profile_definitions.i_profile.IProfile.top_flange_thickness instance-attribute

top_flange_thickness: MM

The thickness of the top flange [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.top_flange_width instance-attribute

top_flange_width: MM

The width of the top flange [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.top_radius instance-attribute

top_radius: MM

The radius of the curved corners of the top flange [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.total_height instance-attribute

total_height: MM

The total height of the profile [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.web_height class-attribute instance-attribute

web_height: MM = field(init=False)

The height of the web [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.web_thickness instance-attribute

web_thickness: MM

The thickness of the web [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.width_outstand_bottom_flange class-attribute instance-attribute

width_outstand_bottom_flange: MM = field(init=False)

The width of the outstand of the bottom flange [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.width_outstand_top_flange class-attribute instance-attribute

width_outstand_top_flange: MM = field(init=False)

The width of the outstand of the top flange [mm].

structural_sections.steel.profile_definitions.i_profile.IProfile.with_corrosion

with_corrosion(corrosion: MM = 0) -> IProfile

Apply corrosion to the I-profile and return a new I-profile instance.

The name attribute of the new instance will be updated to reflect the total corrosion applied including any previous corrosion indicated in the original name.

Parameters:

  • corrosion (MM, default: 0 ) –

    Corrosion per side (default is 0).

Returns:

  • IProfile

    A new I-profile instance with the applied corrosion.

Raises:

  • ValueError

    If the profile has fully corroded.

Source code in blueprints/structural_sections/steel/profile_definitions/i_profile.py
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
def with_corrosion(self, corrosion: MM = 0) -> IProfile:
    """Apply corrosion to the I-profile and return a new I-profile instance.

    The name attribute of the new instance will be updated to reflect the total corrosion applied
    including any previous corrosion indicated in the original name.

    Parameters
    ----------
    corrosion : MM, optional
        Corrosion per side (default is 0).

    Returns
    -------
    IProfile
        A new I-profile instance with the applied corrosion.

    Raises
    ------
    ValueError
        If the profile has fully corroded.
    """
    raise_if_negative(corrosion=corrosion)

    if corrosion == 0:
        return self

    top_flange_width = self.top_flange_width - corrosion * 2
    top_flange_thickness = self.top_flange_thickness - corrosion * 2
    bottom_flange_width = self.bottom_flange_width - corrosion * 2
    bottom_flange_thickness = self.bottom_flange_thickness - corrosion * 2
    total_height = self.total_height - corrosion * 2
    web_thickness = self.web_thickness - corrosion * 2
    top_radius = self.top_radius + corrosion
    bottom_radius = self.bottom_radius + corrosion

    if any(
        thickness < FULL_CORROSION_TOLERANCE
        for thickness in (
            top_flange_thickness,
            bottom_flange_thickness,
            web_thickness,
        )
    ):
        raise ValueError("The profile has fully corroded.")

    name = update_name_with_corrosion(self.name, corrosion=corrosion)

    return IProfile(
        top_flange_width=top_flange_width,
        top_flange_thickness=top_flange_thickness,
        bottom_flange_width=bottom_flange_width,
        bottom_flange_thickness=bottom_flange_thickness,
        total_height=total_height,
        web_thickness=web_thickness,
        top_radius=top_radius,
        bottom_radius=bottom_radius,
        name=name,
        plotter=self.plotter,
    )