Karamba3D v3
  • Welcome to Karamba3D
  • New in Karamba3D 3.1
  • See Scripting Guide
  • See Manual 2.2.0
  • 1 Introduction
    • 1.1 Installation
    • 1.2 Licenses
      • 1.2.1 Cloud Licenses
      • 1.2.2 Network Licenses
      • 1.2.3 Temporary Licenses
      • 1.2.4 Standalone Licenses
  • 2 Getting Started
    • 2 Getting Started
      • 2.1 Karamba3D Entities
      • 2.2 Setting up a Structural Analysis
        • 2.2.1 Define the Model Elements
        • 2.2.2 View the Model
        • 2.2.3 Add Supports
        • 2.2.4 Define Loads
        • 2.2.5 Choose an Algorithm
        • 2.2.6 Provide Cross Sections
        • 2.2.7 Specify Materials
        • 2.2.8 Retrieve Results
      • 2.3 The Karamba3D Menu
      • 2.4 User Settings
      • 2.5 Physical Units
      • 2.6 Asynchronous Execution of Karamba3D Components
      • 2.7 Quick Component Reference
  • 3 In Depth Component Reference
    • 3.0 Settings
      • 3.0.1 License
    • 3.1 Model
      • 3.1.1 Assemble Model
      • 3.1.2 Disassemble Model
      • 3.1.3: Modify Model
      • 3.1.4: Connected Parts
      • 3.1.5: Activate Element
      • 3.1.6 Create Linear Element
        • 3.1.6.1 Line to Beam
        • 3.1.6.2 Line to Truss
        • 3.1.6.3 Connectivity to Beam
        • 3.1.6.4: Index to Beam
      • 3.1.7 Create Surface Element
        • 3.1.7.1: Mesh to Shell
        • 3.1.7.2: Mesh to Membrane
      • 3.1.8: Modify Element
      • 3.1.9: Point-Mass
      • 3.1.10: Disassemble Element
      • 3.1.11: Make Element-Set
      • 3.1.12: Orientate Element
      • 3.1.13: Dispatch Elements
      • 3.1.14: Select Elements
      • 3.1.15: Support
    • 3.2: Load
      • 3.2.1: General Loads
      • 3.2.2: Beam Loads
      • 3.2.3: Disassemble Mesh Load
      • 3.2.4 Load-Case-Combinations
        • 3.2.5.1 Load-Case-Combinator
        • 3.2.5.2 Disassemble Load-Case-Combinaton
        • 3.2.5.3 Load-Case-Combination Settings
    • 3.3: Cross Section
      • 3.3.1: Beam Cross Sections
      • 3.3.2: Shell Cross Sections
      • 3.3.3: Spring Cross Sections
      • 3.3.4: Disassemble Cross Section
      • 3.3.5: Eccentricity on Beam and Cross Section
      • 3.3.6: Modify Cross Section
      • 3.3.7: Cross Section Range Selector
      • 3.3.8: Cross Section Selector
      • 3.3.9: Cross Section Matcher
      • 3.3.10: Generate Cross Section Table
      • 3.3.11: Read Cross Section Table from File
    • 3.4: Joint
      • 3.4.1: Beam-Joints
      • 3.4.2: Beam-Joint Agent
      • 3.4.3: Line-Joint
    • 3.5: Material
      • 3.5.1: Material Properties
      • 3.5.2: Material Selection
      • 3.5.3: Read Material Table from File
      • 3.5.4: Disassemble Material
    • 3.6: Algorithms
      • 3.6.1: Analyze
      • 3.6.2: AnalyzeThII
      • 3.6.3: Analyze Nonlinear WIP
      • 3.6.4: Large Deformation Analysis
      • 3.6.5: Buckling Modes
      • 3.6.6: Eigen Modes
      • 3.6.7: Natural Vibrations
      • 3.6.8: Optimize Cross Section
      • 3.6.9: BESO for Beams
      • 3.6.10: BESO for Shells
      • 3.6.11: Optimize Reinforcement
      • 3.6.12: Tension/Compression Eliminator
    • 3.7 Results
      • 3.7.1 General Results
        • 3.7.1.1 ModelView
        • 3.7.1.2 Result Selector
        • 3.7.1.3 Deformation-Energy
        • 3.7.1.4 Element Query
        • 3.7.1.5 Nodal Displacements
        • 3.7.1.6 Principal Strains Approximation
        • 3.7.1.7 Reaction Forces
        • 3.7.1.8 Utilization of Elements
        • 3.7.1.9 ReactionView
      • 3.7.2 Results on Beams
        • 3.7.2.1 BeamView
        • 3.7.2.2 Beam Displacements
        • 3.7.2.3 Beam Forces
        • 3.7.2.4 Node Forces
      • 3.7.3 Results on Shells
        • 3.7.3.1 ShellView
        • 3.7.3.2 Line Results on Shells
        • 3.7.3.3 Result Vectors on Shells
        • 3.7.3.4 Shell Forces
        • 3.7.3.5 Shell Sections
    • 3.8 Export
      • 3.8.1 Export Model to DStV
      • 3.8.2 Json/Bson Export and Import
      • 3.8.3 Export Model to SAF
      • 3.8.4 Export/Import Model to and from Speckle (WIP)
    • 3.9 Utilities
      • 3.9.1: Mesh Breps
      • 3.9.2: Closest Points
      • 3.9.3: Closest Points Multi-dimensional
      • 3.9.4: Cull Curves
      • 3.9.5: Detect Collisions
      • 3.9.6: Get Cells from Lines
      • 3.9.7: Line-Line Intersection
      • 3.9.8: Principal States Transformation
      • 3.9.9: Remove Duplicate Lines
      • 3.9.10: Remove Duplicate Points
      • 3.9.11: Simplify Model
      • 3.9.12: Element Felting
      • 3.9.13: Mapper
      • 3.9.14: Interpolate Shape
      • 3.9.15: Connecting Beams with Stitches
      • 3.9.16: User Iso-Lines and Stream-Lines
      • 3.9.17: Cross Section Properties
      • 3.9.18 Surface To Truss
      • 3.9.19 Head-Up Display Legend
    • 3.10 Parametric UI
      • 3.10.1: View-Components
      • 3.10.2: Rendered View
  • Troubleshooting
    • 4.1: Miscellaneous Questions and Problems
      • 4.1.0: FAQ
      • 4.1.1: Installation Issues
      • 4.1.2: Purchases
      • 4.1.3: Licensing
      • 4.1.4: Runtime Errors
      • 4.1.5: Definitions and Components
      • 4.1.6: Default Program Settings
    • 4.2: Support
  • Appendix
    • A.1: Release Notes
      • Work in Progress Versions
      • Older Versions
      • Version 2.2.0
      • Version 2.2.0 WIP
      • Version 1.3.3
      • Version 1.3.2 build 190919
      • Version 1.3.2 build 190731
      • Version 1.3.2 build 190709
      • Version 1.3.2
    • A.2: Background information
      • A.2.1: Basic Properties of Materials
      • A.2.2: Additional Information on Loads
      • A.2.3: Tips for Designing Statically Feasible Structures
      • A.2.4: Performance Optimization in Karamba3D
      • A.2.5: Natural Vibrations, Eigen Modes and Buckling
      • A.2.6: Approach Used for Cross Section Optimization
    • A.3: Workflow Examples
    • A.4: Bibliography
