Skip to main content
Version: 12.11.0

viktor.external.idea

IdeaRcsAnalysis

class viktor.external.idea_rcs.idea_rcs.IdeaRcsAnalysis(input_file, *, return_result_xml=None, return_rcs_file=None)

Bases: viktor.external.external_program.ExternalProgram

Can be used to perform an analysis using IDEA StatiCa RCS on a third-party worker. To start an analysis call the method execute(), with an appropriate timeout (in seconds). To retrieve the results call the method get_output_file(), after execute().

Note: the input for the BytesIO object should be of type bytes. You can convert a string to bytes by calling the method encode(). Default encoding is ‘utf-8’.

Usage:

idea_rcs_file = BytesIO("idea rcs input file content".encode('utf-8'))
idea_rcs_analysis = IdeaRcsAnalysis(input_file=idea_rcs_file)
idea_rcs_analysis.execute(timeout=10)
result = idea_rcs_analysis.get_output_file()

Exceptions which can be raised during calculation:

Parameters
  • input_file (BytesIO) – BytesIO object with the body of the IDEA (Open)Model input XML file.

  • return_result_xml (Optional[bool]) – Result .xml file will be available if set to True (default: True).

  • return_rcs_file (Optional[bool]) – Input .ideaRcs file will be available if set to True (default: False).

get_output_file(*, as_file=False)

Method can be used to retrieve the results generated by running an external analysis. The file is only available when return_result_xml=True. execute() must be called first.

Return type

Union[BytesIO, File, None]

Returns

  • File (encoding=’utf-16’), if as_file = True

  • BytesIO (encoding=’utf-16’), if as_file = False (default)

get_idea_rcs_file(*, as_file=False)

Method can be used to retrieve the .ideaRcs file which is converted from the (Open)Model input XML. The file is only available when return_rcs_file=True. execute() must be called first.

Return type

Union[BytesIO, File, None]

Returns

  • File, if as_file = True

  • BytesIO, if as_file = False (default)

OpenModel

class viktor.external.idea_rcs.idea_rcs.OpenModel(*, project_data=None, code_settings=None)

Can be used to construct an IDEA-RCS model and generate its corresponding input XML file. This file can in turn be used as input of IdeaRcsAnalysis. For a more elaborate example implementation, please see the guide.

The OpenModel follows IDEA’s underlying API. Alternatively, you can use Model.

Warning

Use this binding at own risk. Whether an input XML file represents a valid model is dependent on many things, e.g. on the combination of certain parameters. The OpenModel does not give any guarantees on this. It is therefore important to always validate your model by hand thoroughly, before using it in an automated way within your app!

Example usage:

# Initialize the model.
model = OpenModel()  # empty model, or optionally pass ProjectData and/or CodeSettings

# Create the concrete section.
mat = model.create_matconcrete_ec2(ConcreteMaterial.C12_15)
cs = model.create_cross_section_parameter(name='cs', cross_section_type=CrossSectionType.RECT, material=mat,
                                          Width=2.0, Height=2.0)

# Create the reinforced cross section.
rcs = model.create_reinforced_cross_section(name='rcs', cross_section=cs)

# Create bars (and stirrups) as desired
mat_reinf = model.create_matreinforcement_ec2(ReinforcementMaterial.B_400A)

bar_locations = [(-0.101, -0.175), (0.101, -0.175), (0.101, 0.175), (-0.101, 0.175)]
bar_diameters = [0.016, 0.016, 0.016, 0.016]

for coords, diameter in zip(bar_locations, bar_diameters):
    rcs.create_bar(coords, diameter, mat_reinf)

# Create a CheckMember.
member = model.create_check_member1d()

# 'Assign' the CheckMember to a CheckSection with the previously defined reinforced section and add extremes.
check_section = model.add_check_section(description='S 1', check_member=member, reinf_section=rcs)
freq = LoadingSLS(ResultOfInternalForces(N=-100000, My=210000))
fund = LoadingULS(ResultOfInternalForces(N=-99999, My=200000))
check_section.create_extreme(frequent=freq, fundamental=fund)

# 'Assign' the necessary additional data to the CheckMember.
model.add_member_data_ec2(member, MemberType.BEAM_SLAB, TwoWaySlabType.SHELL_AS_PLATE)

# Generate the input XML file.
input_xml = model.generate_xml_input()
Parameters
  • project_data (Optional[ProjectData]) – project_data (default: IDEA-RCS default project_data)

  • code_settings (Optional[CodeSettings]) – code and calculation settings (default: IDEA-RCS default settings)

project_data
Return type

ProjectData

code_settings
Return type

CodeSettings

generate_xml_input()

Generates the input file XML representation of the IDEA-RCS model.

Warning

Whether an input XML file represents a valid model is dependent on many things, e.g. on the combination of certain parameters. The OpenModel does not give any guarantees on this. It is therefore important to always validate your model by hand thoroughly, before using it in an automated way within your app!

Note

This method needs to be mocked in (automated) unit and integration tests.

Return type

BytesIO

create_matconcrete_ec2(base_material, name=None, *, e_modulus=32800, g_modulus=13667, poisson=0.2, unit_mass=2500, specific_heat=0.6, thermal_expansion=1e-05, thermal_conductivity=45, is_default=False, order_in_code=1, thermal_state=None, fck_28=None, stone_diameter=0.016, cement_class=ConcCementClass.R, aggregate_type=ConcAggregateType.QUARTZITE, diagram_type=ConcDiagramType.PARABOLIC, silica_fume=False, plain_concrete_diagram=False, dep_params=None)

Create a material concrete Ec2 object and add it to the model.

Parameters
  • base_material (ConcreteMaterial) – IDEA-RCS base material to start with.

  • name (Optional[str]) – Name of the material (default: base_material name).

  • e_modulus (float) – Young’s modulus [MPa] (default: 32800 MPa).

  • g_modulus (float) – Shear modulus [MPa] (default: 13667 MPa).

  • poisson (float) – Poisson’s ratio (default: 0.2).

  • unit_mass (float) – Unit mass [kg/m3] (default: 2500 kg/m3).

  • specific_heat (float) – Specific heat capacity (default: 0.6).

  • thermal_expansion (float) – Thermal expansion [1/K] (default: 1e-05).

  • thermal_conductivity (float) – Thermal conductivity (default: 45).

  • is_default (bool) – True if material is default material in IDEA-RCS code (default: False).

  • order_in_code (int) – Order of this material in the IDEA-RCS code (default: 1).

  • thermal_state (Optional[ThermalState]) – Collection of thermal states for expansion, conductivity, specific heat, stress-strain and strain curvatures (default: ThermalState()).

  • fck_28 (Optional[float]) – Characteristic compressive cylinder strength of concrete at 28 days [MPa] (default: base_material fck).

  • stone_diameter (float) – Aggregate size (default: 16 mm).

  • cement_class (ConcCementClass) – Cement class (default: R).

  • aggregate_type (ConcAggregateType) – Aggregate type (default: Quartzite).

  • diagram_type (ConcDiagramType) – Type of stress-strain diagram for ULS calculation (default: Parabolic).

  • silica_fume (bool) – Contains silica fume (default: False) (EN 1992-2:2008-07 only).

  • plain_concrete_diagram (bool) – Stress strain diagram with tension part (default: False).

  • dep_params (Optional[ConcDependentParams]) – Collection of a series of dependent parameters (see ConcDependentParams for more info). If None, values will be calculated based on ‘fck’ (default: None).

Return type

MatConcreteEc2

create_matreinforcement_ec2(base_material, name=None, *, e_modulus=200000, g_modulus=83333, poisson=0.2, unit_mass=7850, specific_heat=0.6, thermal_expansion=1e-05, thermal_conductivity=45, is_default=False, order_in_code=1, thermal_state=None, bar_surface=BarSurface.RIBBED, fyk=None, ftk_by_fyk=None, epsuk=None, ftk=None, class_=ReinfClass.B, type_=ReinfType.BARS, fabrication=ReinfFabrication.HOT_ROLLED, diagram_type=ReinfDiagramType.BILINEAR_INCLINED)

Create a material reinforcement Ec2 object and add it to the model.

