Module viiaStrengthening

VIIA has created a catalogue with measures for the seismic strengthening of buildings in the Groningen area. Modelling of the measures is based on the standardized number of that catalogue.

You can find the catalogue here: https://www.maatregelencatalogus.nl

L2 measures

viiapackage.strengthening.l2.l2_002.viia_l2_002(project: ViiaProject, variant: int, interface: Union[str, Interface] = None, shape_1: Union[str, Wall] = None, shape_2: Union[str, Floor, Wall] = None) Interface[source]

This function creates an L2-002-measure. It can create an interface in between a wall and a floor, or make an existing interface linear.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • interface (str or obj): The interface that has to be made linear. Both the name or object reference can be provided. Default is None, in this case shape_1 and shape_2 should be provided.

  • shape_1 (str or obj): The object reference or name of the wall to what the interface should be applied. Default is None, in this case the interface should be provided.

  • shape_2 (str or obj): The object reference or name of the floor or wall to what the interface should be applied. Default is None, in this case the interface should be provided.

Output:
  • The strengthening measure is added between shape_1 and shape_2 or the interface is made linear.

  • Returns the interface object reference of the measure.

For example:

  • To make a linear interface from a non-linear interface, the following input can be used:

>>> project.viia_l2_002(interface='name_of_interface')
  • To make a new linear interface between two shapes, the following input can be used:

>>> project.viia_l2_002(shape_1='name_of_first_shape', shape_2='name_of_second_shape')
viiapackage.strengthening.l2.l2_005.viia_l2_005(project: ViiaProject, interface: Union[str, Interface] = None, shape_1: Union[str, Wall] = None, shape_2: Union[str, Floor] = None, variant: int = 1) Interface[source]

This function creates an L2-005-measure. It can create an interface in between a wall and a floor, or make an existing interface linear.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • interface (str or obj): The interface that has to be made linear. Both the name or object reference can be provided. Default is None, in this case shape_1 and shape_2 should be provided.

  • shape_1 (str or obj): The object reference or name of the wall to what the interface should be applied. Default is None, in this case the interface should be provided.

  • shape_2 (str or obj): The object reference or name of the floor to what the interface should be applied. Default is None, in this case the interface should be provided.

  • variant (int): The variant number of the measure that is in the GMC.

Output:
  • The strengthening measure is added between shape_1 and shape_2 or the interface is made linear.

  • Returns the interface object reference of the measure.

For example:

  • To make a linear interface from a non-linear interface, the following input can be used:

>>> project.viia_l2_005(interface='name_of_interface')
  • To make a new linear interface between two shapes, the following input can be used:

>>> project.viia_l2_005(shape_1='name_of_first_shape', shape_2='name_of_second_shape')
viiapackage.strengthening.l2.l2_025.viia_l2_025(project: ViiaProject, interface: Union[str, Interface] = None, shape_1: Union[str, Wall] = None, shape_2: Union[str, Wall] = None, variant: int = 1) Interface[source]

This function creates an L2-025-measure. It can create an interface in between two walls, or make an existing interface linear.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • interface (str or obj): The interface that has to be made linear. Both the name or object reference can be provided. Default is None, in this case shape_1 and shape_2 should be provided.

  • shape_1 (str or obj): The object reference or name of the wall to what the interface should be applied. Default is None, in this case the interface should be provided.

  • shape_2 (str or obj): The object reference or name of the wall to what the interface should be applied. Default is None, in this case the interface should be provided.

  • variant (int): The variant number of the measure that is in the GMC.

Output:
  • The strengthening measure is added between shape_1 and shape_2 or the interface is made linear.

  • Returns the interface object reference of the measure.

For example:

  • To make a linear interface from a non-linear interface, the following input can be used:

>>> project.viia_l2_025(interface='name_of_interface')
  • To make a new linear interface between two shapes, the following input can be used:

>>> project.viia_l2_025(shape_1='name_of_first_shape', shape_2='name_of_second_shape')
viiapackage.strengthening.l2.l2_029.viia_l2_029(project: ViiaProject, line_object: Union[Column, Beam] = None, name: Optional[Union[str, Layer]] = None, points: List[List[Union[float], Node]] = None, variant: int = 1) Beam[source]

This function creates an L2-029 measure. It can create an truss between two given points, or make an existing beam/column into a truss.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • line_object (obj): Beam or column that will be changed into a truss.

  • name (str or Layer): Optional argument to provide name of the layer as a string, or the Layer object itself, to which the newly created truss should be added. If not given, it is extracted from the connected shape(s).

  • points (list of (nodes or list of floats)): The start and end point of the beam shape. A point is defined by a list of 3 floats. Instead of a list of coordinates, the user can alo provide the node.

  • variant (int): The variant number of the measure that is in the GMC.

Output:
  • The strengthening measure is added between two given points, or the already created beam/column is converted into a L2-029 truss.

  • Returns the line_object after converting it into a truss and adding metadata; or a new truss based on the points provided.

For example:

  • To make a new L2-029 truss between two points, the following input can be used:

    project.viia_l2_029(name=’name of layer, e.g. N0’, points=[[5., 0., 3.5], [5., 2., 4.]])

  • To make an existing beam/column into an L2-029 truss, the following input can be used:

    project.viia_l2_053(line_object=’name_of_beam’)

