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
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
- 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, |
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:
- 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
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: