SkyCiv Documentation

Your guide to SkyCiv software - tutorials, how-to guides and technical articles

SkyCiv API

  1. Home
  2. SkyCiv API
  3. Plugins
  4. Grasshopper V2

Grasshopper V2

Introduction

It’s been a while since the first version of SkyCiv’s Grasshopper Plugin came out. We took the user feedback and brainstormed in our internal team meetings to make it more user-friendly from a UI and functionality point of view. Well, the result is now out and we are very glad to present the V2 of our plugin as BETA. We will walk you through the new components and mention ( wherever required)  how they differ from the earlier version. I hope you like them and start using them more often.

 

What Changed in the V2?

In the earlier version, most of the components were designed to take inputs through forms and/or mouse events to add more inputs. This design meant the user had to click to open the form/click to add new input, select the appropriate inputs, apply the changes, and then close the form. We wanted to reduce the clicks and make inputs more intuitive and user-friendly. As we were redesigning, we also increased the scope of inputs. Let’s take an example to demonstrate this by comparing old and new components for creating a beam/member.

Old New
For adding a new Line input, the user clicks on the +Line , and connects the new line as an input. For each new line, this process needs to be repeated. The new component not only takes Lines but also takes Breps/Curves as a list. So we can connect them all to the same input.

 

Getting Started

SkyCiv’s Grasshopper plugin allows users to import their complex dynamic models built in GH into S3D for structural analysis & design. The plug-in will handle the complex geometry and transform it with all the necessary information needed for structural analysis (nodes, elements, sections, materials, loads, supports, etc.). The plugin will generate the model and output in the form of a JSON file which can be used on the S3D platform for running the analysis

Users with access to GH, can download the plugin from the SkyCiv Plugin store or use the button below:

Please also note that the installations are also available through Package Manager. If you are more comfortable with it, please there and search for SkyCiv as shown below

 

 

After downloading the file, double-click the installer (.exe) file and open Rhino > GH. If the plugin is loaded successfully, the SkyCiv tab and settings should appear under GH tools menu like so:

 

SkyCiv Plugin Menu

SkyCiv Plugin Menu

 

After building your model, you should be able to launch SkyCiv Structural 3D directly from the plugin, using the Output components. You can link your Grasshopper to a Structural 3D model, so as you change the parameters in Grasshopper, the model will instantly update in S3D. To do this, you will also need to download SkyCiv Desktop. To do this, log in and click the desktop icon in the bottom left corner.

A Typical Workflow for Executing Design through the Plugin

A SkyCiv plugin could help complement the workflow by modelling, saving and solving the analysis and designs for their models. After installation, various tools are visible on the SkyCiv component tab in Grasshopper.

  • Users can create the desired geometry using the parametric modelling facilities in Grasshopper.
  • When the model is ready in Grasshopper, it needs to be transported to SkyCiv’s powerful S3D to make it ready for analysis/design. (A format compatible with SkyCiv Solver)
  • Using SkyCiv’s plugin, the user will have to declare:
    • Element definition: Lines/Curves/Breps and surfaces in the geometry can be transformed to  ‘Members’ & ‘Plates’ respectively.
    • Boundary conditions in the form of assigning Supports to nodes
    • Loads: Various types of loads such as Nodal Loads, Member Loads, Distributed loads, Plate Pressures, Moments, etc. are available to the user to assign to nodes/Members/Plates.
    • Materials: SkyCiv’s plugin contains a Library of materials viz Structural Steel, Concrete, Timber, Glass, Carbon Fibre Reinforced Plastic, Aluminium etc. Users can also create custom material by inputting various properties manually.
    • Sections: The user must choose the desired cross-section amongst the available library based on shapes/profiles and country-specific databases. Users can also create a custom section by manually inputting various properties for certain shapes.
  • After assigning the parameters mentioned above for ALL the elements forming as a part of the geometry, the components need to be assembled under the “Assemble Model” tab, where the inputs declared by the user get collected and arranged into a specific format.
  • The model is ready for writing the script in JSON format using the tool called “ModelWriter” which will launch the model in SkyCiv Structural 3D
  • The JSON which is formed can be fetched in the SkyCiv’s, S3D platform where the analysis API will be sent to the structural solver. Users can see the elements, rendered view, mesh, tag numbers etc etc in S3D for the geometry which was modelled in GH and collaborated using the SkyCiv plugin

 

Component List

        Materials  & Sections

  1. SkyCivMaterialDB  Component for creating the material by selecting fixed materials from SkyCiv DB.

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Input There is no input parameter but instead, Input menu is provided to select the material from the list.
Material Output Output Item Material object created with the selected material.
Properties Output Item Material properties such as density, elasticity modulus,poissons ratio, yield strength, ultimate strength, class of the material. The output is presented as a JSON string.