viiapackage.strengthening.l2.l2_043.viia_l2_043(project: ViiaProject, variant: int, interface: Union[str, Interface] = None, shape_1: Union[str, Wall] = None, shape_2: Union[str, Wall] = None) Interface[source]

This function creates an L2-043-measure. It can create an interface in between two walls, or make an existing interface linear.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • interface (str or obj): The interface that has to be made linear. Both the name or object reference can be provided. Default is None, in this case shape_1 and shape_2 should be provided.

  • shape_1 (str or obj): The object reference or name of the wall to what the interface should be applied. Default is None, in this case the interface should be provided.

  • shape_2 (str or obj): The object reference or name of the wall to what the interface should be applied. Default is None, in this case the interface should be provided.

Output:
  • The strengthening measure is added between shape_1 and shape_2 or the interface is made linear.

  • Returns the interface object reference of the measure.

For example:

  • To make a linear interface from a non-linear interface, the following input can be used:

>>> project.viia_l2_043(interface='name_of_interface')
  • To make a new linear interface between two shapes, the following input can be used:

>>> project.viia_l2_043(shape_1='name_of_first_shape', shape_2='name_of_second_shape')
viiapackage.strengthening.l2.l2_053.viia_l2_053(project: ViiaProject, variant: int, connection: Union[str, Interface, NoConnection] = None, shape_1: Union[str, Wall] = None, shape_2: Union[str, Floor] = None) Interface[source]

This function creates an L2-053-measure. It can create an interface in between a floor and wall, or make an existing interface linear.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • connection (str or obj): The interface that has to be made linear or the NoConnection that should be replaced. Both the name or object reference can be provided. Default is None, in this case shape_1 and shape_2 should be provided.

  • shape_1 (str or obj): The object reference or name of the wall to what the interface should be applied. Default is None, in this case the interface should be provided.

  • shape_2 (str or obj): The object reference or name of the floor to what the interface should be applied. Default is None, in this case the interface should be provided.

Output:
  • The strengthening measure is added between shape_1 and shape_2 or the interface is made linear.

  • Returns the interface object reference of the measure.

For example:

  • To make a linear interface from a non-linear interface, the following input can be used:

>>> project.viia_l2_053(interface='name_of_interface')
  • To make a new linear interface between two shapes, the following input can be used:

>>> project.viia_l2_053(shape_1='name_of_first_shape', shape_2='name_of_second_shape')
viiapackage.strengthening.l2.l2_054.viia_l2_054(project: ViiaProject, variant: int, connection: Union[str, Interface, NoConnection] = None, shape_1: Union[str, Wall] = None, shape_2: Union[str, Floor] = None) Interface[source]

This function creates an L2-054-measure. It can create an interface in between a floor and wall, or make an existing interface linear.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • connection (str or obj): The interface that has to be made linear or the NoConnection that should be replaced. Both the name or object reference can be provided. Default is None, in this case shape_1 and shape_2 should be provided.

  • shape_1 (str or obj): The object reference or name of the wall to what the interface should be applied. Default is None, in this case the interface should be provided.

  • shape_2 (str or obj): The object reference or name of the floor to what the interface should be applied. Default is None, in this case the interface should be provided.

Output:
  • The strengthening measure is added between shape_1 and shape_2 or the interface is made linear.

  • Returns the interface object reference of the measure.

For example:

  • To make a linear interface from a non-linear interface, the following input can be used:

>>> project.viia_l2_054(interface='name_of_interface')
  • To make a new linear interface between two shapes, the following input can be used:

>>> project.viia_l2_054(shape_1='name_of_first_shape', shape_2='name_of_second_shape')
viiapackage.strengthening.l2.l2_060.viia_l2_060(project: ViiaProject, interface: Union[str, Interface] = None, shape_1: Union[str, Wall] = None, shape_2: Union[str, Wall] = None, variant: int = 1) Interface[source]

This function creates an L2-060-measure. It can create an interface in between two walls, or make an existing interface linear.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • interface (str or obj): The interface that has to be made linear. Both the name or object reference can be provided. Default is None, in this case shape_1 and shape_2 should be provided.

  • shape_1 (str or obj): The object reference or name of the wall to what the interface should be applied. Default is None, in this case the interface should be provided.

  • shape_2 (str or obj): The object reference or name of the wall to what the interface should be applied. Default is None, in this case the interface should be provided.

  • variant (int): The variant number of the measure that is in the GMC.

Output:
  • The strengthening measure is added between shape_1 and shape_2 or the interface is made linear.

  • Returns the interface object reference of the measure.

For example:

  • To make a linear interface from a non-linear interface, the following input can be used:

>>> project.viia_l2_060(interface='name_of_interface')
  • To make a new linear interface between two shapes, the following input can be used:

>>> project.viia_l2_060(shape_1='name_of_first_shape', shape_2='name_of_second_shape')

L3 measures

viiapackage.strengthening.l3.l3a.viia_l3a(project: ViiaProject, variant: int, floor: Union[str, Floor]) Floor[source]

