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