Parameters
  • base_material (ReinforcementMaterial) – IDEA-RCS base material to start with.

  • name (Optional[str]) – Name of the material (default: base_material name).

  • e_modulus (float) – Young’s modulus [MPa] (default: 200000 MPa).

  • g_modulus (float) – Shear modulus [MPa] (default: 83333 MPa).

  • poisson (float) – Poisson’s ratio (default: 0.2).

  • unit_mass (float) – Unit mass [kg/m3] (default: 7850 kg/m3).

  • specific_heat (float) – Specific heat capacity (default: 0.6).

  • thermal_expansion (float) – Thermal expansion [1/K] (default: 1e-05).

  • thermal_conductivity (float) – Thermal conductivity (default: 45).

  • is_default (bool) – True if material is default material in IDEA-RCS code (default: False).

  • order_in_code (int) – Order of this material in the IDEA-RCS code (default: 1).

  • thermal_state (Optional[ThermalState]) – Collection of thermal states for expansion, conductivity, specific heat, stress-strain and strain curvatures (default: ThermalState()).

  • bar_surface (BarSurface) – Bar surface (default: Ribbed).

  • fyk (Optional[float]) – Characteristic yield strength of reinforcement (default: base_material fyk).

  • ftk_by_fyk (Optional[float]) – factor k = ratio ftk / fyk (default: base_material k).

  • epsuk (Optional[float]) – Characteristic strain of reinforcement at maximum load - εuk [x 1e-4].

  • ftk (Optional[float]) – Characteristic tensile strength of reinforcement (default: base_material ftk).

  • class – Class of reinforcement (default: B).

  • type – Type of reinforcement (default: Bars).

  • fabrication (ReinfFabrication) – Fabrication of reinforcement (default: Hot rolled).

  • diagram_type (ReinfDiagramType) – Type of material diagram (default: Bilinear with an inclined top branch).

Return type

MatReinforcementEc2

create_cross_section_component(name=None)

Create a cross-section object defined by one or multiple components and add it to the model.

Parameters

name (Optional[str]) – Name of cross-section (default: ‘’).

Return type

CrossSectionComponent

create_cross_section_parameter(cross_section_type, material, name=None, **parameters)

Create a cross-section object defined by parameters and add it to the model.

Parameters
  • cross_section_type (CrossSectionType) – Type of cross-section.

  • material (MatConcrete) – Material (created by create_matconcrete_ec2()).

  • name (Optional[str]) – Name of cross-section (default: ‘’).

  • parameters (Any) – keyword naming should correspond to chosen cross_section_type(!).

The following combinations of cross_section_type and parameters can be used (see the IDEA StatiCa interface for the naming convention):

  • O: D

  • RECT: Width, Height

  • TRAPEZOID: H, Bb, Bt

  • IGN: H, Bh, Bs, Ts, Th, Tw

  • IGH: H, Bh, Bs, Ts, Th, Tw, Bfh, Tfh

  • BEAM_SHAPE_I_HAUNCH_CHAMFER: Bbf, Hbf, Hbfh, Bw, H, Htfh, Htf, Btf, Bwh

  • TG: Height, Width, TopFlangeWidth, WallWidth

  • TTFH: Height, Width, TopFlangeWidth, WallWidth, TopFlangeHaunch

  • TGREV: Height, Width, TopFlangeWidth, WallWidth

  • TCHAMFER_1: Height, Width, TopFlangeWidth, WallWidth, TopFlangeHaunch2, WallHaunch2

  • TCHAMFER_2: Height, Width, TopFlangeWidth, WallWidth, TopFlangeHaunch2, WallHaunch1, WallHaunch2

  • TWH: Height, Width, TopFlangeWidth, WallWidth, WallHaunch

  • TTFHREV: Height, Width, TopFlangeWidth, WallWidth, TopFlangeHaunch

  • TWHREV: Height, Width, TopFlangeWidth, WallWidth, WallHaunch

Return type

CrossSectionParameter

create_reinforced_cross_section(cross_section, name=None)

Create a reinforced cross-section object and add it to the model.

Parameters
Return type

ReinforcedCrossSection

create_check_member1d()

Create a member 1D check, which can be used in add_check_section() and add_member_data_ec2().

Return type

CheckMember1D

add_check_section(check_member, reinf_section, description=None)

Adds a single section check on the given CheckMember. Note that add_member_data_ec2() must be called subsequently.

Parameters
Return type

CheckSection

add_member_data_ec2(member, member_type, two_way_slab_type, *, calculation_setup=None, coeff_kx_for_wmax=None, exposure_class_data=None, creep_coefficient=None, relative_humidity=None)

Adds a concrete member Ec2 data to the model.

Parameters
  • member (CheckMember) – CheckMember (created by create_check_member1d()). Should be previously added to a check section via add_check_section().

  • member_type (MemberType) – Structural type of member. Must be a valid type corresponding to the reinf_section assigned to the member in add_check_section().

  • two_way_slab_type (TwoWaySlabType) – Two way slab type. Must be a valid type corresponding to the reinf_section assigned to the member in add_check_section().

  • calculation_setup (Optional[CalculationSetup]) – Calculation control settings (default: Capacity N-M(-M) | Shear | Interaction | Stress Limitation | Crack width | Detailing).

  • coeff_kx_for_wmax (Optional[float]) – (Dutch annex only) Coefficient kx to increase limited concrete crack (default: 1.0).

  • exposure_class_data (Optional[ExposureClassesDataEc2]) – Exposure classes (default: no corrosion).

  • creep_coefficient (Optional[float]) – Final value of creep coefficient (default: calculated by IDEA-RCS).

  • relative_humidity (Optional[float]) – Percentage of relative humidity (default: 65).

Return type

None

SectionPrototype1D

class viktor.external.idea_rcs.idea_rcs.SectionPrototype1D

Abstract base class of all 1D (beam-like) section prototypes.

RectSection

class viktor.external.idea_rcs.idea_rcs.RectSection(width, height)

Bases: viktor.external.idea_rcs.idea_rcs.SectionPrototype1D

Rectangular section.

The origin is located in the centroid of this section.

Parameters
  • width (float) – Width of the section.

  • height (float) – Height of the section.

GeneralShape

class viktor.external.idea_rcs.idea_rcs.GeneralShape(outline, *, openings=None)

Bases: viktor.external.idea_rcs.idea_rcs.SectionPrototype1D

General cross-section, defined by a set of coordinates.

Parameters
  • outline (Sequence[Tuple[float, float]]) – Vertices which define the outline of the section (y, z). A minimum of 3 vertices is required, the outline is automatically closed.

  • openings (Optional[Sequence[Sequence[Tuple[float, float]]]]) – One or multiple openings, defined by vertices (y, z). A minimum of 3 vertices per opening is required, the opening is automatically closed.

Member

class viktor.external.idea_rcs.idea_rcs.Member(rcs, check_section)

Base class of all member types.

property bars: List[viktor.external.idea_rcs.objects.ReinforcedBar]
Return type

List[ReinforcedBar]

property stirrups: List[viktor.external.idea_rcs.objects.Stirrup]
Return type

List[Stirrup]

property extremes: List[viktor.external.idea_rcs.objects.CheckSectionExtreme]
Return type

List[CheckSectionExtreme]

create_bar(coordinates, diameter, material)

Create a reinforced bar on the reinforced cross section.

Parameters
Return type

None

create_bar_layer(*, origin, diameter, material, number_of_bars, delta_y=None, delta_z=None)

Create multiple reinforced bars on the reinforced cross section, positioned on a line.

Parameters
  • origin (Tuple[float, float]) – Origin point (Y, Z) [m].

  • diameter (float) – Diameter of the bar [m].

  • material (MatReinforcement) – Reinforcement material (created by create_matreinforcement_ec2()).

  • number_of_bars (int) – Number of bars (minimum of 2).

  • delta_y (Optional[float]) – Distance between origin bar and the last bar in y-direction [m].

  • delta_z (Optional[float]) – Distance between origin bar and the last bar in z-direction [m].

Return type

None

create_stirrup(points, diameter, material, distance, shear_check=None, torsion_check=None, mandrel_diameter_factor=None, anchorage_length=None)

Create a stirrup on the reinforced cross section.

Parameters
  • points (Sequence[Union[Tuple[float, float], Tuple[Tuple[float, float], Tuple[float, float]]]]) – Sequence of (X, Y) coordinates [m] of the stirrup vertices, connected by straight line segments. For arc-segments use ((X_end, Y_end), (X_on_arc, Y_on_arc)).

  • diameter (float) – Diameter of the stirrup [m].

  • material (MatReinforcement) – Reinforcement material (created by create_matreinforcement_ec2()).

  • distance (float) – Longitudinal distance between stirrups [m].

  • shear_check (Optional[bool]) – Take stirrup into account in shear check (default: False).

  • torsion_check (Optional[bool]) – Take stirrup into account in torsion check (default: False).

  • mandrel_diameter_factor (Optional[float]) – Inner diameter of mandrel as multiple of stirrup diameter [-] (default: 1.0).

  • anchorage_length (Optional[float]) – Anchorage length [m] (default: 0.0).

Return type

None

create_extreme(*, accidental=None, fatigue=None, frequent=None, fundamental=None, characteristic=None, quasi_permanent=None)

Create an extreme case with corresponding internal forces on the beam for checking.

Parameters
  • accidental (Optional[LoadingULS]) – Accidental loading.

  • fatigue (Optional[FatigueLoading]) – Fatigue loading.

  • frequent (Optional[LoadingSLS]) – Frequent loading.

  • fundamental (Optional[LoadingULS]) – Fundamental loading.

  • characteristic (Optional[LoadingSLS]) – Characteristic loading.

  • quasi_permanent (Optional[LoadingSLS]) – Quasi-Permanent loading.

Return type

None

Beam

class viktor.external.idea_rcs.idea_rcs.Beam(rcs, check_section)

Bases: viktor.external.idea_rcs.idea_rcs.Member

Do not use this __init__ directly, but create the object by Model.create_beam().

CompressionMember

class viktor.external.idea_rcs.idea_rcs.CompressionMember(rcs, check_section)

Bases: viktor.external.idea_rcs.idea_rcs.Member

Do not use this __init__ directly, but create the object by Model.create_compression_member().

OneWaySlab

class viktor.external.idea_rcs.idea_rcs.OneWaySlab(rcs, check_section)

Bases: viktor.external.idea_rcs.idea_rcs.Member

Do not use this __init__ directly, but create the object by Model.create_one_way_slab().

Model

class viktor.external.idea_rcs.idea_rcs.Model(*, project_data=None, code_settings=None)

Can be used to construct an IDEA-RCS model and generate its corresponding input XML file. This file can in turn be used as input of IdeaRcsAnalysis. For a more detailed elaboration, please see the guide.

Alternatively, you can use OpenModel.

Warning

Use this binding at own risk. Whether an input XML file represents a valid model is dependent on many things, e.g. on the combination of certain parameters. The Model does not give any guarantees on this. It is therefore important to always validate your model by hand thoroughly, before using it in an automated way within your app!

Example usage:

# Initialize the model.
model = Model()  # empty model, or optionally pass ProjectData and/or CodeSettings

# Create the desired material(s).
cs_mat = model.create_concrete_material(ConcreteMaterial.C12_15)
mat_reinf = model.create_reinforcement_material(ReinforcementMaterial.B_400A)

# Create a beam (or other type of member) to be checked.
cross_section = RectSection(0.5, 1.0)
beam = model.create_beam(cross_section, cs_mat)

# Create bars (and stirrups) as desired
bar_locations = [(-0.101, -0.175), (0.101, -0.175), (0.101, 0.175), (-0.101, 0.175)]
bar_diameters = [0.016, 0.016, 0.016, 0.016]

for coords, diameter in zip(bar_locations, bar_diameters):
    beam.create_bar(coords, diameter, mat_reinf)

# Add extreme(s)
freq = LoadingSLS(ResultOfInternalForces(N=-100000, My=210000))
fund = LoadingULS(ResultOfInternalForces(N=-99999, My=200000))
beam.create_extreme(frequent=freq, fundamental=fund)

# Generate the input XML file.
input_xml = model.generate_xml_input()
Parameters
  • project_data (Optional[ProjectData]) – project_data (default: IDEA-RCS default project_data)

  • code_settings (Optional[CodeSettings]) – code and calculation settings (default: IDEA-RCS default settings)

project_data
Return type

ProjectData

code_settings
Return type

CodeSettings

generate_xml_input()

Generates the input file XML representation of the IDEA-RCS model.

Warning

Whether an input XML file represents a valid model is dependent on many things, e.g. on the combination of certain parameters. The OpenModel does not give any guarantees on this. It is therefore important to always validate your model by hand thoroughly, before using it in an automated way within your app!

Note

This method needs to be mocked in (automated) unit and integration tests.

Return type

BytesIO

create_concrete_material(base_material, name=None, *, unit_mass=2500, fck=None, stone_diameter=0.016, cement_class=ConcCementClass.R, aggregate_type=ConcAggregateType.QUARTZITE, diagram_type=ConcDiagramType.PARABOLIC, silica_fume=False, plain_concrete_diagram=False, dep_params=None)

Create a concrete material, to be used in create_beam() and similar methods.

Parameters
  • base_material (ConcreteMaterial) – IDEA-RCS base material to start with.

  • name (Optional[str]) – Name of the material (default: base_material name).

  • unit_mass (float) – Unit mass [kg/m3] (default: 2500 kg/m3).

  • fck (Optional[float]) – Characteristic compressive cylinder strength of concrete at 28 days [MPa] (default: base_material fck).

  • stone_diameter (float) – Aggregate size (default: 16 mm).

  • cement_class (ConcCementClass) – Cement class (default: R).

  • aggregate_type (ConcAggregateType) – Aggregate type (default: Quartzite).

  • diagram_type (ConcDiagramType) – Type of stress-strain diagram for ULS calculation (default: Parabolic).

  • silica_fume (bool) – Contains silica fume (default: False) (EN 1992-2:2008-07 only).

  • plain_concrete_diagram (bool) – Stress strain diagram with tension part (default: False).

  • dep_params (Optional[ConcDependentParams]) – Collection of a series of dependent parameters (see ConcDependentParams for more info). If None, values will be calculated based on ‘fck’ (default: None).

Return type

MatConcreteEc2

create_reinforcement_material(base_material, name=None, *, unit_mass=7850, e_modulus=200000, fyk=None, ftk_by_fyk=None, epsuk=None, type_=ReinfType.BARS, bar_surface=BarSurface.RIBBED, class_=ReinfClass.B, fabrication=ReinfFabrication.HOT_ROLLED, diagram_type=ReinfDiagramType.BILINEAR_INCLINED)

Create a reinforcement material, to be used in create_reinforcement_bar().

Parameters
  • base_material (ReinforcementMaterial) – IDEA-RCS base material to start with.

  • name (Optional[str]) – Name of the material (default: base_material name).

  • unit_mass (float) – Unit mass [kg/m3] (default: 7850 kg/m3).

  • e_modulus (float) – Young’s modulus [MPa] (default: 200000 MPa).

  • fyk (Optional[float]) – Characteristic yield strength of reinforcement (default: base_material fyk).

  • ftk_by_fyk (Optional[float]) – factor k = ratio ftk / fyk (default: base_material k).

  • epsuk (Optional[float]) – Characteristic strain of reinforcement at maximum load - εuk [x 1e-4].

  • type – Type of reinforcement (default: Bars).

  • bar_surface (BarSurface) – Bar surface (default: Ribbed).

  • class – Class of reinforcement (default: B).

  • fabrication (ReinfFabrication) – Fabrication of reinforcement (default: Hot rolled).

  • diagram_type (ReinfDiagramType) – Type of material diagram (default: Bilinear with an inclined top branch).

Return type

MatReinforcementEc2

create_beam(cs, material, *, calculation_control=None, name=None, rcs_name=None, exposure_classes=None, coeff_kx=None, creep_coefficient=None, relative_humidity=None)

Create a beam section.

Parameters
  • cs (SectionPrototype1D) – Cross section prototype.

  • material (MatConcrete) – Material for the cross section (created by create_concrete_material()).

  • calculation_control (Optional[CalculationSetup]) – Calculation control settings (default: Capacity N-M(-M) | Shear | Interaction | Stress Limitation | Crack width | Detailing).

  • name (Optional[str]) – Name of the cross section (default: ‘S{i}’).

  • rcs_name (Optional[str]) – Name of the reinforced cross section (default: ‘R{i}’).

  • exposure_classes (Optional[ExposureClassesDataEc2]) – Corrosion exposure classes (default: no corrosion).

  • coeff_kx (Optional[float]) – (Dutch annex only) Coefficient k_x acc. 7.3.1 (default: 1.0).

  • creep_coefficient (Optional[float]) – Final value of creep coefficient (default: calculated by IDEA-RCS).

  • relative_humidity (Optional[float]) – Percentage of relative humidity (default: 65).

Return type

Beam

create_compression_member(cs, material, *, calculation_control=None, name=None, rcs_name=None, exposure_classes=None, coeff_kx=None, creep_coefficient=None, relative_humidity=None)

Create a compression member section.