This function creates an L3-A measure for a selected floor. With this measure, two multiplex panels are glued or screwed onto the existing timber floor. When applied to a timber joist with planks, the strength and stiffness of the planks is neglected. In the FEM-model the material of the floor will be adjusted with an updated material model, mass density and thickness.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant of the measure that is in the GMC.

  • floor (obj): The object reference of the floor that has to be strengthened. Alternative (str): Name of the floor to be strengthened.

Output:
  • The strengthening measure is added to the floor.

  • Returns the floor object reference on which the measure is applied.

viiapackage.strengthening.l3.l3b.viia_l3b(project: ViiaProject, variant: int, floor: Union[str, Floor]) Floor[source]

This function creates an L3-B-measure for a selected floor. With this measure, two layers of OSB panels (12mm) is glued and screwed underneath the existing roof. In the FEM-model the material of the floor will be adjusted with an updated material model, mass density and thickness.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • floor (obj): The object reference of the floor that has to be strengthened. Alternative (str): Name of the floor to be strengthened.

Output:
  • The strengthening measure is added to the floor.

  • When running in DIANA after creating the model, the DIANA model is updated.

  • Returns the floor object reference on which the measure is applied.

viiapackage.strengthening.l3.l3d.viia_l3d(project: ViiaProject, variant: int, roof: Union[str, Roof]) Roof[source]

This function creates an L3-D-measure for a selected roof. With this measure, one layer of multiplex panels is glued or screwed onto the existing roof. This is applied from the bottom. It is assumed that the connection is made in such a way that the (shear) capacity of the plates is governing. When applied to a roof surface consisting of a timber joist with planks, the strength and stiffness of the planks is neglected. In the FEM-model the material of the floor will be adjusted with an updated material model, mass density and thickness.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • roof (obj): The object reference of the roof that has to be strengthened. Alternative (str): Name of the roof to be strengthened.

Output:
  • The strengthening measure is added to the roof.

  • When running in DIANA after creating the model, the DIANA model is updated.

  • Returns the roof object reference on which the measure is applied.

viiapackage.strengthening.l3.l3e.viia_l3e(project: ViiaProject, roof: Union[str, Roof], variant: int = 1) Roof[source]

This function creates an L3-E-measure for a selected roof. With this measure, one layer of multiplex panels is glued or screwed onto the existing roof. This is applied from the top. It is assumed that the connection is made in such a way that the (shear) capacity of the plates is governing. When applied to a roof surface consisting of a timber joist with planks, the strength and stiffness of the planks is neglected. In the FEM-model the material of the floor will be adjusted with an updated material model, mass density and thickness.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • roof (obj): The object reference of the roof that has to be strengthened. Alternative (str): Name of the roof to be strengthened.

  • variant (int): The variant number of the measure that is in the GMC.

Output:
  • The strengthening measure is added to the roof.

  • When running in DIANA after creating the model, the DIANA model is updated.

  • Returns the roof object reference on which the measure is applied.

viiapackage.strengthening.l3.l3g.viia_l3g(project: ViiaProject, variant: int, name: Union[str, Layer], material: str, geometry: str, points: List[List[Union[float, str, Shapes, Level]]], roof: Optional[Union[str, Roof]] = None)[source]

This function creates an L3-G-measure for a selected roof. With this measure, the roof is strengthened by adding steel bracing. Various steel profiles can be applied. The modelling of this measure is in line with the modelling as described for steel structures in general.

Note

Function will add the strengthening measure data to the roof when provided, otherwise, the data is added to the created steel bracing shape object.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • name (str or Layer): Name of the layer as a string, or the Layer object itself, to which the newly created bracing shape object should be added.

  • material (str): Name of the material of the bracing shape to be created, complying VIIA naming convention.

  • geometry (str): Name of the geometry of the bracing shape to be created, complying VIIA naming convention.

  • points (list of list of floats and shapes): The start and end point of the bracing shape. Each point point is a list of 3 floats or 2 floats and 1 shape. If 3 floats are given, the unmodified point is used. If 2 floats and 1 shape is given, the unknown coordinate at the index of the shape is calculated by projection on this shape. Shapes can be inputted as objects or strings e.g. [[19.2, 6, “roof_1”], [0, 1, 4]] or [[19.2, roof_1, 15], [0, 1, 4]]. The z-coordinate can also be provided as level object, or name of the level.

  • roof (obj): Object reference of the roof that has to be strengthened. Optional input, if not provided the data about the strengthening measure is stored in the newly added bracing element. Alternative (str): Name of the roof to be strengthened.

Output:
  • The strengthening measure is added to the roof or the steel bracing.

  • When running in DIANA after creating the model, the DIANA model is updated.

  • Returns the newly created truss element as object reference.

viiapackage.strengthening.l3.l3m.viia_l3m(project: ViiaProject, variant: int, roof: Union[str, Roof]) Roof[source]

This function creates an L3-M-measure for a selected roof. With this measure, one layer of OSB panels is glued or screwed onto the existing roof. In the FEM-model the material of the floor will be adjusted with an updated material model, mass density and thickness.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • roof (obj): The object reference of the roof that has to be strengthened. Alternative (str): Name of the roof to be strengthened.

Output:
  • The strengthening measure is added to the roof.

  • When running in DIANA after creating the model, the DIANA model is updated.

  • Returns the roof object reference on which the measure is applied.