2. SkyCivMaterialCustom  Component for creating material by specifying custom properties manually.

     

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Class Input Item Class of the material such as Steel, Wood etc. specified as String.
Name Input Item Name of the custom material specified as String.
Young Modulus Input Item Modulus of Elasticity of the Material.
Density Input Item Density
Poisson’s Ratio Input Item Poisson’s ratio for Isotropic Materials.
Yield Strength Input Item Yield Strength of the Material.
Ultimate Strength Input Item Ultimate Strength of the Material
Material Output Item Custom material is created using the properties given as input.

3. SkyCivSectionDB     Component for creating the section from SkyCiv DB values of Country, Family,   Shape & Size. For ease of use, you can connect values lists to the input to get predefined values.  The second option would be to provide the inputs as string values if you know the correct values.

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Country Input Item Country to be selected as the starting point for sections. Connect a value list to this input to get the predefined possible values. Possible values are American, Australian etc.
Family Input Item Section Family. Connect a value list to this input to get the predefined possible values. Possible values are AISC,ADM etc. for American & so on.
Shape Input Item Shape of the Section Family. Connect a value list to this input to get the predefined possible values.
Size Input Item Size of the Section Family. Connect a value list to this input to get the predefined possible values.
Material Input Item Material to be assigned to the section.
Section Output Item Section object created from the inputs.
Properties Output Item For section properties, please visit http://beamdimensions.com/ and take a look at the section.

 

4. SkyCivSectionCustom Component for creating the section by specifying custom properties manually.

       

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Name Input Item Name of the custom section.
Material Input Item Material to be assigned to the section.
For shape, we have an Input menu which is provided to select the template shape from the list.

Currently, supported shape templates are Rectangular,
Hollow Rectangular, Circular, Hollow Cricular, I-Shape, T-Shape, Angle,Channel.
Depending on the shape selected, dynamic input parameters are added to provide
the dimensions of the section.

 

           Model

1. SkyCivCreateNodes      Component for creating nodes from the list of points or the list of strings in {x,y,z}  format specified via  Panel. 

         

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Points Input List Collection of 3D points specified either as Grasshopper Point or Points specified as multi line data via a panel in the form of {0,0,0} {1,0,0} and so on.
Nodes Output List Collection of Node objects created from the 3D coordinates given as an input.

2. SkyCivCreateNodes_XYZ  Component for creating nodes from the list of X,Y,Z Points specified as separate inputs. If any of the X,Y,Z list has items less than the maximum number of items ( max of (x_num,y_num,z_num) ), the remaining items are filled as 0. 

       

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
X Input List Collection of X coordinate specified either as Grasshopper Number or as a string.
Y Input List Collection of Y coordinate specified either as Grasshopper Number or as a string.
Z Input List Collection of Z coordinate specified either as Grasshopper Number or as a string.
Nodes Output List Collection of Node objects created from the 3D coordinates given as an input.

3. SkyCivMemberFromBLC  Component for Converting Brep/Line/Curve to Member/Beam and Associate Cross Section with it

     

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Brep/Lines/Curve Input Tree For creating the members, a collection of breps/lines/curves can be passed as an input.
Section Input Item Cross Section
Member Type Input Item Type of the Member i.e. Custom/Truss/Frame/Mini. Default is Frame. This is Optional.
Member Attrs Output List Member Attributes object. This contains Rotation Angle,Fixity A, Fixity B, Offset A, Offset B, Mirror, Disable NL Effects. For more details, please see SkyCivMemberAttrs component.

 

4. SkyCivMemberFromPoints  Component for Converting points to beam and associate Cross Section with it. While doing this, it will create beams from points in a sequential manner i.e n, n+1 point will make 1 beam & so on.

       

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Points Input Tree To create the members, a collection of points can be passed as an input.
Section Input Item Cross Section
Member Type Input Item Type of the Member i.e. Custom/Truss/Frame/Mini. Default is Frame. This is Optional.
Member Attrs Output List Member Attributes object. This contains Rotation Angle,Fixity A, Fixity B, Offset A, Offset B, Mirror, Disable NL Effects. For more details, please see SkyCivMemberAttrs component.

5. SkyCivNodePlates  Component for creating plates from nodes.

         

 

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Node Ids/List of Points Input List Node Id List or List of Co-ordinates specified as
List for a single plate i.e. If specified as node id list,
it will be 1,2,3,4 or for co-ordinates, will be sent
as list of points in the correct order.
Plate Thickness Input Item Thickness of the plate.
Material Input Item Material of the plate.
Attrs Input Item

