Module viiaSupports

This module contains the functions to create, remove and adjust the boundary supports in the object. Following the VIIA conventions on modelling the supports.

Shallow foundations

viiapackage.viiaSupports.viia_create_supports(project: ViiaProject, support_type: str = 'FixedBase', material_file: Optional[Union[str, Path]] = None, material_dictionary: Optional[Dict[Union[str, Path], List[Surfaces]]] = None, excluded_supported_surfaces: Optional[List[Fstrip]] = None, additional_supported_shapes: Optional[List[Union[Floor, Wall, Fstrip, Beam, Column, Points]]] = None)[source]

Function to create the shallow foundation supports. The shallow foundation can be modelled for fixed-base or flexbase. It will apply the supports to the foundation strips in the model. Additional supported surfaces can be supported by providing those in a list, and foundation strips can be excluded (if there is a mixed foundation for example where there are piles connecting to certain foundation strips).

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

  • support_type (str): Type of shallow foundation, available are ‘FixedBase’, ‘FlexBaseGlobal’ and ‘FlexBaseFinal’. Default value is ‘FixedBase’.

  • material_file (str): Name of the dat-file for the flexbase, the dat-file will be provided by the geotechnical engineer. It should be located in the workfolder and is only required in case of ‘FlexBaseGlobal’, or might be required for ‘FlexBaseFinal’. In case of ‘FlexBaseFinal’ it is assumed that this material should be applied on all supported surfaces, otherwise provide the material-dictionary instead. Default value is None. Alternative (path): The full path to the file can also be provided, the file location is then not required to be in the workfolder (still this is the suggested location).

  • material_dictionary (dict): Dictionary with the material properties for the ‘FlexBaseFinal’ supports. In this case multiple material files can be provided and supported surfaces should be linked to the material that should be applied on that support.

  • excluded_supported_surfaces (list with obj): List with object references or names of shapes which have to be excluded from the supported shapes list (not required). Default input is None, no foundation strips are excluded.

  • additional_supported_shapes (list with obj): List with object references of shapes which have to be supported in addition to shapes of class ‘Fstrip’ (not required). Default input is None, no shapes are added.

Output:
  • The supports are created according the requirements for the phase.

Helper-functions for shallow foundations

viiapackage.supports.shallow_foundation.calculate_standard_values.viia_calculate_shallow_foundation_stiffness(project: ViiaProject, mass: float, area: float, cut_off_frequency: float = 50) float[source]

Function to calculate the cut-off value for spring stiffness for the pile foundation based on the mass on the pile.

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

  • total_mass (float): Total mass of the building, in [kg].

  • cut_off_frequency (float): Limit for the stiffness calculation to prevent base isolation behaviour, in [Hz]. Default value for shallow foundations is 50 Hz.

Output:
  • Returns the value for the spring stiffness to be used in the model, in [N/m2/m], as a float.

viiapackage.supports.shallow_foundation.calculate_standard_values.viia_calculate_standard_values(project: ViiaProject, cut_off_frequency: float = 50) Tuple[str, Dict[str, Union[float, int, List[Union[float, int]]]]][source]

Function to retrieve the geotechnical properties for the shallow foundations in MYVIIA. This function does not validate the data. It filters the properties retrieved based on name and then returns the latest record.

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

  • cut_off_frequency (float): Limit for the stiffness calculation to prevent base isolation behaviour, in [Hz]. Default value for shallow foundations is 50 Hz.

Output:
  • Returns list with the different named shallow foundation properties.The list contains the unique named records in MYVIIA, filtered for the latest date.

viiapackage.supports.shallow_foundation.collect_shallow_foundation_myviia.viia_calculate_shallow_foundation_from_myviia(project: ViiaProject, data: Dict[str, Any]) Tuple[str, Dict[str, Union[float, int, List[Union[float, int]]]]][source]

Function to convert the geotechnical properties for the shallow foundations that are retrieved from MYVIIA to the required input for the create function of the flexbase shallow foundation material.

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

  • data (dict): Dictionary with the properties retrieved from MYVIIA.

Output:
  • Returns tuple with name of the material as string and the material properties in a dictionary.

viiapackage.supports.shallow_foundation.collect_shallow_foundation_myviia.viia_collect_shallow_foundation_from_myviia(project: ViiaProject) List[Dict[str, Any]][source]