viiapackage.strengthening.l3.l3_multiplex_panel.viia_l3_multiplex_panel(project: ViiaProject, surface: Union[str, Floor, Roof], material_name: str, function_name: str, variant: int) Union[Floor, Roof][source]

This function creates an L3 measure for a selected surface. With this measure, one or two multiplex panels are glued or screwed onto the existing timber floor/roof. When applied to a timber joist with planks, the strength and stiffness of the planks is neglected. In the model the material of the floor/roof will be adjusted with an updated in-plane shear stiffness and an increased density. The thickness of the surface is adjusted.

Note

This function only accepts surfaces with a timber material applied.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • surface (obj): The object reference of the surface shape (floor/roof) that has to be strengthened. Alternative (str): Name of the surface shape to be strengthened.

  • material_name (str): Name of the material for the strengthening in the VIIA material database. These properties are set in the BoD and adjusted for the properties of the original surface.

  • function_name (str): Name of the measure function to be applied to the surface.

  • variant (int): The variant number of the measure that is in the GMC.

Output:
  • The strengthening measure is added to the floor or roof.

  • When running in DIANA after creating the model, the DIANA model is updated.

  • Returns the surface shape on which the measure is applied.

L4 measures

viiapackage.strengthening.l4.l4b.viia_l4b(project: ViiaProject, variant: int, wall: Union[Wall, str], offset_bottom: float = 0.1, offset_top: float = 0.1, offset_left: float = 0.1, offset_right: float = 0.1)[source]

This function creates an L4-B-measure for a selected wall. It adds vertical steel columns (generally HEA100) with horizontal steel beams (generally IPE100), including eccentricity. It will model the columns and beams around wall openings with the specified offset. The wall should be vertical, but angled in horizontal plane is okay. Also, the top and bottom do not have to be straight.

Warning

Function is currently not available, it requires updates, please send request to the VIIA automating team.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • wall (obj): The object reference of the wall that has to be strengthened. Alternative (str): Name of the wall to be strengthened.

  • offset_bottom (float): Not obligatory, default value is 0.1m. This is the offset of the steel beam to the bottom edge of the wall opening in [m].

  • offset_top (float): Not obligatory, default value is 0.1m. This is the offset of the steel beam to the top edge of the wall opening in [m].

  • offset_left (float): Not obligatory, default value is 0.1m. This is the offset of the steel column to the left edge of the wall opening in [m].

  • offset_right (float): Not obligatory, default value is 0.1m. This is the offset of the steel column to the right edge of the wall opening in [m].

Output:
  • The strengthening measure is added to class of columns and beams and modelled in DIANA or SCIA.

For example:
>>> project.viia_l4b(project, wall, 0.3, 0.2, 0.1, 0)

This example will apply the L4-B measure with vertical steel columns and horizontal steel beams around wall openings, for out-of-plane strengthening of Wall5 with bottom, top, left and right offset of 0.3, 0.2, 0.1 and 0 respectively.

viiapackage.strengthening.l4.l4d.viia_l4d(project: ViiaProject, variant: int, wall, cavity: float = 0.0, outer_wall_thickness: float = None, outer_wall_material: str = None, flip: bool = False, edge_distance: float = 0.25, wall_tie_distance: float = 0.5)[source]

This function creates an L4-D-measure for a selected wall. The purpose of this measure is to fix the outer leaf at the cavity wall to the structural inner leaf with cavity wall ties. The measure is modeled with the same properties as the modelling of existing wall ties.

Warning

Wall ties close to the corners or edges of the wall’s geometry will be moved to the nearby corner or edge. This is done to prevent mesh inconsistencies. Check the final mesh!

Note

Strengthening measure is only applicable on vertical walls.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • wall (as object/str or list of two objects/str): When provided with only one wall object or string, the outer leaf of that wall will be created along with cavity wall ties. When provided with list of 2 wall objects or strings in case the walls are existing in the model, the cavity wall ties will be created between two walls.

  • cavity (as float): Cavity distance only when one wall has been given as input. This is the dimension between the inner- and outer leaf of cavity wall, in [m].

  • outer wall thickness (as float) in [m], only when one wall has been given as input and may be omitted if wall thickness is same as inner leaf.

  • outer_wall_material (as string): Material for the outer wall, only when one wall has been given as input and may be omitted if wall material is same as inner leaf. Alternative (str): Name of the material. If the material does not yet exist it will be created.

  • flip (as bool): Not obligatory, default value is ‘False’. If flip is true, the new leaf will be placed on the inner side of the existing wall.

  • edge_distance (as float): Distance between cavity wall ties and the edges of the wall.

  • wall_tie_distance (as float): Mutual distance between cavity wall ties.

Output:
  • The strengthening measure is added to class of springs and modelled in DIANA or SCIA.

viiapackage.strengthening.l4.l4f.viia_l4f(project: ViiaProject, variant: int, wall: Union[Wall, str], offset_bottom: float = 0.1, offset_top: float = 0.1, flip: bool = False)[source]