Parameters
  • cs (SectionPrototype1D) – Cross section prototype.

  • material (MatConcrete) – Material for the cross section (created by create_concrete_material()).

  • calculation_control (Optional[CalculationSetup]) – Calculation control settings (default: Capacity N-M(-M) | Shear | Interaction | Stress Limitation | Crack width | Detailing).

  • name (Optional[str]) – Name of the cross section (default: ‘S{i}’).

  • rcs_name (Optional[str]) – Name of the reinforced cross section (default: ‘R{i}’).

  • exposure_classes (Optional[ExposureClassesDataEc2]) – Corrosion exposure classes (default: no corrosion).

  • coeff_kx (Optional[float]) – (Dutch annex only) Coefficient k_x acc. 7.3.1 (default: 1.0).

  • creep_coefficient (Optional[float]) – Final value of creep coefficient (default: calculated by IDEA-RCS).

  • relative_humidity (Optional[float]) – Percentage of relative humidity (default: 65).

Return type

CompressionMember

create_one_way_slab(cs, material, *, calculation_control=None, name=None, rcs_name=None, exposure_classes=None, coeff_kx=None, creep_coefficient=None, relative_humidity=None)

Create a one-way slab member section.

Parameters
  • cs (SectionPrototype1D) – Cross section prototype.

  • material (MatConcrete) – Material for the cross section (created by create_concrete_material()).

  • calculation_control (Optional[CalculationSetup]) – Calculation control settings (default: Capacity N-M(-M) | Shear | Interaction | Stress Limitation | Crack width | Detailing).

  • name (Optional[str]) – Name of the cross section (default: ‘S{i}’).

  • rcs_name (Optional[str]) – Name of the reinforced cross section (default: ‘R{i}’).

  • exposure_classes (Optional[ExposureClassesDataEc2]) – Corrosion exposure classes (default: no corrosion).

  • coeff_kx (Optional[float]) – (Dutch annex only) Coefficient k_x acc. 7.3.1 (default: 1.0).

  • creep_coefficient (Optional[float]) – Final value of creep coefficient (default: calculated by IDEA-RCS).

  • relative_humidity (Optional[float]) – Percentage of relative humidity (default: 65).

Return type

OneWaySlab

RcsOutputFileParser

class viktor.external.idea_rcs.idea_rcs.RcsOutputFileParser(xml_file)

Parser to extract results from an IDEA-RCS output file (.xml).

Currently the following data can be extracted:

  • capacity(): forces (N, Qy, Qz, Mx, My, Mz) for Fu, Fu1 and Fu2.

  • shear(): Ved, Vrd, Vrdc, Vrdmax, Vrdr and Vrds.

  • crack_width(): N, My, Mz, W, Wlim, CheckValue for short term and long term cracks.

  • detailing(): unity checks of the longitudinal and shear reinforcement.

  • stress_limitation(): short- and long-term stress limitation results.

  • fatigue(): min and max fatigue results.

Example using File:

xml_file = idea_rcs_analysis.get_output_file(as_file=True)
with xml_file.open_binary() as f:
    parser = RcsOutputFileParser(f)

    # loop through all sections
    for section in parser.section_results():
        capacity_results = section.capacity()
        shear_results = section.shear()

    # or get results for a single section
    section_4 = parser.section_result(4)
    ...

    # or loop through all extremes within a section
    for extreme in section_4.extremes():
        capacity = extreme['capacity']
        ...

Example using BytesIO:

xml_file = idea_rcs_analysis.get_output_file()
parser = RcsOutputFileParser(xml_file)

for section in parser.section_results():
    ...
Parameters

xml_file (BinaryIO) – IDEA-RCS XML output file (.xml).

section_result(id_)

Retrieve the section result of the provided id.

Return type

SectionResult

section_results()

Iterates through all section results.

Usage:

for section in parser.section_results():
    capacity_results = section.capacity()

    if section.id_ == 3:
        ...
Return type

Iterator[SectionResult]

class SectionResult(id_, element)

Parsed result section, on which specific results can be retrieved.

Do not instantiate this object directly, but retrieve it through RcsOutputFileParser.section_results().

property id_: int

Returns the ‘SectionId’ of current section.

Return type

int

extremes()

Get all results combined per extreme for the current section.

Returns a list of dictionaries in the following format:

[
    {
        'capacity': {...} | None,
        'shear': {...} | None,
        'crack_width': {...} | None,
        'detailing': {...} | None,
        'stress_limitation': {...} | None,
        'fatigue': {...} | None,
    },
    ...
]
Return type

List[Dict[str, Optional[dict]]]

capacity()

Get the capacity results of all extremes for the current section.

Returns a list of dictionaries (or None if not present for a certain extreme) in the following format:

[
    {
        'Fu': {
            'N': <float>,
            'Qy': <float>,
            'Qz': <float>,
            'Mx': <float>,
            'My': <float>,
            'Mz': <float>
        },
        'Fu1': {
            ...
        } | None,  # IDEA-RCS >= v10.1 only, else None
        'Fu2': {
            ...
        } | None,  # IDEA-RCS >= v10.1 only, else None
        'CheckValue': <float>
    } | None,

    ...
]
Return type

List[Optional[Dict[str, Any]]]

shear()

Get the shear resistances for all extremes for the current section.

Returns a list of dictionaries (or None if not present for a certain extreme) in the following format:

[
    {
        'Ved': <float>,
        'Vrdc': <float>,
        'Vrd': <float>,
        'Vrdmax': <float>,
        'Vrdr': <float>,
        'Vrds': <float>,
        'CheckValue': <float>
    } | None,

    ...
]
Return type

List[Optional[Dict[str, Any]]]

crack_width()

Get the crack width (short/long) results for all extremes for the current section.

Returns a list of dictionaries (or None if not present for a certain extreme) in the following format:

[
    {
        'short': {
            'N': <float>,
            'My': <float>,
            'Mz': <float>,
            'W': <float>,
            'Wlim': <float>,
            'CheckValue': <float>
        } | None,

        'long': {
            'N': <float>,
            'My': <float>,
            'Mz': <float>,
            'W': <float>,
            'Wlim': <float>,
            'CheckValue': <float>
        } | None,
    } | None,

    ...
]
Return type

List[Optional[Dict[str, Optional[Dict[str, Any]]]]]

detailing()

Get the unity checks of the longitudinal reinforcement and shear reinforcement for all extremes for the current section.

Returns a list of dictionaries (or None if not present for a certain extreme) in the following format:

[
    {
        'longitudinal': <float> | None,
        'shear': <float> | None,
    } | None,

    ...
]
Return type

List[Optional[Dict[str, Optional[float]]]]

stress_limitation()

Get the short- and long-term stress limitation results for all extremes for the current section.

Returns a list of dictionaries (or None if not present for a certain extreme) in the following format:

[
    {
        'short': {
            Check_7_2_2_Concrete_fck: <float> | nan,  # various keys
            ...
         } | None,
        'long': {
            Check_7_2_2_Concrete_fck: <float> | nan,  # various keys
            ...
         } | None,
    } | None,

    ...
]
Return type

List[Optional[Dict[str, Optional[float]]]]

fatigue()

Get the fatigue results for all extremes for the current section.

Returns a list of dictionaries (or None if not present for a certain extreme) in the following format:

[
    {
        'fatigue': {
            'CheckValue': <float>,
            'DecisionMethod': <str>
        },
        'shear': {
            'max': {
                'Ved': <float>,
                'Vrdc': <float>,
                'Vrd': <float>,
                'Vrdmax': <float>,
                'Vrdr': <float>,
                'Vrds': <float>,
                'CheckValue': <float>
            },
            'min': {
                'Ved': <float>,
                'Vrdc': <float>,
                'Vrd': <float>,
                'Vrdmax': <float>,
                'Vrdr': <float>,
                'Vrds': <float>,
                'CheckValue': <float>
            },
        }
    } | None,

    ...
]
Return type

List[Optional[dict]]

OutputFileParser

class viktor.external.idea_rcs.idea_rcs.OutputFileParser(xml_file)

Helper class to extract results from a IDEA-RCS output file (.xml).

Note, for very large result files we advice to make use of RcsOutputFileParser instead.

Parameters

xml_file (StringIO) – valid IDEA-RCS XML output file.

Raises

ParsingError – if ‘xml_file’ can not be parsed (not a valid format).

Example usage:

parser = OutputFileParser(xml_file)
for section in parser.section_ids:
    capacity_results = parser.capacity_results(section)
    ...

In case you require results which are not supported, you can retrieve the raw results using the raw_results() method.

property section_ids: List[int]

Get all section ids for which results are present in the result file.

Return type

List[int]

raw_results()

