SkyCiv Documentation

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

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 ParameterType of ParameterParameter AccessDescription

Material OutputOutputItemMaterial object created with the selected material.

Input There is no input parameter but instead, Input menu is provided to select the material from the list.
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

NameInputItemName of the custom material specified as String.

Young ModulusInputItemModulus of Elasticity of the Material.

Yield StrengthInputItemYield Strength of the Material.

Name of Parameter Type of Parameter Parameter Access Description
Class Input Item Class of the material such as Steel, Wood etc. specified as String.
Density Input Item Density Poisson’s Ratio Input Item Poisson’s ratio for Isotropic Materials.
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

FamilyInputItemSection Family.

ShapeInputItemShape of the Section Family.

SizeInputItemSize of the Section Family.

SectionOutputItemSection object created from the inputs.

PropertiesOutputItemFor section properties, please visit http://beamdimensions.com/ and take a look at the section.

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.
Connect a value list to this input to get the predefined possible values. Possible values are AISC,ADM etc. for American & so on.
Connect a value list to this input to get the predefined possible values.
Connect a value list to this input to get the predefined possible values.
Material Input Item Material to be assigned to 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

NodesOutputListA collection of Node objects created from the 3D coordinates given as input.

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.

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

Member AttrsOutputListMember Attributes object.

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.
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

Plate ThicknessInputItemThickness of the plate.

MaterialInputItemMaterial of the plate.

AttrsInputItem

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.

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

 

Inputs & Outputs

AttrsInputItemPlate Attributes object.

PlateOutputListList of plate(s) created.

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.
This contains MembraneThickness, BendingThickness,
ShearThickness, RotationZ, Diaphragm, Offset, Drilling StiffnessFactor. For more details, please see the SkyCivPlateAttrs component.

       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

Load GroupsInputListThe load group(s) to which this load belongs.

Point LoadOutputListNodal Point Load Object

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

 

 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

 

Point LoadOutputListMember Point Load Object

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.

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

 

InputListStart and End Magnitudes for X, Y, and Z, respectively.

StartVec, EndVecInputListStart and End Vectors for DL.

AxesInputItemApply the load along the structure’s global or member’s local axis.

DistanceTypeInputItemAbsolute or Percentage distance along the member.

InputListPosition along the member where DL starts and ends, respectively.

Distributed LoadOutputListDistributed loads.

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

Possible values are Global, Global Projected, and Local.
StartPosition,

EndPosition

Load Groups Input List The load group(s) to which this load belongs.

 

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

 

Inputs & Outputs

 

XMag, YMag, ZMagInputListX, Y, and Z magnitudes, respectively.

Plate PressureOutputListPlate Pressure(s)

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.
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.

 

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

               

Inputs & Outputs

P1,P2,P3 Node IDInputItemThe node ID of P1, P2, and P3 Point for the linear pressure.

P1,P2,P3 MagInputItemMagnitude at P1, P2,P3 Point for the linear pressure.

Load DirectionInputItemDirection of the linear pressure.Possible values are X, Y, Z.

Plate PressureOutputItemPlate Pressure.

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.
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 Groups Input List The load group(s) to which this load belongs.

 

        Moments

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

 

Inputs & Outputs

X, Y, Z MagnitudesInputListMoment Magnitude about X, Y, Z axes, respectively.

Load GroupsInputListThe load group to which the moment belongs.

MomentOutputListList of moment objects.

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.

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

Inputs & Outputs

Moment VectorInputListMoment Magnitude about X, Y, Z axes, respectively specified as Vector.

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.
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

PositionInputListPosition along the member.

X, Y, Z MagnitudeInputListMoment Magnitude(s) about X, Y, Z axes, respectively.

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.
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

Moment VectorInputListMoment Magnitude Vectors.

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.
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

Translation YInputItemTranslational DOF in Global Y Axis.

Translation ZInputItemTranslational DOF in Global Z Axis.

Rotational XInputItemRotational DOF in Global X Axis.

Rotational YInputItemRotational DOF in Global Y Axis.

Rotational ZInputItemRotational DOF in Global Z Axis.

Stiffness ValueInputItemStiffness value for Translational or Rotational stiffness.

Restraint ObjectOutputItemRestraint Object created from the given inputs.

Name of Parameter Type of Parameter Parameter Access Description Translation X Input Item Translational DOF in Global X 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.

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

         

Inputs & Outputs

RestraintInputItemRestraint object or Restraint code in string form.

DirectionInputItemSupport can restrain movement in both axes or one axis.

Support XOutputListSupport object(s).

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.
This is 6 6-character code, i.e., BBBNPP. B = Both Axes, P = Positive Axis, N = Negative Axis. The default is BBBBBB.

 

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

ModelWriter:  Writes 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

         SkyCivSettings:  Though 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.

SkyCivAnalysis:  Performs 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:

How can we help?

×

Updated October 12, 2026

Still stuck? Contact us

Go to Top