This function creates an L4-F-measure for a selected wall. It adds vertical wooden beams (including eccentricity) It will model the column if it is of certain length and not in openings. The wall should be vertical, but angled in horizontal plane is okay. Also the top and bottom do not have to be straight.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • wall (obj): The object reference of the wall that has to be strengthened. Alternative (str): Name of the wall to be strengthened.

  • offset_bottom (float): Not obligatory, default value is 0.1m. This is the offset of the steel beam to the bottom edge of the wall opening in [m].

  • offset_top (float): Not obligatory, default value is 0.1m. This is the offset of the steel beam to the top edge of the wall opening in [m].

  • flip (bool): Default value is False, indicating that the columns created have an eccentricity applied in the direction of the local z-axis of the wall. If set to True, the eccentricity will be applied in the opposite direction.

Output:
  • The strengthening measure is added to class of columns and modelled in DIANA or SCIA.

viiapackage.strengthening.l4.l4i.viia_l4i(project: ViiaProject, variant: int, wall: Union[Wall, str], explicit: bool = False)[source]

This function creates an L4-I-measure for a selected wall. It replaces a masonry wall with a timber frame wall (HSB). It will model the wall the same as the existing wall and thus not in openings. The wall should be vertical, but angled in horizontal plane is okay. Also the top and bottom do not have to be straight.

Warning

Function is currently not available, it requires updates, please send request to the VIIA automating team.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • wall (obj): The object reference of the wall that has to be strengthened. Alternative (str): Name of the wall to be strengthened.

  • explicit (bool): Not obligatory, default value is ‘False’. In that case an equivalent wall is modelled. If

‘True’, the vertical wooden beams and multiplex sheets are modelled explicitly

Output:
  • The strengthening measure is executed and the new wall is modelled in DIANA or SCIA.

For example:
>>> project.viia_l4i(wall)

This example will apply the L4-I measure, which replaces masonry wall Wall5 with an equivalent timber frame wall.

viiapackage.strengthening.l4.l4o.viia_l4o(project: ViiaProject, variant: int, wall: Union[Wall, str], offset_bottom: float = 0.1, offset_top: float = 0.1, strip_profile: str = '20x1.4')[source]

This function creates an L4-O-measure (Quakeshield) for a selected wall. It adds the vertical CFRP-strips. It will model the beam if it is of certain length and not in openings.The wall should be vertical, but angled in horizontal plane is okay. Also, the top and bottom do not have to be straight.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC. From ‘1’ to ‘4’, for 1.0m, 0.75m, 0.5m and 1.25m respectively.

  • wall (obj): The object reference of the wall that has to be strengthened. Alternative (str): Name of the wall to be strengthened.

  • offset_bottom (float): Not obligatory, default value is 0.1m. This is the offset of the wooden beam to the bottom edge of the wall in [m].

  • offset_top (float): Not obligatory, default value is 0.1m. This is the offset of the wooden beam to the bottom edge of the wall in [m].

  • strip_profile (str): Specifies the profile of the CFRP strips. Not obligatory, all measure variants on the GMC have a standard of ‘20x1.4’. The alternatives are ‘30x1.4’ and ‘30x2.5’.

Output:
  • The strengthening measure is added to class of columns and modelled in DIANA or SCIA.

For example:
>>> project.viia_l4o(wall, variant=1)

This example will apply the L4O measure with 20mm x 1.4mm CFRP strips spaced 1m .

>>> project.viia_l4o(wall, variant=4, strip_profile='30x2.5')

This example will apply the L4O measure with 30mm x 2.5mm CFRP strips spaced 1.25m .

viiapackage.strengthening.l4.l4r.viia_l4r(project: ViiaProject, variant: int, wall: Union[Wall, str], offset_left: float = 0.2, offset_right: float = 0.2)[source]

This function creates an L4-R-measure for a selected wall. It adds vertical steel columns with horizontal wooden beams (generally 100x200, 400 ctc), including eccentricity. It will model the columns and beams around wall openings with the offset specified in the project. The wall should be vertical, but angled in horizontal plane is okay. Also the top and bottom do not have to be straight. offsetLeft and offsetRight define the offsets of the first and last column from the edge of the wall.

Warning

Function is currently not available, it requires updates, please send request to the VIIA automating team.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • wall (obj): The object reference of the wall that has to be strengthened. Alternative (str): Name of the wall to be strengthened.

  • offset_left (float): Not obligatory, default value is 0.2m. This is the offset of the first steel column to the left edge of the wall in [m].

  • offset_right (float): Not obligatory, default value is 0.2m. This is the offset of the last steel column to the right edge of the wall in [m].

Output:
  • The strengthening measure is added to class of columns and beams and modelled in DIANA or SCIA.

For example:
>>> project.viia_l4r(wall, 0.3, 0.2)

This example will apply the L4-R measure with vertical steel columns and horizontal wooden beams, for out-of-plane strengthening, to teh wall with an offset at the left of 0.3m and 0.2m at the right.

L5 measures

viiapackage.strengthening.l5.l5a.viia_l5a(project: ViiaProject, variant: int, wall: Union[Wall, str], application_type: str = 'center') Tuple[Wall, MainSurfaceReinforcement][source]

This function creates a L5-A-measure (Reinforced concrete wall addition) for a selected wall. It adds a concrete wall of 60mm, C20/25 (shotcrete) and applies a grid reinforcement of 1x2R8*-150. *2R12 IS ADDED. Optional is the inclusion of eccentricity.