Get the (complete) raw results in dict form. Can be used if results need to be extracted that are not supported by the available methods.

Return type

dict

capacity_results(section_id)

Get the result of applied internal forces of all extremes for the section with provided ‘section_id’.

Parameters

section_id (int) – id of the check section. Must be present in the output file.

Raises

ParsingError – if ‘section_id’ is not present in output file.

See capacity() for return format.

Return type

List[Optional[Dict[str, Any]]]

shear_results(section_id)

Get the shear resistances for all extremes for the section with provided ‘section_id’.

Parameters

section_id (int) – id of the check section. Must be present in the output file.

Raises

ParsingError – if ‘section_id’ is not present in output file.

See shear() for return format.

Return type

List[Optional[Dict[str, Any]]]

crack_width_results(section_id)

Get the crack width (short/long) results for all extremes for the section with provided ‘section_id’.

Parameters

section_id (int) – id of the check section. Must be present in the output file.

Raises

ParsingError – if ‘section_id’ is not present in output file.

See crack_width() for return format.

Return type

List[Optional[Dict[str, Optional[Dict[str, Any]]]]]

detailing_results(section_id)

Get the unity checks of the longitudinal reinforcement and shear reinforcement for all extremes for the section with provided ‘section_id’.

Parameters

section_id (int) – id of the check section. Must be present in the output file.

Raises

ParsingError – if ‘section_id’ is not present in output file.

See detailing() for return format.

Return type

List[Optional[Dict[str, Optional[float]]]]

stress_limitation_results(section_id)

Get the short- and long-term stress limitation results for all extremes for provided ‘section_id’.

Parameters

section_id (int) – id of the check section. Must be present in the output file.

Raises

ParsingError – if ‘section_id’ is not present in output file.

See stress_limitation() for return format.

Return type

List[Optional[Dict[str, Optional[float]]]]

fatigue_results(section_id)

Get the fatigue results for all extremes for the provided ‘section_id’.

Parameters

section_id (int) – id of the check section. Must be present in the output file.

Raises

ParsingError – if ‘section_id’ is not present in output file.

See fatigue() for return format.

Return type

List[Optional[dict]]

ConcreteMaterial

ReinforcementMaterial

NationalAnnex

class viktor.external.idea_rcs.objects.NationalAnnex(value)

Bases: enum.Enum

An enumeration.

NO_ANNEX: viktor.external.idea_rcs.objects.NationalAnnex = 'NoAnnex'
DUTCH: viktor.external.idea_rcs.objects.NationalAnnex = 'Dutch'
BELGIUM: viktor.external.idea_rcs.objects.NationalAnnex = 'Belgian'

ProjectData

class viktor.external.idea_rcs.objects.ProjectData(*, national_annex=None, fatigue_check=False)

Project data.

Parameters
  • national_annex (Optional[NationalAnnex]) – national annex (default: No national annex (EN))

  • fatigue_check (bool) – functionality - fatigue (default: false)

EvaluationInteractionDiagram

class viktor.external.idea_rcs.objects.EvaluationInteractionDiagram(value)

Bases: enum.Enum

An enumeration.

NU_MU_MU: viktor.external.idea_rcs.objects.EvaluationInteractionDiagram = 0
NU_M_M: viktor.external.idea_rcs.objects.EvaluationInteractionDiagram = 1
N_MU_MU: viktor.external.idea_rcs.objects.EvaluationInteractionDiagram = 2

NoResistanceConcreteTension1d

class viktor.external.idea_rcs.objects.NoResistanceConcreteTension1d(value)

Bases: enum.Enum

An enumeration.

EXTREME: viktor.external.idea_rcs.objects.NoResistanceConcreteTension1d = 0
SECTION: viktor.external.idea_rcs.objects.NoResistanceConcreteTension1d = 1
ALWAYS: viktor.external.idea_rcs.objects.NoResistanceConcreteTension1d = 2

TypeSLSCalculation

class viktor.external.idea_rcs.objects.TypeSLSCalculation(value)

Bases: enum.Enum

An enumeration.

BOTH: viktor.external.idea_rcs.objects.TypeSLSCalculation = 0
SHORT_TERM: viktor.external.idea_rcs.objects.TypeSLSCalculation = 1
LONG_TERM: viktor.external.idea_rcs.objects.TypeSLSCalculation = 2

CodeSettings

class viktor.external.idea_rcs.objects.CodeSettings(*, evaluation_interaction_diagram=None, theta=None, theta_min=None, theta_max=None, n_cycles_fatigue=None, no_resistance_concrete_tension_1d=None, type_sls_calculation=None)

Code and calculation settings.

Parameters
  • evaluation_interaction_diagram (Optional[EvaluationInteractionDiagram]) – evaluation of interaction diagram (default: NuMuMu)

  • theta (Optional[float]) – angle [deg] between the concrete compression strut and the beam axis perpendicular to the shear force (default: set by IDEA)

  • theta_min (Optional[float]) – minimum angle [deg] between the concrete compression strut and the beam axis perpendicular to the shear force (default: set by IDEA)

  • theta_max (Optional[float]) – maximum angle [deg] between the concrete compression strut and the beam axis perpendicular to the shear force (default: set by IDEA)

  • n_cycles_fatigue (Optional[float]) – number of fatigue cycles (* 10⁶) (default: set by IDEA)

  • no_resistance_concrete_tension_1d (Optional[NoResistanceConcreteTension1d]) – no resistance of concrete in tension - members 1D (default: Extreme)

  • type_sls_calculation (Optional[TypeSLSCalculation]) – type of SLS calculation (default: Both)

CheckMember

class viktor.external.idea_rcs.objects.CheckMember(id_)

Abstract base class of all check members.

CheckMember1D

class viktor.external.idea_rcs.objects.CheckMember1D(id_)

Bases: viktor.external.idea_rcs.objects.CheckMember

Do not use this __init__ directly, but create the object by create_check_member1d().

ThermalStateType

class viktor.external.idea_rcs.objects.ThermalStateType(value)

Bases: enum.Enum

An enumeration.

NONE: viktor.external.idea_rcs.objects.ThermalStateType = 0
CODE: viktor.external.idea_rcs.objects.ThermalStateType = 1
USER: viktor.external.idea_rcs.objects.ThermalStateType = 5

ThermalState

class viktor.external.idea_rcs.objects.ThermalState(expansion=ThermalStateType.NONE, conductivity=ThermalStateType.NONE, specific_heat=ThermalStateType.NONE, stress_strain=ThermalStateType.NONE, strain=ThermalStateType.NONE)

Collection of thermal states for expansion, conductivity, specific heat, stress-strain and strain.

Parameters

ReinfClass

class viktor.external.idea_rcs.objects.ReinfClass(value)

Bases: enum.Enum

An enumeration.

A: viktor.external.idea_rcs.objects.ReinfClass = 0
B: viktor.external.idea_rcs.objects.ReinfClass = 1
C: viktor.external.idea_rcs.objects.ReinfClass = 2

ReinfType

class viktor.external.idea_rcs.objects.ReinfType(value)

Bases: enum.Enum

An enumeration.

BARS: viktor.external.idea_rcs.objects.ReinfType = 0
DECOILED_RODS: viktor.external.idea_rcs.objects.ReinfType = 1
WIRE_FABRICS: viktor.external.idea_rcs.objects.ReinfType = 2
LATTICE_GIRDERS: viktor.external.idea_rcs.objects.ReinfType = 3

BarSurface

class viktor.external.idea_rcs.objects.BarSurface(value)

Bases: enum.Enum

An enumeration.

SMOOTH: viktor.external.idea_rcs.objects.BarSurface = 0
RIBBED: viktor.external.idea_rcs.objects.BarSurface = 1

ReinfDiagramType

class viktor.external.idea_rcs.objects.ReinfDiagramType(value)

Bases: enum.Enum

An enumeration.

BILINEAR_INCLINED: viktor.external.idea_rcs.objects.ReinfDiagramType = 0
BILINEAR_NOT_INCLINED: viktor.external.idea_rcs.objects.ReinfDiagramType = 1
USER: viktor.external.idea_rcs.objects.ReinfDiagramType = 2

ReinfFabrication

class viktor.external.idea_rcs.objects.ReinfFabrication(value)

Bases: enum.Enum

An enumeration.

HOT_ROLLED: viktor.external.idea_rcs.objects.ReinfFabrication = 0
COLD_WORKED: viktor.external.idea_rcs.objects.ReinfFabrication = 1

MatReinforcement