6. SkyCivSurfacePlates  Component for creating plates from surfaces or meshes.

 

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Surface/Mesh Input Tree Surfaces or meshed surfaces from which

the plates are to be created.

Plate Thickness Input Item Thickness of the plate.
Material Input Item Material of the plate.
Attrs Input Item Plate Attributes object. This contains MembraneThickness,BendingThickness,
ShearThickness,RotationZ,Diaphragm,Offset,Drilling StiffnessFactor. For more details, please see SkyCivPlateAttrs component.
Plate Output List List of plate(s) created.

       Loads   

         We have loads categorized as Points Loads, Distributed Loads, Area Loads, Plate Pressures, Self                                                      Weights.  For loads, the components are 

1 SkyCivNodalPL    Component for creating nodal point loads by specifying x,y,z magnitudes separately. This component is similar to SkyCivNodalPLVec and hence the Inputs & Outputs will be listed  one place for these 2 components.  

                                             

 

 

2 SkyCivNodalPLVec Component for creating nodal point loads by specifying x,y, and z magnitudes via vector.

 

 

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Node Id/List Input List List of Node Ids or List of Node(s), GH_Point, Point3d.
X,Y,Z Input List X,Y,Z Magnitude Respectively
ForceVector Input List Force Vector Magnitude
Load Groups Input List The load group(s) to which this load belongs.
Point Load Output List Nodal Point Load Object

 

 3 SkyCivMemberPL    Component for creating member point loads by specifying x,y,z magnitudes          separately. This component is similar to SkyCivMemberPLVec and hence the Inputs & Outputs will be listed one place for these 2 components. 

4  SkyCivMemberPLVec Component for creating member point loads by specifying x,y,z magnitudes via Vectors.

Inputs & Outputs

 

Name of Parameter Type of Parameter Parameter Access Description
Members/Member Ids Input List List of Member Ids in integer/string format or List of Line objects for which members are already created or List of Members already created.
DistanceType Input Item Absolute or Percentage
Position Input List Position along Member.
X,Y,Z Input List X,Y,Z Magnitude Respectively
ForceVector Input List Force Vector Magnitude
Load Groups Input List The load group(s) to which this load belongs.
Point Load Output List Member Point Load Object

5 SkyCivDL    Component for creating distributed loads by specifying x,y,z magnitudes separately. This component is similar to SkyCivDLVec and hence the Inputs & Outputs will be listed one place for these 2 components. 

6  SkyCivDLVec Component for creating distributed loads by specifying x,y,z magnitudes via vectors.

Inputs & Outputs

 

Name of Parameter Type of Parameter Parameter Access Description
Members/Member Ids Input List List of Member Ids in integer/string format or List of Line objects for which members are already created or List of Members already created.
XStart,XEnd,YStart,

YEnd,ZStart,ZEnd

Input List Start and End Magnitudes for X,Y and Z respectively.
StartVec,EndVec Input List Start and End Vectors for DL.
Axes Input Item Apply the load along the structure’s global or member’s local axis. Possible values are Global, Global Projected, Local.
DistanceType Input Item Absolute or Percentage distance along the member.
StartPosition,

EndPosition

Input List Position along the member where DL starts and Ends respectively.
Load Groups Input List The load group(s) to which this load belongs.
Distributed Load Output List Distributed loads.

 

          7. SkyCivUniformPlatePressures Component for plate pressures with Uniform Load Distribution.

 

Inputs & Outputs

 

Name of Parameter Type of Parameter Parameter Access Description
Plate ID/Plate Input Item Plate Id or Plate object to which plate pressure needs to be applied.
XMag,YMag,ZMag Input List X,Y and Z magnitudes respectively.
Load Groups Input List The load group(s) to which this load belongs.
Axes Input Item Apply the load along the structure’s global or member’s local axis. Possible values are Global, Global Projected, Local.
Plate Pressure Output List Plate Pressure(s)

 

7. SkyCivLinearPlatePressures Component for plate pressures with Linear Load Distribution.

               

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Plate ID/Plate Input Item Plate Id or Plate object to which plate pressure
needs to be applied.
P1,P2,P3 Node ID Input Item The node ID of P1,P2,P3 Point for the linear pressure.
P1,P2,P3 Mag Input Item Magnitude at P1,P2,P3 Point for the linear pressure.
Axes Input Item Apply the load along the structure’s global or member’s local axis.
Possible values are Global, Global Projected, Local.
Load Direction Input Item Direction of the linear pressure.Possiblee values are X,Y,Z.
Load Groups Input List The load group(s) to which this load belongs.
Plate Pressure Output Item Plate Pressure.

 

        Moments