The strengthening measure will be modelled around openings and can be applied on walls in all directions.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • wall (obj): The object reference of the wall that has to be strengthened. Alternative (str): Name of the wall to be strengthened.

  • application_type (str): Default value is ‘center’, in which case no eccentricity is applied. If ‘outward’ or ‘inward’ is provided the eccentricity direction is determined based on the connected floors. If ‘positive’ or ‘negative’ is provided the eccentricity direction is determined based on the normal vector of the wall. Accepted input options are ‘center’, ‘outward’, ‘positive’, ‘inward’ or ‘negative’.

Output:
  • The strengthening measure is added to the wall as sub-shapes.

  • Newly created wall shape and reinforcement shape are returned in a tuple; first is wall and second is the surface reinforcement.

  • The strengthening measure is created in DIANA (if software is DIANA and model created).

For example:

project.viia_l5a(wall)

This example will apply the L5-A measure with a concrete wall and grid reinforcement. No eccentricities applied.

project.viia_l5a(wall, 'positive')

The example has the same result as the previous, but now eccentricity in the direction of the local Z-axis of wall has been applied.

viiapackage.strengthening.l5.l5b.viia_l5b(project: ViiaProject, wall: Union[Wall, str], application_type: str = 'Center', variant: int = 1)[source]

This function creates an L5B-measure, i.e. replacing a selected wall with a reinforced concrete wall. It adjusts the properties of the original wall with a wall of 200mm, C20/25 and applies two sheets of grid reinforcement of R12_150 in both directions. Inclusion of eccentricity is optional, for which one sheet is applied at both edges of the wall. It will model the strengthening measure around openings and can be applied on walls in all directions.

Warning

Function is currently not available, it requires updates, please send request to the VIIA automating team.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • wall (obj): The object reference of the wall that has to be strengthened. Alternative (str): Name of the wall to be strengthened.

  • application_type (str): Default value is ‘Center’. In that case no eccentricity is applied. If ‘Eccentric’ the grid reinforcement will be applied with corresponding eccentricity (set in constants for VIIA).

  • variant (int): The variant number of the measure that is in the GMC.

Output:
  • The strengthening measure is added to the wall and modelled in DIANA or SCIA.

For example:
>>> project.viia_l5b(wall)

This example will apply the L5B measure and adjust the wall in the model to a concrete wall of 200mm with a grid reinforcement 2x2R12-150.

>>> project.viia_l5b(wall, application_type='Eccentric')

The example has the same result as the previous, but the grid reinforcement has been applied with eccentricity (both sides of the wall).

viiapackage.strengthening.l5.l5n.viia_l5n(project: ViiaProject, wall: Union[Wall, str], application: str = 'Center', variant: int = 1)[source]

This function creates an L5N-measure (Reinforced concrete wall addition) for a selected wall. It adds a concrete wall of 150mm, C20/25 and applies a grid reinforcement of 2x2R12-150. Optional is the inclusion of eccentricity.

It will model the strengthening measure around openings and can be applied on walls in all directions.

Warning

Function is currently not available, it requires updates, please send request to the VIIA automating team.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • wall (obj): The object reference of the wall that has to be strengthened. Alternative (str): Name of the wall to be strengthened.

  • application (str): Default value is ‘Center’. In that case no eccentricity is applied. If ‘Positive’ or ‘Negative’ the measure will be applied with corresponding eccentricity. Positive is in the direction of the local z-axis of the strengthened wall. Input ‘Center’, ‘Positive’ or ‘Negative’.

  • variant (int): The variant number of the measure that is in the GMC.

Output:
  • The strengthening measure is added to the wall and modelled in DIANA or SCIA.

For example:

project.viia_l5n(wall=wall)

This example will apply the L5-N measure with a concrete wall and grid reinforcement. No eccentricities applied.

project.viia_l5n(wall=wall, application='Positive')

The example has the same result as the previous, but an eccentricity has been applied in the direction of the local z-axis of the wall.

viiapackage.strengthening.l5.l5p.viia_l5p(project: ViiaProject, variant: int, wall: Wall, application_type: str = 'both', eccentricity: bool = True) List[Union[Wall, MainSurfaceReinforcement]][source]

This function creates an L5-P-measure (Quakeshield mesh with shotcrete) for a selected wall. It adds a concrete wall of 20mm on both sides of the wall, C35/45 and applies a grid reinforcement of Quakeshield. Optional is to apply the measure only on one side and the inclusion of eccentricity.

Note

When applying on one side, eccentricity is always taken into account.

Warning

The tyings are not modelled, these need to be added manually.

It will model the strengthening measure around openings and can be applied on walls in all directions.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • wall (obj): Object reference of the wall that has to be strengthened.

  • application_type (str): Select the side to apply the measure on. Default value is ‘both’, applying the measure on both sides of the wall. If ‘positive’ or ‘negative’ is provided as argument, the measure will be applied on that side of the wall only. Positive is in the direction of the local z-axis of the strengthened wall.

  • eccentricity (bool): The eccentricity of the strengthening is applied by default when applying the measure on both sides. Default value is True. This input is ignored when application-type is ‘positive’ or ‘negative’, eccentricity is always applied in these cases.