class viktor.external.idea_rcs.objects.MatReinforcement(id_, name, e_modulus, g_modulus, poisson, unit_mass, specific_heat, thermal_expansion, thermal_conductivity, is_default, order_in_code, thermal_state, bar_surface)

Abstract base class of all material reinforcements.

MatReinforcementEc2

class viktor.external.idea_rcs.objects.MatReinforcementEc2(id_, name, e_modulus, g_modulus, poisson, unit_mass, specific_heat, thermal_expansion, thermal_conductivity, is_default, order_in_code, thermal_state, bar_surface, fyk, ftk_by_fyk, epsuk, ftk, class_, type_, fabrication, diagram_type)

Bases: viktor.external.idea_rcs.objects.MatReinforcement

Do not use this __init__ directly, but create the object by create_matreinforcement_ec2().

ConcDiagramType

class viktor.external.idea_rcs.objects.ConcDiagramType(value)

Bases: enum.Enum

An enumeration.

BILINEAR: viktor.external.idea_rcs.objects.ConcDiagramType = 0
PARABOLIC: viktor.external.idea_rcs.objects.ConcDiagramType = 1
USER: viktor.external.idea_rcs.objects.ConcDiagramType = 2

ConcAggregateType

class viktor.external.idea_rcs.objects.ConcAggregateType(value)

Bases: enum.Enum

An enumeration.

QUARTZITE: viktor.external.idea_rcs.objects.ConcAggregateType = 0
LIMESTONE: viktor.external.idea_rcs.objects.ConcAggregateType = 1
SANDSTONE: viktor.external.idea_rcs.objects.ConcAggregateType = 2
BASALT: viktor.external.idea_rcs.objects.ConcAggregateType = 3

ConcCementClass

class viktor.external.idea_rcs.objects.ConcCementClass(value)

Bases: enum.Enum

An enumeration.

S: viktor.external.idea_rcs.objects.ConcCementClass = 0
R: viktor.external.idea_rcs.objects.ConcCementClass = 1
N: viktor.external.idea_rcs.objects.ConcCementClass = 2

MatConcrete

class viktor.external.idea_rcs.objects.MatConcrete(id_, name, e_modulus, g_modulus, poisson, unit_mass, specific_heat, thermal_expansion, thermal_conductivity, is_default, order_in_code, thermal_state)

Abstract base class of all concrete materials.

ConcDependentParams

class viktor.external.idea_rcs.objects.ConcDependentParams(E_cm, eps_c1, eps_c2, eps_c3, eps_cu1, eps_cu2, eps_cu3, F_ctm, F_ctk_0_05, F_ctk_0_95, n_factor, F_cm)

Collection of all MatConcreteEc2 dependent parameters.

Parameters
  • E_cm (float) – Secant modulus of elasticity of concrete [MPa]

  • eps_c1 (float) – Compressive strain in the concrete - εc1 [-]

  • eps_c2 (float) – Compressive strain in the concrete - εc2 [-]

  • eps_c3 (float) – Compressive strain in the concrete - εc3 [-]

  • eps_cu1 (float) – Ultimate compressive strain in the concrete - εcu1 [-]

  • eps_cu2 (float) – Ultimate compressive strain in the concrete - εcu2 [-]

  • eps_cu3 (float) – Ultimate compressive strain in the concrete - εcu3 [-]

  • F_ctm (float) – Mean value of axial tensile strength of concrete [MPa]

  • F_ctk_0_05 (float) – Characteristic axial tensile strength of concrete 5% quantile [MPa]

  • F_ctk_0_95 (float) – Characteristic axial tensile strength of concrete 95% quantile [MPa]

  • n_factor (float) – Coefficient n-factor - necessary parabolic part of stress-strain diagram - n [-]

  • F_cm (float) – Mean value of concrete cylinder compressive strength [MPa]

MatConcreteEc2

class viktor.external.idea_rcs.objects.MatConcreteEc2(id_, name, e_modulus, g_modulus, poisson, unit_mass, specific_heat, thermal_expansion, thermal_conductivity, is_default, order_in_code, thermal_state, fck, stone_diameter, cement_class, aggregate_type, diagram_type, silica_fume, plain_concrete_diagram, dep_params=None)

Bases: viktor.external.idea_rcs.objects.MatConcrete

Do not use this __init__ directly, but create the object by create_matconcrete_ec2().

CrossSectionType

class viktor.external.idea_rcs.objects.CrossSectionType(value)

Bases: enum.Enum

An enumeration.