Function to retrieve the geotechnical properties for the shallow foundations in MYVIIA. This function does not validate the data. It filters the properties retrieved based on name and then returns the latest record.

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

Output:
  • Returns list with the different named shallow foundation properties.The list contains the unique named records in MYVIIA, filtered for the latest date.

viiapackage.supports.shallow_foundation.collect_supported_shapes.viia_collect_supported_shapes(project: ViiaProject, excluded_supported_surfaces: Optional[List[Fstrip]] = None, additional_supported_shapes: Optional[List[Union[Floor, Wall, Fstrip, Beam, Column, Points]]] = None) List[Union[Fstrip, Floor, Wall, Fstrip, Beam, Column, Points]][source]

This function collects the list of supported surfaces for shallow foundations. This list contains all the foundation strip shapes in the project, except for the foundation strips provided in the excluded surfaces list. Additional shapes that need to be supported can be added to the list in additional supported shapes input list. The combined list of shapes is returned.

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

  • excluded_supported_surfaces (list with obj): List with object references or names of shapes which have to be excluded from the supported shapes list. Default input is None, no foundation strips are excluded.

  • additional_supported_shapes (list with obj): List with object references of shapes which have to be supported in addition to shapes of class ‘Fstrip’. Default input is None, no shapes are added.

Output:
  • Returns list of shapes that supports will be applied on.

viiapackage.supports.shallow_foundation.create_fixedbase.viia_create_shallow_foundation_fixedbase(project: ViiaProject, supported_shapes: List[Shapes])[source]

Function to create the fixedbase shallow foundation.

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

  • supported_shapes (list with obj): List with object references of shapes that are supported.

Output:
  • Returns list of created surface supports.

viiapackage.supports.shallow_foundation.create_flexbase.viia_create_shallow_foundation_flexbase(project: ViiaProject, supported_shapes: List[Surfaces], material: InterfaceBehaviour, support_set: SupportSet, counter: int = 1)[source]

Function to create the flexbase shallow foundation.

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

  • supported_shapes (list with obj): List with object references of surface shapes that are supported.

  • material (obj): Object reference of material for the interface behaviour of the flexbase shallow foundation.

  • support_set (obj): Object reference of support-set for the supports of the flexbase shallow foundation.

  • counter (int): Counter to use for the names of the supports and the interfaces.

Output:
  • Returns list of created surface supports and interfaces.

viiapackage.supports.shallow_foundation.create_material.viia_calculate_cut_off_value_for_stiffness(total_mass: float, area_foundation: float, cut_off_frequency: float = 50) float[source]

Function to calculate the cut-off value for spring stiffness based on the mass of the building and the foundation area.

Input:
  • total_mass (float): Total mass of the building(part), in [kg].

  • area_foundation (float): Total area of the shallow foundation, in [m2].

  • cut_off_frequency (float): Limit for the stiffness calculation to prevent base isolation behaviour, in [Hz]. Default value is 50 Hz.

Output:
  • Returns the spring stiffness value, in [N/m/m2], as a float.

viiapackage.supports.shallow_foundation.create_material.viia_calculate_friction_coefficient(project: ViiaProject, mass: float, horizontal_capacity: float) float[source]

This function calculates the friction coefficient based on the mass of the building and the horizontal capacity calculated by the geotechnical advisor.

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

  • mass (float): Mass of the building(part), in [kg].

  • horizontal_capacity (float): Value for the horizontal capacity of the shallow foundation, in [kN].

Output:
  • Returns the value of the friction coefficient, in [-], as a float.

viiapackage.supports.shallow_foundation.create_material.viia_convert_material_properties_from_myviia(project: ViiaProject, myviia_data: Dict[str, Any]) Dict[str, Any][source]

This function converts a record from the MYVIIA database to the required parameters in the viiaPackage.

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

  • myviia_data (dict): Dictionary with the data from the controller of the MYVIIA tool.

Output:
  • Returns dictionary with the retrieved data. Passes only data that could be retrieved from MYVIIA. No validation is performed on the output.

viiapackage.supports.shallow_foundation.create_material.viia_create_shallow_foundation_material(project: ViiaProject, material_name: str, properties: Dict[str, Union[float, int, List[Union[float, int]]]]) InterfaceBehaviour[source]

This function creates a material object for the shallow foundation flexbase interface behaviour. A dictionary with the material properties is converted to the required material model.

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

  • material_name (str): Name of the shallow foundation flexbase material.

  • properties (dict): Dictionary with the required material properties for the shallow foundation flexbase interface behaviour. The following keys should be present: ‘normal_stiffness_modulus_z’, ‘shear_stiffness_modulus_x’, ‘shear_stiffness_modulus_y’, ‘material_parameters’, ‘initial_state_values’, ‘rayleigh_mass_factor’ and ‘rayleigh_stiffness_factor’. All the values should be floats or integers, except input value for ‘material_parameters’ which should be a list of two floats or integers.

Output:
  • Returns the material for interface behaviour, required for the surface interface for flexbase shallow foundations.

viiapackage.supports.shallow_foundation.create_material.viia_get_shallow_foundation_material_properties_from_file(project: ViiaProject, material_file: Union[Path, str]) Tuple[str, Dict[str, Union[float, int, List[Union[float, int]]]]][source]

Function to read material data file from DIANA (in DIANA syntax) and convert to dictionary with the required material properties for the shallow foundation flexbase material. This function does not validate the data.

Note

This file is expected to be in a certain format.

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

  • material_file (str or Path): Name of the dat-file that is located in the working directory, or full path of location of the dat-file.

Output:
  • Returns dictionary with the retrieved data. Passes only data that could be retrieved from the file. No validation is performed on the output.

viiapackage.supports.shallow_foundation.remove_supports.viia_remove_shallow_foundation_supports(project: ViiaProject)[source]

This function removes all shallow foundation supports that were previously modelled.

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

Output:
  • All supports for shallow foundtions are removed.

Pile foundations

viiapackage.viiaSupports.viia_create_piles(project: ViiaProject, coordinates: List[List[float]], support_type: str = 'FixedBase', pile_dimension: Optional[float] = None, pile_shape: Optional[str] = None, cross_section: Optional[str] = None, pile_group: Optional[str] = None, new_pile_foundation: bool = True, is_linear: bool = False, pile_numbers: Optional[List[Union[int, str]]] = None, plot_diagram: bool = False, horizontal_stiffness_factor: float = 1.0) List[Union[Pile, PointSupport]][source]

Function to create the pile foundation supports. The pile foundation can be modelled for fixed-base or flexbase. It will apply the supports for piles in the model. The pile will be connected to the foundation strip surface at that location (surface shape in Fstrip class).

Note

If piles are located at the positions where there are several strips overlapping the same area at different height, the piles will be created under the lowest strip.

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

  • coordinates (list of lists 2 floats): The x- and y-coordinate of the positions of the piles. The z-coordinate should not be provided.

  • support_type (str): Type of shallow foundation, available are ‘FixedBase’, ‘FlexBaseGlobal’ and ‘FlexBaseFinal’. Default value ‘FixedBase’.

  • pile_dimension (float): Dimension used for the pile, can be diameter or width/height of the cross-section. Implementation based on the pile_shape, in [m]. This input is only used in FixedBase. Default value None.

  • pile_shape (str): Type of shape of the pile. If ‘circular’ is selected a circular cross-section is created otherwise a square cross-section. Default value is ‘square’. The shape should relate to the selected rebar configuration. This input is only used in FixedBase. Default value None.

  • cross_section (str): Alternative input for pile shape and dimension. The geometry of the pile cross-section, can be provided, following VIIA geometry name convention (e.g. ‘D200’ for circular cross-section with 200 mm diameter, ‘200x200’ for rectangular cross-section with 200 mm width). Note that only square piles are allowed. This input is only used in FixedBase and will only be used if pile_shape and pile_dimension are None. Default value None.

  • pile_group (str): Name of the pile group (e.g. A, B, C…), to retrieve pile data from MYVIIA.

  • new_pile_foundation (bool): Select to remove all piles if foundation type is not changed (you should set to False if you are adding multiple pile-groups for all next pile-groups). Default value is True, removing any existing piles.

  • is_linear (bool): The piles can be modelled with linear material properties. This entails no failure criteria for the springs and linear concrete, without rebar modelling. Default value is False, normal non-linear behaviour is modelled.

  • pile_numbers (list): List of pile numbers that is used to number the piles. The user can overrule the auto-numbering by providing this list. The list should be of equal length as the list of coordinates. Default value is None, in which case the piles are numbered regularly (based on order of creation). It is also possible to provide a list of strings.

  • plot_diagram (bool): Option to create plot of the force-elongation diagram for the pile group. It will create an image in a folder ‘Pile properties’ in the working folder. Default value is False. Only applicable for flexbase piles, value ignored in other situations.

  • horizontal_stiffness_factor (float): Specifies the factor to adjust the horizontal stiffness of the piles. Default value is 1.0. Only applicable for flexbase piles, value ignored in other situations.

Output:
  • Returns list of created piles and point supports.

Update pile foundation for Rob-test

viiapackage.supports.pile_foundation.rob_test.viia_remove_temporarily_pile_supports_for_rob_test(project: ViiaProject)[source]

This function removes the temporarily added vertical restraints on the bottom node of the piles to perform the rob-test. It counters the viia_update_pile_supports_for_rob_test function.

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

Output:
  • The pointsupports for piles in the rob-test constraining the vertical degree of freedom are removed. This is done based on the name of the support, if it contains the text ‘-temp_for_robtest’.

viiapackage.supports.pile_foundation.rob_test.viia_update_pile_supports_for_rob_test(project: ViiaProject) List[PointSupport][source]

This function temporarily adds vertical restraints on the bottom node of the piles. Then the rob-test can be performed which applies a vertical displacement on those nodes. Therefore, it requires a constraint and not a boundary spring. The boundary spring can remain in the model.

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

Output:
  • Pointsupports for piles are created constraining the vertical degree of freedom. The name of the support contains the text ‘-temp_for_robtest’. Which is used to have the possibility to remove after the rob-test analysis.

Helper-functions for pile foundations

viiapackage.supports.pile_foundation.collect_pile_foundation_myviia.viia_get_pile_properties_from_myviia(project: ViiaProject, pile_group: str, fixed_base: bool = False, plot: bool = False) dict[source]

Function to calculate and convert pile properties for the modelling in DIANA. Function is used when creating piles with flex base. Formulas used here are referred to excel tool ‘VIIA_SXXX_Paalgegevens_NLTH_v1.12.xlsm’ version v1.12 (Excel sheet is only used for validation, not as a production tool). Find the Excel here: https://royalhaskoningdhv.box.com/s/8wfzkhyfvdldwn7fj3hh5j31q3ieaync

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

  • pile group (str): Name of the pile group, choosing from A, B, C, etc. (only single letter is allowed). Make sure to use the same name as specified in MYVIIA.

  • fixed_base (bool): Select if the pile properties for only fixed base are required. Default value is False, collecting all pile-properties for flexbase.

  • plot (bool): Option to create the force-elongation diagrams for the pile group. It will create the diagram in a folder ‘Pile properties’ in the working folder. Default value is False, not generating the pictures.

Output:
  • Returns a dictionary that contains all pile properties for the chosen pile group.

viiapackage.supports.pile_foundation.connect_foundation.viia_connect_all_piles(project: ViiaProject, coordinates: List[List[float]]) List[Node][source]

Function to connect all coordinates for the piles to the foundation strip surface shapes.

viiapackage.supports.pile_foundation.connect_foundation.viia_connect_fstrip(project: ViiaProject, coordinate: List[float]) Node[source]

This function finds the lowest foundation strip present on the x and y coordinates. It selects the lowest one in vertical direction. It converts the point to a shape-geometry Node and adds that node to the foundation strip surface shape. This can be an internal line or a point on the contour.

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

  • coordinate (list of 2 floats): The x- and y-coordinate of the position of the pile. The z-coordinate should not be provided.

Output:
  • Finds the foundation strip located on that position.

  • Converts the point to a node and adds that as an internal point or contour point of the foundation strip.

viiapackage.supports.pile_foundation.create_fixedbase.viia_create_piles_fixedbase(project: ViiaProject, connecting_nodes: List[Node], pile_group: str, pile_dimension: float, pile_shape: str = 'square', counter: int = 1, pile_numbers: Optional[List[Union[int, str]]] = None) List[Union[Pile, PointSupport]][source]

This function creates piles for the fixed-base pile foundation.

Note