Output:
  • The strengthening measure is added to the wall. Newly created walls and reinforcements are returned in a list.

L6 measures

viiapackage.strengthening.l6.l6j.viia_l6j(project: ViiaProject, variant: int, add_slab: bool = False)[source]

This function creates an L6-J-measure which adds a concrete slab to the existing foundation strips of the building. It thereby prevents uncontrolled displacement due to loss of load bearing capacity. Existing foundation strips are effectively merged into one slab, openings in the slabs are removed.

Warning

Function is currently not available, it requires updates, please send request to the VIIA automating team.

Note

This function is based on an algorithm in which the foundation strips are ordered according to their coordinates, after which the strips are connected by searching for points of consecutive strips that are closest to each other. The algorithm seems to work well, but it is very hard to capture all possibilities of defined foundation strips. It is therefore possible that errors occur or that the outcome of the function is not the desired foundation slab.

Note

For a merged foundation strip (add_slab=False) the geometry and material are equal to that of the first foundation strip in the list.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • variant (int): The variant number of the measure that is in the GMC.

  • add_slab (bool): Default value is False. If addSlab is True, a slab is added just above the foundation strips with reinforcement Ø12-150, effectively connecting all foundation walls to prevent uncontrolled deformations. If False, the existing foundation strips are merged into one strip without openings.

Output:
  • Foundation strips are merged into one slab and modelled in DIANA, or

  • Slab is added just above the foundation strips and modelled in DIANA

For example: >>> project.viia_l6j()

This example will apply the L6-J measure on the building, merging all foundation strips into one strip.

>>> project.viia_l6j(add_slab=True)

This example will apply the L6-J measure on the building, a new slab is created based one the definition of the foundation strips. The slab will be positioned just above the existing strips.

Functions for strengthening measures

viiapackage.strengthening.viia_check_measures.viia_check_measures(project: ViiaProject, object_measures: List[Dict[str, str]], myviia_measures: List[Dict[str, str]]) bool[source]

This function checks that the measures filled in myviia are the same as the measures in the model.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • object_measures (list of dict): A list of dictionaries of all the strengthening measures in the model combined with the NSCE measures provided by the user.

  • myviia_measures (list of dict): A list of dictionaries of all measures applied in MYVIIA.

Output
  • Returns a boolean with the result of the check.

  • Notification of verification is printed in log.

  • In case of differences, this is reported to user with a warning, but process will continue.

viiapackage.strengthening.viia_collect_strengthening_measures.viia_collect_strengthening_measures(project: ViiaProject, nsce_measures: Optional[Dict[str, str]] = None) List[Dict][source]

This function collects all the retrofitting measures in the model and returns a dictionary of the measures with its description and the type of element it is applied to (eg. PSSE or NSCE). The retrofitting measures from the model can be extended manually by the user for measures applied for NSCE.

Note

Some measures of the GMC are not yet available. Please report to automating team.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • nsce_measures (dict): Any applied NSCE measures can be provided manually to be added to the engineering report. Default value None, no NSCE measures are applied. Provide the information in a dictionary, with the GMC measure name as key and the explanation as value. For example {‘L4-I’: ‘Replacing load-bearing masonry wall with HSB wall’, ‘l4-O’: ‘Application of quakeshield strips only, inside’}.

Output
  • Returns a list of dictionaries of the applied measures for both PSSE and NSCE elements together with their description.

class viiapackage.strengthening.viia_gmc_measures.GMCMeasures[source]

Bases: object

Class of GMC strengthening measures.

Helper functions for application of strengthening measures

viiapackage.strengthening.helper_functions.find_max_min_z.viia_find_min_max_z(plane_points: List[List[float]], point: List[float])[source]

This function returns the intersections of a vertical line through a vertical plane. The plane (wall) may be angled in x- and y- direction. The shape of the plane is free to chose, as long as it is vertical.