Powered by GitBook
On this page
  • Export of Surfaces
  • Export of Surface-Loads
  1. 3 In Depth Component Reference
  2. 3.8 Export

3.8.3 Export Model to SAF

Previous3.8.2 Json/Bson Export and ImportNext3.8.4 Export/Import Model to and from Speckle (WIP)

Last updated 7 months ago

SAF stands for "Structural Analysis Format" and is a Excel-bases, open format for the exchange of structural models. Details can be found under https://www.scia.net/en/innovations/structural-analysis-format-saf.

The Karamba3D SAF exporter supports the following SAF features:

  • export of beams, slabs, plates and shells.

  • inclusion of beam and truss results for designing elements and connections in e.g. IDEA Statica.

  • export of loads and load-cases, point- and line-joints,...

Fig. 3.8.3.1 shows the "Export Model to SAF"-component in action. It takes a Karamba3d model as input and outputs an xlsx-file with the SAF model (see the example definition "SAF_SimpleCanopyExport.gh" on the bottom of the page). In case the user does not specify a Filepath the SAF lsx-file gets stored on the Desktop under the name "Karamba3DModel.xlsx".

Sometimes one wants to limit the exported load-cases to a subset of those available in the model. Use the "LCases" input-plug to specify the names of the load-cases and load-case-combinations to be exported. By defaukl all load-cases and load-case-combinations in the model get exported. The hint in section Load-Case-Combinations explains how load-cases and load-case-combinations can be excluded from the default list.

The export of large models can take some time. This is why one needs to supply a "True"-value at the input-plug "Export?" to initiate the process.