If piles are located at the positions where there are several strips overlapping the same area at different height, the piles will be created under the lowest strip.

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

  • connecting_nodes (list of nodes): List with the nodes, which are the connecting points on the foundation strips. These nodes should be part of the Fstrip (on contour or as internal point).

  • pile_group (str): name of the pile group (e.g. A, B, C…), to retrieve pile data from MYVIIA.

  • pile_dimension (float): Dimension used for the pile, can be diameter or width/height of the cross-section. Implementation based on the pile_shape, in [m].

  • pile_shape (str): Type of shape of the pile. If ‘circular’ is selected a circular cross-section is created otherwise a square cross-section. Default value is ‘square’. The shape should relate to the selected rebar configuration.

  • counter (int): Counter to create the name of the pile with. Default value is 1.

  • pile_numbers (list): List of pile numbers that is used to number the piles. The user can overrule the auto-numbering by providing this list. The list should be of equal length as the list of coordinates. Default value is None, in which case the piles are numbered regularly (based on order of creation). It is also possible to provide a list of strings.

Output:
  • Returns list of created piles and point supports.

viiapackage.supports.pile_foundation.create_flexbase.viia_create_piles_flexbase(project: ViiaProject, connecting_nodes: List[Node], pile_group: str, counter: int = 1, is_linear: bool = False, pile_numbers: Optional[List[Union[int, str]]] = None, plot_diagram: bool = False, horizontal_stiffness_factor: float = 1.0) List[Union[Part, PointSupport]][source]

This function creates piles in a pile-group for the flexbase pile foundation.

Note

If piles are located at the positions where there are several strips overlapping the same area at different height, the piles will be created under the lowest strip.

Warning

This function uses the pile properties on MYVIIA. Make sure to complete the workflow for piles to calculate the pile-properties. This requires involvement of the geotechnical advisor. In case is_linear is selected, less information from MYVIIA is required.

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

  • connecting_nodes (list of nodes): List with the nodes, which are the connecting points on the foundation strips. These nodes should be part of the Fstrip (on contour or as internal point).

  • pile_group (str): Name of the pile group (e.g. A, B, C…), to retrieve pile data from MYVIIA. Use the name that is shown in MYVIIA.

  • counter (int): Counter for the numbering of the piles. Default starting at 1, but in case of multiple pile-groups in the model, the numbering should start at higher numbers.

  • is_linear (bool): Select to create flexbase with linear material properties and without rebar. Default value is False, creating nonlinear materials and rebar for the piles.

  • pile_numbers (list): List of pile numbers that is used to number the piles. The user can overrule the auto-numbering by providing this list. The list should be of equal length as the list of coordinates. Default value is None, in which case the piles are numbered regularly (based on order of creation). It is also possible to provide a list of strings.

  • plot_diagram (bool): Option to create plot of the force-elongation diagram for the pile group. It will create an image in a folder ‘Pile properties’ in the working folder. Default value is False.

  • horizontal_stiffness_factor (float): Specifies the factor to adjust the horizontal stiffness of the piles. Default value is 1.0.

Output:
  • Returns list of created piles and point supports.

viiapackage.supports.pile_foundation.create_geometry.viia_create_pile_huanbeam_geometry(project: ViiaProject, pile_basename: str, pile_dimension: float, pile_shape: str = 'square') Geometry[source]

This function creates the rectangular or circular geometry for the Huan-beam in the piles.

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

  • pile_basename (str): Basename of the geometry. For example “PAAL-TYPE-A”.

  • pile_dimension (float): Dimension used for the pile, can be diameter or width/height of the cross-section. Implementation based on the pile_shape, in [m].

  • pile_shape (str): Type of shape of the pile. If ‘circular’ is selected a circular cross-section is created otherwise a square cross-section. Default value is ‘square’.

Output:
  • Returns the rectangular or circular geometry for the Huan-beam.

viiapackage.supports.pile_foundation.create_geometry.viia_create_pile_rebar_geometry(project: ViiaProject, pile_basename: str, rebar_dimension: float) Geometry[source]

This function creates the embedded bar geometry for the rebar of the Huan-beam in the piles.

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

  • pile_basename (str): Basename of the geometries. For example “PAAL-TYPE-A”.

  • dim_rebar (float): Diameter of the rebar, in [m].

Output:
  • Returns the embedded bar reinforcement geometry for the rebar of the Huan-beam.

viiapackage.supports.pile_foundation.create_geometry.viia_create_pile_rotational_spring_geometry(project: ViiaProject) Geometry[source]

Create the geometry for the rotational springs of the pile.

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

