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 was released. We took user feedback and brainstormed in our internal team meetings to make it more user-friendly in terms of both UI and functionality. The updated version is now available, and we’re excited to present V2 of our plugin in BETA.

In this version, we’ll walk you through the new components and highlight, where necessary, how they differ from the earlier version. We hope you like the improvements and start using them more often.

 

What Changed in the V2?

In the earlier version, most components were designed to accept inputs through forms and/or mouse interactions. Users had to click to open a form, add inputs, select the appropriate options, apply changes, and then close the form.

Our goal with V2 was to reduce unnecessary clicks and make the input process more intuitive and user-friendly. During the redesign, we also expanded the scope of supported inputs.

Let’s take an example to demonstrate this by comparing the old and new components for creating a beam or 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 (GH) plugin enables users to import complex, dynamic models built in GH into S3D for structural analysis and design. The plugin handles intricate geometry and converts it into a format containing all the necessary information for structural analysis such as nodes, elements, sections, materials, loads, supports, and more. It generates a model and outputs it as a JSON file, which can then be used on the S3D platform to run the analysis.

IMPORTANT: If you already have the previous version of our GH Plugin installed, we suggest uninstalling it before proceeding with this installation. The files created for earlier versions of our plugin might break with this version, as we have improved several components for better usability and functionality. Unfortunately, some of the changes are not compatible with earlier versions. We sincerely request that you please take a backup of those files and then start replacing the new components.

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 go 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 the 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 complements 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, and more  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 value 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 A collection of Node objects created from the 3D coordinates given as 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 a Grasshopper Number or as a string.
Y Input List Collection of Y coordinate specified either as a Grasshopper Number or as a string.
Z Input List Collection of Z coordinate specified either as a Grasshopper Number or as a string.
Nodes Output List A collection of Node objects created from the 3D coordinates given as input.

3. SkyCivMemberFromBLC: Component for converting Brep/Line/Curve to Member/Beam and associating the 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 input.
Section Input Item Cross Section
Member Type Input Item Type of the Member i.e. Custom/Truss/Frame/Mini. The 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, and Disable NL Effects. For more details, please see the SkyCivMemberAttrs component.

 

4. SkyCiv Member from Points: Component for converting points to a beam and associating the Cross Section with it. While doing this, it will sequentially create beams from points, i.e, n, n+1 points 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 the SkyCivMemberAttrs component.

5. SkyCiv Node Plates: 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 coordinates, it will be sent
as a 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 the SkyCivPlateAttrs component.
Plate Output List List of plate(s) created.

       Loads   

         We have loads categorized as Points Loads, Distributed Loads, Area Loads, Plate Pressures, and 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 in 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 the 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 in 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, and 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 the 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, and 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 the plate pressure needs to be applied.
P1,P2,P3 Node ID Input Item The node ID of P1, P2, and 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, and Local.
Load Direction Input Item Direction of the linear pressure.Possible 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 be applied.
X, Y, Z Magnitudes Input List Moment Magnitude about X, Y, Z axes, respectively.
Load Groups Input List The load group to which the 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 be applied.
Moment Vector Input List Moment Magnitude about X, Y, Z axes, respectively specified as Vector.
Load Groups Input List The load group to which the moment belongs.
Moment Output List List of moment objects.

3. SkyCivMemberMoment Component for creating member moments by specifying x,y, and 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 the member.
X, Y, Z Magnitude Input List Moment Magnitude(s) about X, Y, Z axes, respectively.
Load Groups Input List The load group to which the 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 the member.
Moment Vector Input List Moment Magnitude Vectors.
Load Groups Input List The load group to which the moment belongs.
Moment Output List List of moment objects.

        Supports

1. SkyCivRestraints  Component for creating 6 6-character restraint codes 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 Translation 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 axis. This is 6 6-character code, i.e., BBBNPP. B = Both Axes, P = Positive Axis, N = Negative Axis. The 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, and section properties.

Output of support, loads (depending upon the load type), and cross section shall be connected to the input of this component. The 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 the screen below 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 use 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 the “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:

Was this article helpful to you?
Yes No

How can we help?

Go to Top