The submenus "Project Info" and "Model Info" can be used to specify detailed information that gets included in the SAF file. For a description of the individual inputs see https://www.saf.guide/en/stable/getting-started/project-and-model-specifications/README.html. The value-lists visible in Fig. 3.8.3.1 can be created by right-clicking on the component and selecting "Expand ValueLists" from the context menu.

The submenu "Export Options" contains further input that controls SAF-export:

  • "LSeg": When exporting cross section forces of 1-D elements this input specifies the maximum distance between result sections. The default value is "-1": a negative number means that the Karamba3D model setting is used. The latter can be specified in the "ModelView"-component under "Render Settings" and "Length/Segment".

  • "MaxFaces": Curved surface get exported based on their mesh: each mesh face then correponds to a surface. For very fine meshes this may lead to excessivley large SAF-files which take a ölong time to create. The "MaxFaces"-input sets the maximum number of faces per surface. Surfaces which exceed that number do not get exported.

  • "Version": This lets one specify the version of SAF to be used. It defaults to "2.3.0". Not all programs support the latest version of SAF. At the time of writing Dlubal's RFEM 6 supports SAF 1.0.5.

  • "CroSecConv": The export of cross-sections to different FE-programs can be cumbersome because their exact naming is not standardized. The "CroSecConv" input-plug can be used to specify a conversion table for cross section names for export. The file is expected to be a human readable CSV-file of the following format: ";name;alias-name". For an example see "CrossSectionNameAliases.csv" in the folder "CrossSections" of the Karamba3D installation folder. In case of multiple alias names the first one counts.

Export of Surfaces

The possibility to export surfaces and surface loads as compact entities represents a major advantage of SAF over other line based formats like DAStV.

Flat surfaces may be bounded by straight lines, arcs and spline. These surfaces may contain arbitrary holes. In order to get this geometry data across to SAF use the Karamba3D Mesher (see here) for including it into the structural model. This mesher supplements the mesh with the underlying surface which allows for a clean export-data. Figure 3.8.3.2 shows the result of the example file "SAF_FlatSurfaceWithHoleExport.gh".

When point-loads or supports are placed on the curved boundary of a surface it may happen that an error occurs on import. The reason lies in numerical inacuracies which make the support or point-load position lie slightly outside the surface. In such cases try to move the points slightly to the inside and use MeshBreps "IPts" input-plug to supply those points as inclusion points of the mesh.

When exported to a SAF xlsx-file and imported into SCIA Engineer the result is a clean geometry as can be seen in fig. 3.8.3.3.

In case of curved surfaces the individual mesh faces get exported as surfaces which may lead to excessive computation times and file sizes. The "MaxFaces"-input under "Export Options" sets the default maximum number of mesh-faces to 2000. Change this value in case of larger meshes.

Export of Surface-Loads

In Karamba3D distributed loads on surfaces can be modelled using MeshLoads. Similar to surfaces, flat MeshLoads which act on surfaces lend themselves to a clean SAF export which comprises the surface-boundary data only. As for surfaces the condition is, that the MeshLoads's mesh was created using the "MeshBreps"-component - since this leaves the mesh connected with the underlying brep. Using meshes without underlying surfaces also works - each mesh face is then exported as a single surface load. This also applies to loads specified on curved surfaces. Fig. 3.8.3.4 shows an exported model with an arbitrarily placed surface load.

In Karamba3D MeshLoads work differently than "SurfaceActionFree" in SAF. The latter apply to surfaces only. MeshLoads however may also cause line-loads on beams when being inside the loads-distribution range. Currently the SAF exporter of Karamba3D exports all MeshLoads as "SurfaceActionFree". In case one wants to create distributed loads on beams - like in fig. 3.8.3.1 one needs to apply the workaround shown in 3.8.3.5 and exemplified in "SAF_SimpleCanopyExport.gh". There those MeshLoads which shall act on beams get first selected and then disassembled into line-loads. The reassembled model can then be exported.

70KB
SimpleCanopy_SAF_Export.gh
27KB
SAF_FlatSurfaceWithHoleExport.gh
Fig. 3.8.3.1: Export of a beam model with the "Export Model to SAF"-component.
Fig. 3.8.3.2: SAF_FlatSurfaceWithHoleExport.gh - export of flat surface with spline boundary and a hole.
Fig. 3.8.3.3: The SAF-file created in fig 3.8.3.2 as imported in SCIA Engineer.
Fig. 3.8.3.4: Flat surface with hole, freely placed surface load and supports as imported in SCIA Engineer.
Fig. 3.8.3.5: Work.around for exporting MeshLoads as beam- and point-loads.