Output:
  • Returns the geometry for the rotational spring.

viiapackage.supports.pile_foundation.create_geometry.viia_create_pile_translational_spring_geometry(project: ViiaProject) Geometry[source]

Create the geometry for the translational springs of the pile.

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

Output:
  • Returns the geometry for the translational spring.

viiapackage.supports.pile_foundation.create_material.viia_create_pile_horizontal_translational_spring_material(project: ViiaProject, direction: str, pile_basename: str, pile_properties: Dict[str, Dict[str, Union[float, int, List[float], List[int], List[List[float]]]]], is_linear: bool = False) TranslationalSpring[source]

Create the material for springs in horizontal translational-direction for pile.

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

  • direction (str): Direction for the translational spring, can be ‘x’ or ‘y’.

  • pile_basename (str): Basename of the materials, it will be extended with the corresponding spring direction.

  • pile_properties (dict): Dictionary contains calculated pile properties based on pile data from MYVIIA.

  • is_linear (bool): Select to create linear or non-linear spring material. Default value False, creating non-linear spring material. For non-linear material, additional properties are used.

Output:
  • Returns the material for translational spring.

viiapackage.supports.pile_foundation.create_material.viia_create_pile_huanbeam_material(project: ViiaProject, pile_basename: str, pile_properties: Dict[str, Dict[str, Union[float, List[float]]]], is_linear: bool = False) Concrete[source]

This function creates the (concrete) material for the Huan-beam in the piles.

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

  • pile_basename (str): Basename of the materials. For example “PAAL-TYPE-A”.

  • is_linear (bool): Argument that creates a linear or non-linear concrete material model for the Huan-beam.

  • pile_properties (dict): Dictionary contains calculated pile properties based on pile data from MYVIIA.

Output:
  • Returns the material for the Huan-beam, created according to the data from MYVIIA.

viiapackage.supports.pile_foundation.create_material.viia_create_pile_rebar_material(project: ViiaProject, pile_basename: str, pile_properties: Dict[str, Dict[str, Union[float, List[float]]]]) ReinforcementSteel[source]

This function creates the steel reinforcement material for the rebar of the Huan-beam in the piles.

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

  • pile_basename (str): Basename of the materials. For example “PAAL-TYPE-A”.

  • pile_properties (dict): Dictionary contains calculated pile properties based on pile data from MYVIIA.

Output:
  • Returns the steel reinforcement material for the rebar of the Huan-beam, created according to the data from MYVIIA.

viiapackage.supports.pile_foundation.create_material.viia_create_pile_rotational_spring_material(project: ViiaProject, direction: str, pile_basename: str, pile_properties: Dict[str, Dict[str, Union[float, List[List[float]]]]]) RotationalSpring[source]

Create the material for springs in rotational-direction for pile.

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

  • direction (str): Direction for the rotational spring, can be ‘x’ or ‘y’.

  • pile_basename (str): Basename of the materials, it will be extended with the corresponding spring direction.

  • pile_properties (dict): Dictionary contains calculated pile properties based on pile data from MYVIIA.

Output:
  • Returns the material for rotational spring.

viiapackage.supports.pile_foundation.create_material.viia_create_pile_vertical_translational_spring_material(project: ViiaProject, pile_basename: str, pile_properties: Dict[str, Dict[str, Union[float, List[List[float]]]]], is_linear: bool = False) TranslationalSpring[source]

Create the material for springs in vertical translational-direction for pile.

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

  • pile_basename (str): Basename of the materials, it will be extended with the corresponding spring direction.

  • pile_properties (dict): Dictionary contains calculated pile properties based on pile data from MYVIIA.

  • is_linear (bool): Select to create linear or non-linear spring material. Default value False, creating non-linear spring material. For non-linear material, additional properties are used.

Output:
  • Returns the material for translational spring.

viiapackage.supports.pile_foundation.relative_coordinates_rebar.viia_relative_coordinates_pile_rebar(rebar_configuration: str, pile_dimension: float, edge_distance: float, pile_shape: str = 'square') List[List[float]][source]

This function creates a list with coordinates of the rebar relative to the centre of the pile.