ONE_COMPONENT_CSS: viktor.external.idea_rcs.objects.CrossSectionType = 0
ROLLED_I: viktor.external.idea_rcs.objects.CrossSectionType = 1
ROLLED_ANGLE: viktor.external.idea_rcs.objects.CrossSectionType = 2
ROLLED_T: viktor.external.idea_rcs.objects.CrossSectionType = 3
ROLLED_U: viktor.external.idea_rcs.objects.CrossSectionType = 4
ROLLED_CHS: viktor.external.idea_rcs.objects.CrossSectionType = 5
ROLLED_RHS: viktor.external.idea_rcs.objects.CrossSectionType = 6
ROLLED_DOUBLE_UO: viktor.external.idea_rcs.objects.CrossSectionType = 7
ROLLED_DOUBLE_UC: viktor.external.idea_rcs.objects.CrossSectionType = 8
ROLLED_DOUBLE_LT: viktor.external.idea_rcs.objects.CrossSectionType = 10
ROLLED_DOUBLE_LU: viktor.external.idea_rcs.objects.CrossSectionType = 11
ROLLED_TI: viktor.external.idea_rcs.objects.CrossSectionType = 12
ROLLED_I_PAR: viktor.external.idea_rcs.objects.CrossSectionType = 13
ROLLED_U_PAR: viktor.external.idea_rcs.objects.CrossSectionType = 14
ROLLED_L_PAR: viktor.external.idea_rcs.objects.CrossSectionType = 15
BOX_FL: viktor.external.idea_rcs.objects.CrossSectionType = 16
BOX_WEB: viktor.external.idea_rcs.objects.CrossSectionType = 17
BOX_2I: viktor.external.idea_rcs.objects.CrossSectionType = 18
BOX_2U: viktor.external.idea_rcs.objects.CrossSectionType = 19
BOX_2U_2PI: viktor.external.idea_rcs.objects.CrossSectionType = 20
BOX_2L: viktor.external.idea_rcs.objects.CrossSectionType = 21
BOX_4L: viktor.external.idea_rcs.objects.CrossSectionType = 22
IW: viktor.external.idea_rcs.objects.CrossSectionType = 23
IWN: viktor.external.idea_rcs.objects.CrossSectionType = 24
TW: viktor.external.idea_rcs.objects.CrossSectionType = 25
O: viktor.external.idea_rcs.objects.CrossSectionType = 26
RECT: viktor.external.idea_rcs.objects.CrossSectionType = 27
IGN: viktor.external.idea_rcs.objects.CrossSectionType = 28
IGH: viktor.external.idea_rcs.objects.CrossSectionType = 29
TG: viktor.external.idea_rcs.objects.CrossSectionType = 30
LG: viktor.external.idea_rcs.objects.CrossSectionType = 31
LG_MIRRORED: viktor.external.idea_rcs.objects.CrossSectionType = 32
UG: viktor.external.idea_rcs.objects.CrossSectionType = 33
CHS_G: viktor.external.idea_rcs.objects.CrossSectionType = 34
ZG: viktor.external.idea_rcs.objects.CrossSectionType = 35
RHS_G: viktor.external.idea_rcs.objects.CrossSectionType = 36
OVAL: viktor.external.idea_rcs.objects.CrossSectionType = 37
GENERAL: viktor.external.idea_rcs.objects.CrossSectionType = 38
ROLLED_2I: viktor.external.idea_rcs.objects.CrossSectionType = 39
TRAPEZOID: viktor.external.idea_rcs.objects.CrossSectionType = 40
TTFH: viktor.external.idea_rcs.objects.CrossSectionType = 41
TWH: viktor.external.idea_rcs.objects.CrossSectionType = 42
TGREV: viktor.external.idea_rcs.objects.CrossSectionType = 43
TTFHREV: viktor.external.idea_rcs.objects.CrossSectionType = 44
TWHREV: viktor.external.idea_rcs.objects.CrossSectionType = 45
TCHAMFER_1: viktor.external.idea_rcs.objects.CrossSectionType = 46
TCHAMFER_2: viktor.external.idea_rcs.objects.CrossSectionType = 47
TT: viktor.external.idea_rcs.objects.CrossSectionType = 48
TT1: viktor.external.idea_rcs.objects.CrossSectionType = 49
SG: viktor.external.idea_rcs.objects.CrossSectionType = 50
GENERAL_STEEL: viktor.external.idea_rcs.objects.CrossSectionType = 51
GENERAL_CONCRETE: viktor.external.idea_rcs.objects.CrossSectionType = 52
COMPOSITE_BEAM_BOX: viktor.external.idea_rcs.objects.CrossSectionType = 53
COMPOSITE_BEAM_BOX_1: viktor.external.idea_rcs.objects.CrossSectionType = 54
COMPOSITE_BEAM_IGEN_T: viktor.external.idea_rcs.objects.CrossSectionType = 55
COMPOSITE_BEAM_L_LEFT: viktor.external.idea_rcs.objects.CrossSectionType = 56
COMPOSITE_BEAM_PLATE: viktor.external.idea_rcs.objects.CrossSectionType = 57
COMPOSITE_BEAM_R_RES_T: viktor.external.idea_rcs.objects.CrossSectionType = 58
COMPOSITE_BEAM_R_RES_T_1: viktor.external.idea_rcs.objects.CrossSectionType = 59
COMPOSITE_BEAM_R_T: viktor.external.idea_rcs.objects.CrossSectionType = 60
COMPOSITE_BEAM_SHAPE_CHAMF: viktor.external.idea_rcs.objects.CrossSectionType = 61
COMPOSITE_BEAM_SHAPE_CHAMF_ASYM: viktor.external.idea_rcs.objects.CrossSectionType = 62
COMPOSITE_BEAM_SHAPE_IGEN: viktor.external.idea_rcs.objects.CrossSectionType = 63
COMPOSITE_BEAM_SHAPE_I_T: viktor.external.idea_rcs.objects.CrossSectionType = 64
COMPOSITE_BEAM_SHAPE_I_T_ASYM: viktor.external.idea_rcs.objects.CrossSectionType = 65
COMPOSITE_BEAM_T_LEFT: viktor.external.idea_rcs.objects.CrossSectionType = 66
COMPOSITE_BEAM_TRAPEZOID: viktor.external.idea_rcs.objects.CrossSectionType = 67
COMPOSITE_BEAM_TRES_T: viktor.external.idea_rcs.objects.CrossSectionType = 68
COMPOSITE_BEAM_TREV: viktor.external.idea_rcs.objects.CrossSectionType = 69
COMPOSITE_BEAM_TREV_RES_I: viktor.external.idea_rcs.objects.CrossSectionType = 70
COMPOSITE_BEAM_TREV_RES_I_1: viktor.external.idea_rcs.objects.CrossSectionType = 71
COMPOSITE_BEAM_TREV_RES_R: viktor.external.idea_rcs.objects.CrossSectionType = 72
COMPOSITE_BEAM_TREV_RES_R_1: viktor.external.idea_rcs.objects.CrossSectionType = 73
COMPOSITE_BEAM_TREV_T: viktor.external.idea_rcs.objects.CrossSectionType = 74
COMPOSITE_BEAM_SHAPE_T_T: viktor.external.idea_rcs.objects.CrossSectionType = 75
BEAM_SHAPE_I_HAUNCH_CHAMFER: viktor.external.idea_rcs.objects.CrossSectionType = 76
BEAM_SHAPE_I_HAUNCH_CHAMFER_ASYM: viktor.external.idea_rcs.objects.CrossSectionType = 77
BEAM_SHAPE_REV_U: viktor.external.idea_rcs.objects.CrossSectionType = 78
BEAM_SHAPE_BOX: viktor.external.idea_rcs.objects.CrossSectionType = 79
BEAM_SHAPE_BOX_1: viktor.external.idea_rcs.objects.CrossSectionType = 80
BEAM_SHAPE_TREV_CHAMFER_HAUNCH_S: viktor.external.idea_rcs.objects.CrossSectionType = 81
BEAM_SHAPE_TREV_CHAMFER_HAUNCH_D: viktor.external.idea_rcs.objects.CrossSectionType = 82
BEAM_SHAPE_IREV_DEGEN: viktor.external.idea_rcs.objects.CrossSectionType = 83
BEAM_SHAPE_IREV_DEGEN_ADD: viktor.external.idea_rcs.objects.CrossSectionType = 84
BEAM_SHAPE_TREV_DEGEN: viktor.external.idea_rcs.objects.CrossSectionType = 85
BEAM_SHAPE_TREV_DEGEN_ADD: viktor.external.idea_rcs.objects.CrossSectionType = 86
BEAM_SHAPE_Z_DEGEN: viktor.external.idea_rcs.objects.CrossSectionType = 87
BEAM_SHAPE_I_Z_DEGEN: viktor.external.idea_rcs.objects.CrossSectionType = 88
BEAM_SHAPE_L_DEGEN: viktor.external.idea_rcs.objects.CrossSectionType = 89
CHS_PAR: viktor.external.idea_rcs.objects.CrossSectionType = 101
UNIQUE_NAME: viktor.external.idea_rcs.objects.CrossSectionType = 1001

CrossSection

class viktor.external.idea_rcs.objects.CrossSection(id_, name)

Abstract base class of all cross sections.

CrossSectionParameter

class viktor.external.idea_rcs.objects.CrossSectionParameter(id_, name, cross_section_type, material, **parameters)

Bases: viktor.external.idea_rcs.objects.CrossSection

Do not use this __init__ directly, but create the object by create_cross_section_parameter().

CrossSectionComponent

class viktor.external.idea_rcs.objects.CrossSectionComponent(id_, name)

Bases: viktor.external.idea_rcs.objects.CrossSection

Do not use this __init__ directly, but create the object by create_cross_section_component().

create_component(outline, material, *, openings=None)

Create a component to build up the cross-section.

Parameters
  • outline (Sequence[Tuple[float, float]]) – Vertices which define the outline of the section (y, z). A minimum of 3 vertices is required, the outline is automatically closed.

  • material (MatConcrete) – Material (created by create_matconcrete_ec2()).

  • openings (Optional[Sequence[Sequence[Tuple[float, float]]]]) – One or multiple openings, defined by vertices (y, z). A minimum of 3 vertices per opening is required, the opening is automatically closed.

Return type

None

ReinforcedBar

class viktor.external.idea_rcs.objects.ReinforcedBar(coordinates, diameter, material)

Do not use this __init__ directly, but create the object by ReinforcedCrossSection.create_bar().

property coordinates: Tuple[float, float]
Return type

Tuple[float, float]

property diameter: float
Return type

float

property material_id: int
Return type

int

Stirrup

class viktor.external.idea_rcs.objects.Stirrup(points, diameter, material, distance, shear_check=None, torsion_check=None, mandrel_diameter_factor=None, anchorage_length=None)

Do not use this __init__ directly, but create the object by ReinforcedCrossSection.create_stirrup().

property points: Sequence[Union[Tuple[float, float], Tuple[Tuple[float, float], Tuple[float, float]]]]
Return type

Sequence[Union[Tuple[float, float], Tuple[Tuple[float, float], Tuple[float, float]]]]

property material_id: int
Return type

int

property shear_check: bool
Return type

bool

property torsion_check: bool
Return type

bool

property mandrel_diameter_factor: float
Return type

float

property anchorage_length: float
Return type

float

ReinforcedCrossSection

class viktor.external.idea_rcs.objects.ReinforcedCrossSection(id_, name, cross_section, bars=None, stirrups=None)

Do not use this __init__ directly, but create the object by create_reinforced_cross_section().

property bars: List[viktor.external.idea_rcs.objects.ReinforcedBar]
Return type

List[ReinforcedBar]

property stirrups: List[viktor.external.idea_rcs.objects.Stirrup]
Return type

List[Stirrup]

create_bar(coordinates, diameter, material)

Create a reinforced bar on the reinforced cross section.

Parameters
Return type

None

create_bar_layer(*, origin, diameter, material, number_of_bars, delta_y=None, delta_z=None)

Create multiple reinforced bars on the reinforced cross section, positioned on a line.

Parameters
  • origin (Tuple[float, float]) – Origin point (Y, Z) [m].

  • diameter (float) – Diameter of the bar [m].

  • material (MatReinforcement) – Reinforcement material (created by create_matreinforcement_ec2()).

  • number_of_bars (int) – Number of bars (minimum of 2).

  • delta_y (Optional[float]) – Distance between origin bar and the last bar in y-direction [m].

  • delta_z (Optional[float]) – Distance between origin bar and the last bar in z-direction [m].

Return type

None

create_stirrup(points, diameter, material, distance, shear_check=None, torsion_check=None, mandrel_diameter_factor=None, anchorage_length=None)

Create a stirrup on the reinforced cross section.

Parameters
  • points (Sequence[Union[Tuple[float, float], Tuple[Tuple[float, float], Tuple[float, float]]]]) – Sequence of (X, Y) coordinates [m] of the stirrup vertices, connected by straight line segments. For arc-segments use ((X_end, Y_end), (X_on_arc, Y_on_arc)).

  • diameter (float) – Diameter of the stirrup [m].

  • material (MatReinforcement) – Reinforcement material (created by create_matreinforcement_ec2()).

  • distance (float) – Longitudinal distance between stirrups [m].

  • shear_check (Optional[bool]) – Take stirrup into account in shear check (default: False).

  • torsion_check (Optional[bool]) – Take stirrup into account in torsion check (default: False).

  • mandrel_diameter_factor (Optional[float]) – Inner diameter of mandrel as multiple of stirrup diameter [-] (default: 1.0).

  • anchorage_length (Optional[float]) – Anchorage length [m] (default: 0.0).

Return type

None

ResultOfInternalForces

class viktor.external.idea_rcs.objects.ResultOfInternalForces(N=0.0, Qy=0.0, Qz=0.0, Mx=0.0, My=0.0, Mz=0.0)

Result of internal forces at a certain location.

Parameters
  • N (float) – Normal force (default: 0.0).

  • Qy (float) – Shear force in y direction (default: 0.0).

  • Qz (float) – Shear force in z direction (default: 0.0).

  • Mx (float) – Bending moment around x-axis (default: 0.0).

  • My (float) – Bending moment around y-axis (default: 0.0).

  • Mz (float) – Bending moment around z-axis (default: 0.0).

LoadingULS

class viktor.external.idea_rcs.objects.LoadingULS(internal_forces, internal_forces_second_order=None, internal_forces_begin=None, internal_forces_end=None, internal_forces_imperfection=None)

Loading ULS.

Parameters

LoadingSLS

class viktor.external.idea_rcs.objects.LoadingSLS(internal_forces, internal_forces_imperfection=None)

Loading SLS.

Parameters

FatigueLoading

class viktor.external.idea_rcs.objects.FatigueLoading(max_loading, min_loading)

Fatigue loading.

Parameters
  • max_loading (LoadingULS) – Max. cyclic loading.

  • min_loading (LoadingULS) – Min. cyclic loading.

CheckSectionExtreme

class viktor.external.idea_rcs.objects.CheckSectionExtreme(accidental=None, fatigue=None, frequent=None, fundamental=None, characteristic=None, quasi_permanent=None)

Abstract base class of all check section extremes.

StandardCheckSectionExtreme

class viktor.external.idea_rcs.objects.StandardCheckSectionExtreme(*, accidental=None, frequent=None, fundamental=None, characteristic=None, quasi_permanent=None, fatigue=None)

Bases: viktor.external.idea_rcs.objects.CheckSectionExtreme

Do not use this __init__ directly, but create the object by CheckSection.create_extreme().

CheckSection

class viktor.external.idea_rcs.objects.CheckSection(id_, description, check_member, reinf_section, extremes=None)

Abstract base class of all check sections.

property extremes: List[viktor.external.idea_rcs.objects.CheckSectionExtreme]
Return type

List[CheckSectionExtreme]

create_extreme(*, accidental=None, fatigue=None, frequent=None, fundamental=None, characteristic=None, quasi_permanent=None)

Create an extreme case with corresponding internal forces on the section for checking.

Parameters
  • accidental (Optional[LoadingULS]) – Accidental loading.

  • fatigue (Optional[FatigueLoading]) – Fatigue loading.

  • frequent (Optional[LoadingSLS]) – Frequent loading.

  • fundamental (Optional[LoadingULS]) – Fundamental loading.

  • characteristic (Optional[LoadingSLS]) – Characteristic loading.

  • quasi_permanent (Optional[LoadingSLS]) – Quasi-Permanent loading.

Return type

None

StandardCheckSection

class viktor.external.idea_rcs.objects.StandardCheckSection(id_, description, check_member, reinf_section, extremes=None)

Bases: viktor.external.idea_rcs.objects.CheckSection

Do not use this __init__ directly, but create the object by add_check_section().

MemberType

TwoWaySlabType

class viktor.external.idea_rcs.objects.TwoWaySlabType(value)

Bases: enum.Enum

An enumeration.

SLAB: viktor.external.idea_rcs.objects.TwoWaySlabType = 0
WALL: viktor.external.idea_rcs.objects.TwoWaySlabType = 1
DEEP_BEAM: viktor.external.idea_rcs.objects.TwoWaySlabType = 2
SHELL_AS_PLATE: viktor.external.idea_rcs.objects.TwoWaySlabType = 3
SHELL_AS_WALL: viktor.external.idea_rcs.objects.TwoWaySlabType = 4

CalculationSetup

class viktor.external.idea_rcs.objects.CalculationSetup(*, uls_response=None, uls_diagram=None, uls_shear=None, uls_torsion=None, uls_interaction=None, sls_crack=None, sls_stress_limitation=None, sls_stiffnesses=None, detailing=None, m_n_kappa_diagram=None, fatigue=None, cross_section_characteristics=None)

Concrete calculation setup.

Parameters
  • uls_response (Optional[bool]) – Response N-M(-M) (default: False).

  • uls_diagram (Optional[bool]) – Capacity N-M(-M) (default: True).

  • uls_shear (Optional[bool]) – Shear (default: True).

  • uls_torsion (Optional[bool]) – Torsion (default: True).

  • uls_interaction (Optional[bool]) – Interaction (default: True).

  • sls_crack (Optional[bool]) – Crack width (default: True).

  • sls_stress_limitation (Optional[bool]) – Stress limitation (default: True).

  • sls_stiffnesses (Optional[bool]) – Stiffnesses (default: False).

  • detailing (Optional[bool]) – Detailing (default: True).

  • m_n_kappa_diagram (Optional[bool]) – M-N-κ diagram (default: False).

  • fatigue (Optional[bool]) – Fatigue (default: True).

  • cross_section_characteristics (Optional[bool]) – Cross section characteristics (default: IDEA-RCS default).

ConcreteMemberData

class viktor.external.idea_rcs.objects.ConcreteMemberData(element, member_type, two_way_slab_type, calculation_setup=None)

Abstract base class of all concrete member data.

ExposureClassEc2Carbonation

ExposureClassEc2Chlorides

class viktor.external.idea_rcs.objects.ExposureClassEc2Chlorides(value)

Bases: enum.Enum

An enumeration.

XD1: viktor.external.idea_rcs.objects.ExposureClassEc2Chlorides = 1
XD2: viktor.external.idea_rcs.objects.ExposureClassEc2Chlorides = 2
XD3: viktor.external.idea_rcs.objects.ExposureClassEc2Chlorides = 3

ExposureClassEc2ChloridesFromSea

class viktor.external.idea_rcs.objects.ExposureClassEc2ChloridesFromSea(value)

Bases: enum.Enum

An enumeration.

XS1: viktor.external.idea_rcs.objects.ExposureClassEc2ChloridesFromSea = 1
XS2: viktor.external.idea_rcs.objects.ExposureClassEc2ChloridesFromSea = 2
XS3: viktor.external.idea_rcs.objects.ExposureClassEc2ChloridesFromSea = 3

ExposureClassEc2FreezeAttack

ExposureClassEc2ChemicalAttack

class viktor.external.idea_rcs.objects.ExposureClassEc2ChemicalAttack(value)

Bases: enum.Enum

An enumeration.

XA1: viktor.external.idea_rcs.objects.ExposureClassEc2ChemicalAttack = 1
XA2: viktor.external.idea_rcs.objects.ExposureClassEc2ChemicalAttack = 2
XA3: viktor.external.idea_rcs.objects.ExposureClassEc2ChemicalAttack = 3

ExposureClassesDataEc2

class viktor.external.idea_rcs.objects.ExposureClassesDataEc2(*, carbonation=None, chlorides=None, chlorides_from_sea=None, freeze_attack=None, chemical_attack=None)

Exposure Classes Ec2.

Parameters

ConcreteMemberDataEc2

class viktor.external.idea_rcs.objects.ConcreteMemberDataEc2(element, member_type, two_way_slab_type, calculation_setup=None, coeff_kx_for_wmax=None, exposure_class_data=None, creep_coefficient=None, relative_humidity=None)

Bases: viktor.external.idea_rcs.objects.ConcreteMemberData

Do not use this __init__ directly, but create the object by add_member_data_ec2().