GSA-Grasshopper is a plugin for Grasshopper wrapping Oasys GSA's .NET API. The plugin allows users of Grasshopper to create, edit and analyse GSA models seemlesly.
Install GSA-Grasshopper using the Package Manager in Rhino 7 for Windows:
To install GSA-Grasshopper, click in this link [rhino://package/search?name=gsa]
Or, type PackageManager on the Rhino command line.
Search for “GSA”
Select GSA and then Install
Rhino 6
Use the command "TestPackageManager" and search for GSA.
List of components by category
Model
Component
Name
Description
Open
Open an existing GSA model in .gwb format
Save
Save a GSA-Grasshopper model to .gwb
GetGeometry
Get geometrical objects from a GSA model (Nodes, Element1Ds, Element2Ds, Element3Ds, Member1Ds, Member2Ds, Member3Ds)
GetProperties
Get properties from a GSA model (Sections, 2D Properties)
GetLoads
Get Loads and Grid Planes/Surfaces from GSA model
EditTitles (WIP)
Edit the GSA model titles (currently titles cannot be set back into GSA model)
EditUnits (WIP)
Edit the working document units (currently units cannot be changed in GSA model, use geometry in meters, sections in mm and force in kN for now)
Version
Get the plugin version and location of .gha file
Properties
Component
Name
Description
CreateMaterial (WIP)
Create a new material (currently material must already exist in the GSA model, this component will for now only create the reference to existing materials only)
CreateProfile
Create a profile (cross-section) for new Section. This component can look up Catalogue sections or create new shapes from scratch, either from a a closed polygon or from a range of typical structural engineering cross-sections (Rectangle, Circle, I section, Tee, Channel, Angle).
CreateSection
Create a new Section for Elem1D and Mem1D using Profile and Material inputs.
CreateProp2D
Create a new 2D property for Elem2D and Mem2D using Thickness and Material inputs
CreateBool6
Create a new Bool6 which can be used for either setting releases or support restraints (x, y, z, xx, yy or zz)
CreateOffset
Create a new offset used for both 1D and 2D elements
CreateSpring (WIP)
Create a new spring. Springs attach to Nodes (springs are currently not implemented)
EditSection
Edit an existing Section or use this component to view an existing Section's values
EditProp2D
Edit an existing 2D property or use this component to view an existing Prop2D's values
SectionProperties
Get the mechanical cross-section properties of a Section (or profile) such as Area, Moment of Inertia, etc.
EditBool6
Edit an existing Bool6 or use this component to view an existing Bool6's settings
EditOffset
Edit an existing Offset or use this component to view an existing Offset's values
EditSpring (WIP)
Edit an existing spring (currently not implemented)
Geometry
Component
Name
Description
Create Support
Create a Node with support restraints (Rhino/GH: Point -- GSA: Node)
Create Element1D
Create a new 1D Element in analysis layer (Rhino/GH: Line -- GSA: Beam Element)
Create Element2D
Create a new 2D Element in analysis layer (Rhino/GH: Mesh -- GSA: Tri/Quad Element). It is possible to provide Tri6 and Quad8 using Rhino Ngons currently not natively supported in Grasshopper but can be referenced from Rhino.
Create Member1D
Create a new 1D Member in Design layer (Rhino/GH: Arc or PolyLine -- GSA: Beam)
Create Member2D
Create a new 2D Member in Design layer (Rhino/GH: Brep/Surface -- GSA: Slab). Voids in the geometry will automatically be detected. Input Points or Curves to be included in the analysis mesh - intersections with other Elements and Members will automatically be detected when a model is assembled and is therefore not required to be inputted here.
Create Member3D
Create a new 3D Member in Design layer (Rhino/GH: Solid Brep/Surface -- GSA: Solid)
EditNode
Edit an existing node or use this component to view an existing Node's parameters like point, orientation plane, restraint, etc.
EditElement1D
Edit an existing 1D Element 1D or use this component to view an existing Element1D's parameters. Use this component to set more advanced settings like Element Analysis Type (Beam/Bar/Spring/Link/Cable/Spacer/Strut/Tie/Damper)
EditElement2D
Edit an existing 2D Element or use this component to view an existing Element2D's parameters. The analysis type can not be set for Element2Ds as this is determined by the underlaying Mesh geometry where triangular faces will be a Tri3 element, quad faces will be a Quad4. Geometry cannot be edited directly for Element2Ds; either create new or use Grasshopper to transform Element2D (move/mirror/morhp etc).
EditElement3D
Edit an existing 3D Element or use this component to view an existing Element3D's parameters. The analysis type can not be set for Element3Ds as this is determined by the underlaying NgonMesh geometry where number of verticies in each Ngon face will determine the analysis type element (Tetra4, Pyramid5, Wedge6 or Brick8). Geometry cannot be edited directly for Element3Ds; either create new from Member3D or use Grasshopper to transform existing Element3D (move/mirror/morhp etc).
EditMember1D
Edit an existing 1D Member or use this component to view an existing Member1D's parameters. Use this component to set more advanced settings like Member Type (Beam/Column/Cantilever/Compos/Pile/Void-cutter) and Element Analysis Type (Beam/Bar/Spring/Link/Cable/Spacer/Strut/Tie/Damper)
EditMember2D
Edit an existing 2D Member or use this component to view an existing Element3D's parameters. Use this component to set more advanced settings like Member Type (Slab/Wall/Ribbed-slab/Void-cutter) and Element Analysis Type (Linear (Tri3/Quad8), Quadratic (Tri6/Quad8) or Rigid-diaphragm)
EditMember3D
Edit an existing 3D Member or use this component to view an existing Element3D's parameters.
Elem2dFromBrep (WIP)
Create 2D Elements from non-planar BReps. Use this component to create analysis mesh (2D elements) from non-planar surfaces. The output will be quadratic elements (Tri6/Quad8). The component works by unrolling the input to a planar surface, perform the normal remeshing using GSA's remeshing algorithm, re-map the analysis mesh back to the original input geometry.
ElemFromMem
Create Elements from Members. This component is essentially doing remeshing using GSA's remeshing algorithm.
Loads
Component
Name
Description
CreateGravityLoad
Create a new Gravity Load
CreateNodeLoad
Create a new Node Load - applies to nodes
CreateBeamLoad
Create a new Beam Load applies to Elem1D
CreateFaceLoad
Create a new Face Load applies to Elem2D
CreateGridPointLoad
Create a new Grid Point Load, free form point load
CreateGridLineLoad
Create a new Grid Line Load, free form line load
CreateGridAreaLoad
Create a new Grid Area Load, free form area load
CreateGridPlane
Create a new Grid Plane; a plane used for Grid Plane Surface
CreateGridSurface
Create a new Grid Surface; used for all Grid Load types
GridPlaneSurface Properties
Get the properties of a Grid Plane and Grid Surface
Load Properties
Get the properties of a Load
Analysis
Component
Name
Description
Analyse
Assemble all objects and run analysis
AsyncAnalyse (WIP)
Assemble all objects and run analysis using asyncronious component
Results
Component
Name
Description
Node results
View and get typical node results as displacement or reaction forces
Element1D Results
View and get 1D Element results for displacement and internal forces
Element2D Results
View and get 2D Element surface plot results for displacement, forces and moments and stress
Element3D Results
View and get 3D Element surface plot results for displacement and stress
Global Results
Get global model results as sum of forces, mass and inertia as well as dynamic factors for dynamic analysis tasks
Parameters
Component
Name
Description
GsaModel
Parameter to pass around a GSA model between components
Material (WIP)
GSA Material parameter. Current implementation only used to refer to existing materials in a GSA model
Section
GSA Section parameter. A Section contains information for ID (in GSA: "PB1"), Material, and Profile
Prop2D
GSA 2D Property parameter. A Prop2D contains information for ID (in GSA: "PA1"), Material, and Thickness
Bool6
GSA Bool6 parameter. A Bool6 contains six booleans (X, Y, Z, XX, YY, ZZ) and can be used to set node restriants or Element1D/Member1D releases
Offset
GSA Offset parameter. An Offset contains four values (X1, X2, Y and Z) and can be used to set offset in elements and members
Spring (WIP)
GSA Spring parameter. Not implemented yet.
Node
GSA Node parameter. A Node contains position (Point), local orientation (Plane), Restraint (Bool6), ID (node number in GSA) and spring when implemented.
Element1D
GSA 1D Element parameter. An Element1D contains geometry (Line), Section property (Section or PB ID), start and end releases (not yet implemented in GsaAPI) and ID.
Element2D
GSA 2D Element parameter. An Element2D contains geometry (Mesh), List of 2D Properties (Prop2Ds or PA IDs) and a List of IDs.
Element3D
GSA 3D Element parameter. An Element3D contains geometry (NgonMesh) and a List of IDs. 3D properties yet to be implemented.
Member1D
GSA 1D Member parameter. A Member1D contains geometry (Arc or PolyLine), Section property (Section or PB ID), start and end releases (not yet implemented in GsaAPI) and ID.
Member2D
GSA 2D Member parameter. A Member2D contains geometry (Planar BRep), 2D Property (Prop2D or PA ID), inclusion points and lines, and ID.
Member3D
GSA 3D Member parameter. A Member3D contains geometry (Closed Mesh) and ID. 3D properties yet to be implemented.
Load
GSA Load parameter. A Load can contain any of the load types (Gravity, Node, Beam, Face, GridPoint, GridLine or GridArea) and a GridPlaneSurface if the instance is a Grid load type
GridPlaneSurface
GSA Grid Plane Surface parameter. A GridPlaneSurface contains what is know in GSA as an Axis, GridPlane and GridSurface.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.