Input:
  • rebar_configuration (str): Configuration of the applied rebar, as string. Select for square or rectangular pile cross-sections from ‘V4’, ‘V5’, ‘V8’ or ‘V9’ or for circular pile cross-sections from ‘R1’, ‘R2’ etc.

  • pile_dimension (float): Dimension used for the pile, can be diameter or width/height of the cross-section. Implementation based on the pile_shape, in [m].

  • edge_distance (float): The distance from center of rebar to the contour of the pile cross-section. This value is limited to half of the pile dimension, in [m].

  • pile_shape (str): Type of shape of the pile. If ‘circular’ is selected a circular cross-section is created otherwise a square cross-section. Default value is ‘square’. The shape should relate to the selected rebar configuration.

Output:
  • Returns a list with rebar locations relative to the centre of the pile in [m].

viiapackage.supports.pile_foundation.remove_supports.viia_remove_pile_foundation_supports(project: ViiaProject)[source]

This function removes all pile foundation supports that were previously modelled.

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

Output:
  • All supports for pile foundtions are removed.

Helper-functions for determining pile properties

viiapackage.supports.pile_foundation.pile_properties.analyse_force_elongation_curve.viia_analyse_force_elongation_curve(data_dict: dict)[source]

Function to calculate yield stiffness of pile horizontal spring based on geo inputs. This is done by finding the value in the force-elongation diagram, where the force is equal to the yield capacity value.

Input:
  • data_dict (dict): Dictionary contains geo inputs for the calculation.

Output:
  • Returns yield_stiffness as a float.

viiapackage.supports.pile_foundation.pile_properties.calculate_coupled_system_properties.viia_calculate_coupled_system_properties(project: ViiaProject, data_dict: dict, yield_stiffness: float, folder: Optional[Path] = None) Tuple[float, float][source]

Function to calculate coupled system frequency and stiffness.

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

  • data_dict (dict): Dictionary contains geo inputs for the calculation.

  • yield_stiffness (float): Yield stiffness for the pile, in [N/m].

  • folder (path): Optional input to specify the input folder. By default the default location for the file is used, which should be the location for the VIIA workflow. Input used for component testing.

Output:
  • Returns tuple with two floats: The system frequency, in [Hz], and system stiffness, in [N/m].

viiapackage.supports.pile_foundation.pile_properties.calculate_equivalent_damping.viia_calculate_equivalent_damping(data_dict: dict, frequency: float) float[source]

Function to calculate equivalent damping for calculating pile horizontal spring damping.

Input:
  • data_dict (dict): Dictionary contains geo inputs for the calculation.

  • frequency (float): Frequency used for the calculation.

Output:
  • Returns damping as a float.

viiapackage.supports.pile_foundation.pile_properties.calculate_huan_beam_properties.viia_calculate_huan_beam_properties(project: ViiaProject, data: dict) Dict[str, float][source]

Function to calculate 1D huan beam properties for DIANA use, based on complete pile data.

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

  • data_dict (dict): Dictionary contains geo inputs for the calculation. The ‘concrete_strength_grade’ is required key of the dictionary.

Output:
  • Returns huan beam properties as a dictionary.

viiapackage.supports.pile_foundation.pile_properties.calculate_pile_reinforcement.viia_calculate_pile_reinforcement(data: dict) Dict[str, float][source]

Function to calculate pile reinforcement properties, based on complete pile data.

Input:
  • data_dict (dict): Dictionary contains geo inputs for the calculation.

Output:
  • Returns pile reinforcement properties as a dictionary.

viiapackage.supports.pile_foundation.pile_properties.calculate_pile_strength.viia_calculate_pile_strength(project: ViiaProject, data_dict: dict) Tuple[float, float][source]

Function to calculate pile vertical spring nonlinear properties.

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

  • data_dict (dict): Dictionary contains geo inputs for the calculation.

Output:
  • Returns tuple of two floats: Tensile capacity and compressive capacity.

viiapackage.supports.pile_foundation.pile_properties.calculate_spring_values.viia_calculate_spring_values(project: ViiaProject, data: dict, folder: Optional[Path] = None) dict[source]

Function to calculate pile spring stiffness and damping values of the horizontal pile springs.

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

  • data_dict (dict): Dictionary contains geo inputs for the calculation.

  • folder (path): Optional input to specify the input folder. By default, the default location for the file is used, which should be the location for the VIIA workflow. Input used for component testing.

Output:
  • Returns spring properties as a dictionary.

viiapackage.supports.pile_foundation.pile_properties.cut_off_pile_stiffness_horizontal.viia_cut_off_pile_stiffness_horizontal(project: ViiaProject, stiffness: float, mass: float, cut_off_frequency: float = 30) float[source]

Function to calculate the cut-off value for spring stiffness for the pile foundation based on the mass on the pile.

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

  • stiffness (float): Calculated horizontal pile stiffness, in [N/m].

  • total_mass (float): Total mass on the pile, in [kg].

  • cut_off_frequency (float): Limit for the stiffness calculation to prevent base isolation behaviour, in [Hz]. Default value is 30 Hz.

Output:
  • Returns the value for the horizontal spring stiffness to be used in the model, in [N/m], as a float.

viiapackage.supports.pile_foundation.pile_properties.get_building_fundamental_frequency.viia_get_building_fundamental_frequency(project: ViiaProject, folder: Optional[Path] = None) float[source]

Function to retrieve building fundamental frequency from latest A3 results.

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

  • folder (path): Optional input to specify the input folder. By default the default location for the file is used, which should be the location for the VIIA workflow. Input used for component testing.

Output:
  • Returns fundamental frequency of the building as a float.

viiapackage.supports.pile_foundation.pile_properties.plot_force_elongation_diagram.viia_plot_force_elongation_diagram(project: ViiaProject, pile_group: str, x_backbone: List[float], y_backbone: List[float], x_elastic: List[float], y_elastic: List[float], x_plastic: List[float], y_plastic: List[float]) Path[source]

This function creates a plot of the force elongation diagram provided by the geotechnical advisor, including the unloading stiffness diagram and derived plastic diagram used in the subroutine. Plot is saved in pile-properties folder in the workfolder.

Other functions for supports

Boundary springs static analyses

viiapackage.supports.create_boundary_springs.viia_create_all_boundary_springs_for_static_analysis(project: ViiaProject, spring_stiffness: float = 20, exclude_shapes: List[Lines] = None) List[BoundarySpring][source]

Creates boundary springs at the ends of Beams and Columns. These supports are needed to prevent rotation around the longitudinal axis of those shapes during static calculation. Note the data model TORSTI only works during transient analyses in DIANA.

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

  • spring_stiffness (float): Rotational stiffness, in [Nm/rad] for the boundary springs. Default value 20 Nm/rad.

  • exclude_shapes (list of obj): List of object references for line-shapes (beams and columns) to be excluded from the boundary spring application.

Output:
  • List of all the created boundary springs.

viiapackage.supports.create_boundary_springs.viia_create_boundary_springs_for_static_analysis(project: ViiaProject, shapes: List[Union[Beam, Column]], spring_stiffness: float = 20) List[BoundarySpring][source]

Creates boundary springs at the ends of the given shapes (columns and beams). These supports are needed to prevent rotation around the longitudinal axis of those shapes during static calculation. Note the data model TORSTI only works during transient analyses in DIANA.

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

  • shapes (list of objects): Shapes for which the boundary springs should be made.

  • spring_stiffness (float): Stiffness [Nm/rad] for the boundary springs.

Output:
  • Returns list of all the created boundary springs.

Line supports for foundation walls

viiapackage.supports.create_line_supports.viia_add_linesupport_to_wall(wall: Wall) List[LineSupport][source]

This function applies a line-support to the horizontal bottom side of the wall.

Input:
  • wall (obj): Object reference of wall to apply line-support on.

Output:
  • Function creates a line-support on the bottom horizontal line of the wall shape.

viiapackage.supports.create_line_supports.viia_create_line_supports_for_foundation_walls(project: ViiaProject, walls: Optional[List[Wall]])[source]

This function applies line-support to all wall elements with ‘FUNDERINGSWANDEN’ in name.

Note

Applying line-supports is not the default procedure and will interfere with the result handling. Only apply this function if you realy require it. Always discuss with your lead engineer.

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

  • walls (objs): Optional object references to wall shapes to which line supports need to be applied as well. Alternative (strings): Names of the walls to which line-supports need to be applied.

Output:
  • Line-support is created at the bottom side of the foundation walls (‘FUNDERINGSWANDEN’ in name) and additional given walls.

Remove supports

viiapackage.supports.remove_supports.viia_remove_supports(project: ViiaProject)[source]

This function removes all shallow foundation supports that were previously modelled.

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

Output:
  • All supports for shallow foundtions are removed.