Skip to content

hariprazath/GSA-Grasshopper

 
 

Repository files navigation

GSA-Grasshopper

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.

image


Installation

Use the Rhino package manager yak to install GSA-Grasshopper. R7_Package-Manager

Rhino 6

Use the command "TestPackageManager" and search for GSA.

Rhino 7

Use the command “_-PackageManager _Search GSA”

List of components by category

Model

Component Name Description
OpenModel@4x Open Open an existing GSA model in .gwb format
SaveModel@4x Save Save a GSA-Grasshopper model to .gwb
GetGeometry@4x GetGeometry Get geometrical objects from a GSA model (Nodes, Element1Ds, Element2Ds, Element3Ds, Member1Ds, Member2Ds, Member3Ds)
GetProperties@4x GetProperties Get properties from a GSA model (Sections, 2D Properties)
GetLoads@4x GetLoads Get Loads and Grid Planes/Surfaces from GSA model
EditTitle@4x EditTitles (WIP) Edit the GSA model titles (currently titles cannot be set back into GSA model)
EditUnits@4x 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)
GsaVersion@4x Version Get the plugin version and location of .gha file

Properties

Component Name Description
CreateMaterial@4x 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@4x 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@4x CreateSection Create a new Section for Elem1D and Mem1D using Profile and Material inputs.
CreateProp2D@4x CreateProp2D Create a new 2D property for Elem2D and Mem2D using Thickness and Material inputs
CreateBool6@4x CreateBool6 Create a new Bool6 which can be used for either setting releases or support restraints (x, y, z, xx, yy or zz)
CreateOffset@4x CreateOffset Create a new offset used for both 1D and 2D elements
CreateSpring@4x CreateSpring (WIP) Create a new spring. Springs attach to Nodes (springs are currently not implemented)
EditSection@4x EditSection Edit an existing Section or use this component to view an existing Section's values
EditProp2D@4x EditProp2D Edit an existing 2D property or use this component to view an existing Prop2D's values
SectionProperties@4x SectionProperties Get the mechanical cross-section properties of a Section (or profile) such as Area, Moment of Inertia, etc.
EditBool6@4x EditBool6 Edit an existing Bool6 or use this component to view an existing Bool6's settings
EditOffset@4x EditOffset Edit an existing Offset or use this component to view an existing Offset's values
EditSpring@4x EditSpring (WIP) Edit an existing spring (currently not implemented)

Geometry

Component Name Description
CreateSupport@4x Create Support Create a Node with support restraints (Rhino/GH: Point -- GSA: Node)
CreateElem1D@4x Create Element1D Create a new 1D Element in analysis layer (Rhino/GH: Line -- GSA: Beam Element)
CreateElem2D@4x 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.
CreateMem1D@4x Create Member1D Create a new 1D Member in Design layer (Rhino/GH: Arc or PolyLine -- GSA: Beam)
CreateMem2D@4x 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.
CreateMem3D@4x Create Member3D Create a new 3D Member in Design layer (Rhino/GH: Solid Brep/Surface -- GSA: Solid)
EditNode@4x EditNode Edit an existing node or use this component to view an existing Node's parameters like point, orientation plane, restraint, etc.
EditElem1D@4x 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)
EditElem2D@4x 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).
EditElem3D@4x 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).
EditMem1D@4x 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)
EditMem2D@4x 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)
EditMem3D@4x EditMember3D Edit an existing 3D Member or use this component to view an existing Element3D's parameters.
2dElemsFromBrep@4x 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.
CreateElementsFromMembers@4x ElemFromMem Create Elements from Members. This component is essentially doing remeshing using GSA's remeshing algorithm.

Loads

Component Name Description
GravityLoad@4x CreateGravityLoad Create a new Gravity Load
NodeLoad@4x CreateNodeLoad Create a new Node Load - applies to nodes
BeamLoad@4x CreateBeamLoad Create a new Beam Load applies to Elem1D
FaceLoad@4x CreateFaceLoad Create a new Face Load applies to Elem2D
GridPointLoad@4x CreateGridPointLoad Create a new Grid Point Load, free form point load
GridLineLoad@4x CreateGridLineLoad Create a new Grid Line Load, free form line load
GridAreaLoad@4x CreateGridAreaLoad Create a new Grid Area Load, free form area load
GridPlane@4x CreateGridPlane Create a new Grid Plane; a plane used for Grid Plane Surface
GridSurface@4x CreateGridSurface Create a new Grid Surface; used for all Grid Load types
GridPlaneProperties@4x GridPlaneSurface Properties Get the properties of a Grid Plane and Grid Surface
LoadProp@4x Load Properties Get the properties of a Load

Analysis

Component Name Description
Analyse@4x Analyse Assemble all objects and run analysis
AsyncAnalyse@4x AsyncAnalyse (WIP) Assemble all objects and run analysis using asyncronious component

Results

Component Name Description
NodeResults@4x Node results: View and get typical node results as displacement or reaction forces
Elem1dResults@4x Element1D Results: View and get 1D Element results for displacement and internal forces
Elem2dResults@4x Element2D Results: View and get 2D Element surface plot results for displacement, forces and moments and stress
Elem3dResults@4x Element3D Results: View and get 3D Element surface plot results for displacement and stress
GlobalResults@4x 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@4x GsaModel Parameter to pass around a GSA model between components
GsaMaterial@4x Material (WIP) GSA Material parameter. Current implementation only used to refer to existing materials in a GSA model
GsaSection@4x Section GSA Section parameter. A Section contains information for ID (in GSA: "PB1"), Material, and Profile
GsaProp2D@4x Prop2D GSA 2D Property parameter. A Prop2D contains information for ID (in GSA: "PA1"), Material, and Thickness
GsaBool6@4x 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
GsaOffset@4x 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
GsaSpring@4x Spring (WIP) GSA Spring parameter. Not implemented yet.
GsaNode@4x Node GSA Node parameter. A Node contains position (Point), local orientation (Plane), Restraint (Bool6), ID (node number in GSA) and spring when implemented.
GsaElem1D@4x 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.
GsaElement2D@4x Element2D GSA 2D Element parameter. An Element2D contains geometry (Mesh), List of 2D Properties (Prop2Ds or PA IDs) and a List of IDs.
GsaElement3D@4x Element3D GSA 3D Element parameter. An Element3D contains geometry (NgonMesh) and a List of IDs. 3D properties yet to be implemented.
GsaMem1D@4x 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.
GsaMem2D@4x Member2D GSA 2D Member parameter. A Member2D contains geometry (Planar BRep), 2D Property (Prop2D or PA ID), inclusion points and lines, and ID.
GsaMem3D@4x Member3D GSA 3D Member parameter. A Member3D contains geometry (Closed Mesh) and ID. 3D properties yet to be implemented.
GsaLoad@4x 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
GsaGridPlane@4x 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.

Please make sure to update tests as appropriate.

License

This plugin is free to use, however in order to perform any meaningful tasks you must have GSA installed on your machine. For licensing of GSA refer to Oasys Software licensing terms: https://www.oasys-software.com/support/licensing-of-oasys-software/

About

GSA Grasshopper plugin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%