1. SkyCivNodalMoment  Component for creating nodal moments by specifying x,y,z magnitudes.

 

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
NodeId/Node/Point List Input List List of Node Ids/Nodes/Points for which the moment is to applied.
X,Y,Z Magnitudes Input List Moment Magnitude about X,Y,Z axis respectively.
Load Groups Input List The load group to which moment belongs.
Moment Output List List of moment objects.

2. SkyCivNodalMomentVec  Component for creating nodal moments by specifying x,y,z magnitudes via vector.

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
NodeId/Node/Point List Input List List of Node Ids/Nodes/Points for which the moment is to applied.
Moment Vector Input List Moment Magnitude about X,Y,Z axis respectively specified as Vector.
Load Groups Input List The load group to which moment belongs.
Moment Output List List of moment objects.

3. SkyCivMemberMoment Component for creating member moments by specifying x,y,z magnitudes separately.

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Lines/Members/Member Ids List Input List List of Lines or Members or list of Member Ids.
Distance Type Input Item Distance Type i.e. Absolute/Percentage.
Position Input List Position along member.
X,Y,Z Magnitude Input List Moment Magnitude(s) about X,Y,Z axis respectively.
Load Groups Input List The load group to which moment belongs.
Moment Output List List of moment objects.

4. SkyCivMemberMomentVec Component for creating member moments by specifying x,y,z magnitudes via vector.

         

 

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Lines/Members/Member Ids List Input List List of Lines or Members or list of Member Ids.
Distance Type Input Item Distance Type i.e. Absolute/Percentage.
Position Input List Position along member.
Moment Vector Input List Moment Magnitude Vectors.
Load Groups Input List The load group to which moment belongs.
Moment Output List List of moment objects.

        Supports

1. SkyCivRestraints  Component for creating 6 character restraint code i.e. FFFRRR.

         

 

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
Translation X Input Item Translational DOF in Global X Axis.
Translation Y Input Item Translational DOF in Global Y Axis.
Translation Z Input Item Translational DOF in Global Z Axis.
Rotational X Input Item Rotational DOF in Global X Axis.
Rotational Y Input Item Rotational DOF in Global Y Axis.
Rotational Z Input Item Rotational DOF in Global Z Axis.
Spring Support Input Item Spring support flag i.e. True/False.
Stiffness Type Input Item Spring Stiffness for Tranlastion or Rotation about Z Axis i.e. Z_TRANS/Z_ROT.
Stiffness Value Input Item Stiffness value for Translational or Rotational stiffness.
Restraint Object Output Item Restraint Object created from the given inputs.

2. SkyCivSupports  “Component for creating Support/Boundary Conditions.

         

Inputs & Outputs

Name of Parameter Type of Parameter Parameter Access Description
List Node Ids/Point/Node Input Item List of Node Ids/Points/Nodes to which the support needs to be added.
Restraint Input Item Restraint object or Restraint code in string form.
Direction Input Item Support can restrain movement in both axes or one axes.This is 6 character code i.e. BBBNPP. B=Both Axes,P = Positive Axis,N=Negative Axis.Default is BBBBBB.
Support X Output List Support object(s).

 

Assemble Assembles the entire structural model (Beams &/ Plates) declared in a particular geometry along with supports, loads , material , section property.

Output of support, loads (depending upon the load type) and cross section shall be connected to the input of this component. Output of self-weight shall also have to be connected under this component. Multiple Beams/Supports/Loads can be connected under Assemble.

 

Output

ModelWriterWrites the Model Json to the Local Filesystem

         

Representation of structural model in JSON (JavaScript Object Notation) format. The output from the Assemble component needs to be passed to the input of ModelWriter. ModelWriter will allow the user to launch their Grasshopper Model directly in S3D. Any changes to the model in grasshopper will instantly come through in S3D.

 

Analysis

         SkyCivSettingsThough this is not directly related to Analysis, the values related to the user name and API key will            be essential for Analysis. Please right-click on the component and click on “Apply Settings”. You will get below screen            to enter the User Name and API Key.

SkyCivAnalysisPerforms the analysis on the prepared model.

         

 

We have already prepared the model using the Assemble Component. If we want to try out the analysis, then we can by using this component. The output from Assemble will need to be passed to Analysis.  Please specify the Analysis Type. The default will be Linear Static Analysis. Once you are ready to perform the analysis, please press “Run Analysis” button. It will give you a visual representation of the Analysis run and once done, the component will open the Table with the Analysis results in it.  We are also working on Export to Excel and that will be available in the next minor version very shortly.

 

Sample Files

Here are some structural Grasshopper Models that you can download to help you get started:

FlatSlab-Building

          SteelShed

ArchRoof

Was this article helpful to you?
Yes No

How can we help?

Go to Top