Input:
  • plane_points (list with lists of 3 floats): The sorted points of a given plane. Coordinates in x-, y- and z- directionm e.g. [[0,1,2],[2,3,4],[3,6,4], etc.

  • point (list with 3 floats): The coordinates (x,y,z) of the requested point where vertical section is made. The z-coordinate is not used. For example: [0.1, 0.3, 2.3]

Output:

The z-coordinates of intersections are returned as list. Should always be an even number.

For example:
>>> viia_find_min_max_z([[0.0, 0.0, -0.175], [0.0, 0.0, 2.325], [0.0, 5.0, 4.325], [0.0, 5.0, 1.825]], [0, 5])

Returns the list: [[4.325], [1.8250000000000002]]

viiapackage.strengthening.helper_functions.find_wall_openings.viia_find_wall_openings(wall: Wall, direction_axis: List[float])[source]

This function finds the openings of the wall with respect to the defined local x-axis. This axis generally goes from left to right, seen from the inside (i.e. the direction of the outward wall vector). It returns a list that contains the extreme x- and y-coordinates of wall openings.

Input:
  • wall (obj): Object reference of wall shape.

  • direction_axis (list of 3 floats): Vector of the direction in which the points of the openings are ordered.

Output:
  • Returns a list with lists of 3 floats.

viiapackage.strengthening.helper_functions.l2_strengthening_base.viia_l2_base(project: ViiaProject, measure_type: str, variant: int, connection: Union[str, Interface, NoConnection] = None, shape_1: Surfaces = None, shape_2: Surfaces = None, shape_1_types: Union[Tuple[Surfaces], Surfaces] = <class 'rhdhv_fem.shapes.surfaces.surfaces.Surfaces'>, shape_2_types: Union[Tuple[Surfaces], Surfaces] = <class 'rhdhv_fem.shapes.surfaces.surfaces.Surfaces'>) Interface[source]

This function creates an L2-measure. It can create an interface in between two surfaces, or make an existing interface linear.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • measure_type (str): The L2 measure type that should be created. Currently ‘L2-005’, ‘L2-025’, ‘L2-043’, ‘L2-060’ are implemented.

  • variant (int): The variant number of the measure that is in the GMC.

  • connection (str or obj): The interface that has to be made linear or the NoConnection that should be replaced. Both the name or object reference can be provided. Default is None, in this case shape_1 and shape_2 should be provided.

  • shape_1 (str or obj): The object reference or name of the surface to what the interface should be applied. Default is None, in this case the interface should be provided.

  • shape_2 (str or obj): The object reference or name of the surface to what the interface should be applied. Default is None, in this case the interface should be provided.

  • shape_1_types (typle of classes or class): The types that are allowed for shape 1. Default is Surfaces.

  • shape_2_types (typle of classes or class): The types that are allowed for shape 2. Default is Surfaces.

Output:
  • The strengthening measure is added between shape_1 and shape_2 or the interface is made linear.

  • Returns the interface object reference of the measure.

For example:

  • To make a linear interface from a non-linear interface, the following input can be used:

>>> project.viia_l2_base(connection='name_of_interface')
  • To make a new linear interface between two shapes, the following input can be used:

>>> project.viia_l2_base(shape_1='name_of_first_shape', shape_2='name_of_second_shape')
viiapackage.strengthening.helper_functions.merge_openings_by_local_axis.viia_merge_openings(sorted_openings, local_axis, min_distance=0.0) List[List[float]][source]

This function merges openings that overlap in the direction of the localAxis. The openings must be sorted with respect to the defined local axis and also be aligned on this axis. It returns the sorted list that contains the extreme x- and y-coordinates of the merged openings.

Input:
  • sorted_openings (list with lists of lists of 3 floats): openings sorted and aligned with respect to the local_axis.

  • local_axis (list of 3 floats): ntb

  • min_distance (float): between consecutive openings, if less or equal distance, openings are merged.

Output:
  • Returns a list with lists of 3 floats.

For example:
>>> viia_merge_openings([[[1.0, 0.0, 0.0], [2.0, 0.0, 0.0]], [[1.8, 0.0, 0.0], [3.0, 0.0, 0.0]]], [1.0, 0.0, 0.0])

Returns the list: [[[1.0, 0.0, 0.0], [3.0, 0.0, 0.0]]]

viiapackage.strengthening.helper_functions.sort_openings_by_axis.viia_sort_openings(openings, axis)[source]

This function sorts a list of openings with respect to a defined axis. It returns the sorted list that contains the extreme coordinates of the openings in the direction of the provided axis.

Input:
  • openings (list with lists with lists of 3 floats)

  • localAxis (list of 3 floats)

Output:
  • Returns a list with lists of lists of 3 floats

For example:
>>> viia_sort_openings([[[2.0, 0.0, 0.0], [1.0, 0.0, 0.0]], [[3.8, 0.0, 0.0], [3.0, 0.0, 0.0]]], [-1.0, 0.0, 0.0])

Returns the list: [[[3.8, 0.0, 0.0], [3.0, 0.0, 0.0]], [[2.0, 0.0, 0.0], [1.0, 0.0, 0.0]]]

viiapackage.strengthening.helper_functions.viia_strengthening_shapes.viia_add_strengthening_shape(shape: Shapes, strengthening_shape: Union[Shapes, Connections]) Shapes[source]

Function to collect the shapes that are created for the strengthening measure. These are stored in the meta-data attribute of the shape.

Input:
  • shape (obj): Object reference of the original shape that is strengthened.

  • strengthening_shape (obj): Object reference of the newly added shape that represents some element of the strengthening measure.

Output:
  • The meta-data of the original shape is updated with the strengthened shape.

  • The original shape is returned.

viiapackage.strengthening.helper_functions.viia_strengthening_shapes.viia_check_shape_argument(project: ViiaProject, shape: [str, Shapes], function_name: str, check_strengthening: bool = True) Shapes[source]

This function checks the shape input argument and returns the shape as an object reference. If the shape is not recognised by the name an error is raised. Also when the shape is not an instance of Shape class an error is raised.

Input:
  • project (obj): VIIA project object containing collections of fem objects and project variables.

  • shape (obj): The object reference of the shape that has to be strengthened. Alternative (str): Name of the shape to be strengthened.

  • function_name (str): Name of the function for which the argument is provided (for logging).

  • check_strengthening (bool): When set to True, function will check if the shape is already strengthened. Otherwise, the strengthening will not be checked. Default value is True.

Output:
  • Returns the shape as an object reference or raises an error.