# Geometry Gym Technical

Everything you need to know about Geometry Gym Plug-ins and Tools

## Welcome! 🖐

Welcome to the documentation and learning resource for the GeometryGym plug-ins and tools.

## About this Guide

There is a fair bit of stuff here so it is worth understanding how it is broken up. Up the top is some instructions on [installation](/getting-started/installation) and also some information on how the [licensing](/getting-started/licencing) system works. You will also find the [Learn](/learn) section here which includes links to example files.

The documentation (the nitty-gritty stuff) is then split into sections relating to each application we provide tools for ([Rhino-Grasshopper](/rhino-grasshopper/introduction#rhino-and-grasshopper), [Revit](/rhino-grasshopper/revit/introduction), Tekla). From there it drops down into particular plug-ins provided for each.

{% hint style="info" %}
Use the powerful search function to search for example files, documentation topics or a particular grasshopper component or rhino command.
{% endhint %}

## Getting Started

New to GeometryGym tools? The best way to get started is to try it out for yourself!

1. Download all the plug-ins you are interested in the website and follow the [installation instructions](/getting-started/installation) to get a trial license.
2. Visit the [Tutorials page](/learn/tutorials) to watch some step-by-step videos for beginners on some different workflows available.
3. Use the [how-to-guides](/learn/how-to-guides), [example files](/learn/example-files) and [blog](http://geometrygym.blogspot.com/) to get the most out of the tools and develop your own workflows.

Most of our tools use Rhinoceros and Grasshopper to function so it is recommended that you familiarize yourself with these. We provide some good recommendations in the [learn](/learn) section.

## Getting Help

Having an issue with Geometry Gym that you cannot solve from the documentation?

* [Check out our FAQ's page](/need-help/faqs)
* [Check or Post on the Forum](https://discourse.mcneel.com/c/plug-ins/GeometryGym) .......([or check old forum](https://www.grasshopper3d.com/group/geometrygym))
* [Contact us directly](mailto::support@geomtrygym.com) at <support@geometrygym.com>

Please follow this guide when asking questions either on the forum or through our support page.

{% content-ref url="/pages/-MEVWAuQkfK\_Inp4DGIx" %}
[Asking for Help](/getting-started/asking-for-help)
{% endcontent-ref %}

## Features and Requests

We are always looking for ways to improve the tools and getting feedback from the users is paramount to help provide a good working product.

If you are looking for a feature that you can not find or think would help you when using Geometry Gym:

* [Post on the Forum](https://discourse.mcneel.com/c/plug-ins/GeometryGym)
* [Contact us](mailto::support@geometrygym.com) directly at <support@geometrygym.com>

{% hint style="info" %}
We can generally accommodate small requests with a quick turn around time.
{% endhint %}

## Work In Progress 👨‍🔧

{% hint style="danger" %}
**Work In Progress....**
{% endhint %}

If you see the sticker above it means that the section is a work in progress. We will always try to let you know when this section will be available.

## Contributing to this Documentation

If you are willing to provide any worked examples, how-to-guides or documentation that you have completed on GeometryGym tool which you would like to share in this online document please do let us know.

There is a [contributors](/need-help/contributors) page which we would love to add you too!


# Getting Started

What you need to know to get up and running with GeometryGym tools


# Installation

Installing Geometry Gym plug-ins and tools

The steps below outline how to install the geometry gym plug-ins for Rhino and Revit. Watch the video or follow the instructions below.

## Before Installing

Host applications (such as Rhino, Revit or Navisworks) need to be installed prior to our plugin.  Geometry Gym typically support several recent versions of the host application.

{% hint style="info" %}
Know which version of associated applications are installed on your computer. If you're application version is not noted, please contact us.

Some structural analysis connectors are version specific. If you have problems with interactions, please contact <support@geometrygym.com>&#x20;
{% endhint %}

## Step 1 - Installing Rhino/Grasshopper Plugins

Geometry Gym provides separate/distinct plug-in packages for different versions of Rhino (6, 7, 8 beta etc) and these are handled independently for each Rhino version. Therefore, you will be required to install plug-ins specific to each different version of Rhino you have on your computer.

Rhino/Grasshopper plugins can be installed using Rhino Package manager (Yak).  This should enable most users to be able to update plugins without requiring IT admin support.

To access the package manager go to the Rhino command line and type *PackageManager* (*TestPackageManager* in Rhino6)*.*

<figure><img src="/files/LVYz2rYzGuGBwcosMneQ" alt=""><figcaption><p>Package Manager Command</p></figcaption></figure>

You can place *gg* into the search bar to search for GeometryGym plug-ins or BullAnt for our free plug-in. A tick next to the item in the search result will notify you which version you have installed and if there is a more recent version that can be downloaded.

<figure><img src="/files/X8WlIM9BTWpe1qynY83q" alt=""><figcaption><p>Rhino Package Manager</p></figcaption></figure>

After nominating plug-in installation from Package Manager command (TestPackageManager in Rhino6), you will typically be prompted to restart Rhino after installation.

The plug-in(s) should now be installed and ready to use. New rhino commands starting with '`gg`' should now be available in the command line along with a number of specific rhino toolbars:

![Geometry Gym Tabs and Commands](/files/uQXMxOLzsmDX0lUoBcXy)

If you cannot view the 'gg' commands from the command line you may need to manually install the rhino plug-ins. Please follow the link below for some common issues that can occur during installation.

If you are still experiencing issues after these steps please contact us.

{% content-ref url="/pages/-LSm-bgb3q5JjMqTwYxV" %}
[Common Installation Issues](/getting-started/installation/common-installation-issues)
{% endcontent-ref %}

If required, you can download a trial version of the latest Rhino [here](https://www.rhino3d.com/download).

### Grasshopper

After installing, plug-in tab(s) in Grasshopper should appear:

![Geometry Gym Grasshopper Tabs](/files/0fVDaXRNUydhTr6XgeeU)

Only tabs which include the plug-in you have installed will be visible.

{% hint style="info" %}
It is highly recommended that **BullAnt** is installed as a base as there are a lot of tools in which the other plug-ins rely on for streamlining workflows.  Grasshopper will prompt you if it is used in an example file.
{% endhint %}

## Step 2 - Installing plug-ins other than for Rhino

Other Geometry Gym developments for Revit, Navisworks etc are provided as .msi installer files available from the downloads page:

#### [www.geometrygym.com/downloads](http://www.geometrygym.com/downloads)

{% hint style="warning" %}
Make sure that Revit, Navisworks or other applications are not running prior to following these steps.
{% endhint %}

1. Find the installers from the folder that you selected at download or simple use the run command from your internet browser.
2. Run each of the installers by double clicking (windows security might take a few seconds prior to permitting installation).

The installer will attempt to create registry keys (windows) or save manifests to instruct application to load plugins when starting.

When you start Revit, Navisworks etc, there should be a Geometry Gym panel visible on the panel.

## Step 3 - Request License

Revenues from commercial users of Geometry Gym developements permit us to sustain full time development and support of the plug-ins and tools. However, we do provide a free 30 day trial to evaluate the tools.

You can read more about the Geometry Gym licensing system or inquire about purchasing a full license [here](http://www.geometrygym.com/purchase).

{% hint style="warning" %}
A trial license needs to be requested prior to being able to use majority of the tools.
{% endhint %}

To Request a trial license:

1. If you are in Revit or an application other than Revit, try running a Geometry Gym command and the license request dialog should show.  If in Rhino, run the command `ggZZLicenseRequest` command within Rhino and a dialog will present as shown below:

![](/files/aL5fsHIUxWUTmnEkXPgn)

If you have a variant of Outlook/Windows Live installed, you can accept the option for an email to be prepared prior to send. If not, the xml text data needed will have already been placed in Windows Clipboard.

Simply, Paste (Menu – Edit- Paste or \<CTRL>  v) into an email to Jon (<jonm@geometrygym.com>).

{% hint style="warning" %}
We endeavor to respond to license requests as quickly as possible (If online it will be near immediately). If you haven’t gotten a reply within a day, please check email was sent or chase up with another email.
{% endhint %}

## Step 4 - Activating License

Once you have received an .xml license file via email. Follow the steps below to apply the license:

1. Save the file in a logical place on your hard drive. This can be save anywhere.  If you have trouble downloading/accessing the attachment, please try forwarding the email to a personal email address such as gmail, or request the attachment in a zip file.
2. Use the update button on the license dialog, or run the `ggZZLicenseUpdate` command similar to step 3 above in the rhino window.
3. A browser window will appear which will allow you to select the saved license file location.
4. Click okay, and you should retrieve a message stating "Successful License Installation".

## Demonstration

{% embed url="<https://youtu.be/KxsD8co_mg8>" %}


# Common Installation Issues

Suggestions for trouble shooting installation.

Please contact <support@geometrygym.com> if you have installation problems and cannot resolve them.

## Rhino Plug-ins not Loading

Contact us if problems loading the plugin, package manager typically makes installation easy and reliable, installation issues are infrequent. &#x20;

Sometimes however after updating a plugin, users experience a loading error.  Usually this will report that plugin id is already in use. (Please post to this discussion if you are experiencing the problem so it might be resolved) <https://discourse.mcneel.com/t/unable-to-load-plug-in-id-already-in-use/153552>

This suggests that restarting Rhino might fix this issue, or you can uninstall the plugin from package manager, restart rhino and install anew.  Alternatively the user needs to manually purge older versions of the plugin.  You can locate the plugin install folder as per this screen capture (change plugin name if not ggRhinoIFC).

<figure><img src="/files/f7QD6LiR3yDMzLVp8eeM" alt=""><figcaption><p>Rhino Option has a hyperlink to open folder containing plugin files.</p></figcaption></figure>

You can then browse back one parent level folder.  Close Rhino application, and select all folders with the exception of latest version.  Delete the folders.  Restart Rhino and the installation should be repaired.

<figure><img src="/files/ECWKwoc24gmZQQUANDmh" alt=""><figcaption><p>Browse back one folder and select older version folders to delete.</p></figcaption></figure>

## Can not see Geometry Gym Rhino Toolbars and Menus

Refer to <https://developer.rhino3d.com/guides/rhinocommon/create-deploy-plugin-toolbar/> for staging of toolbars.

Rhino should copy the .rui file from the plugin folder above, to

%APPDATA%\McNeel\Rhinoceros\<version>\UI\Plug-ins\\

You can try manually copying the file from plugin folder to Rhino location if you want force the loading of a toolbar.

Due to feedback, toolbars are not automatically grouped. You can follow the steps at the location below to create a toolbar group in rhino.

{% content-ref url="/pages/-LSlwUGUE69C3HmbIv5I" %}
[Interface Set-up](/rhino-grasshopper/introduction/setting-up-a-toolbar-group)
{% endcontent-ref %}

## Cannot View Geometry Gym Grasshopper Tabs

If these haven’t appeared try one of the following. If still having issues please contact us.

**Observe Grasshopper Loading Errors**

As grasshopper starts it will generally provide errors if something has not loaded correctly. Check for loading error reports as grasshopper starts. If specific to Geometry Gym then please contact us as soon as possible.

**Check Grasshopper Developer Settings**

Run Rhino command GrasshopperDeveloperSettings and **tick** COFF loading. Previous versions commonly required COFF loading to be not checked, so try toggling if having problems.

![](/files/gODOs8Ud0AsYZOpHVmhv)

## Grasshopper Plug-in Not Loading

If you receive an error message like the one below when trying to open grasshopper it is likely that something is blocking the Rhino Plug-in counterpart from loading in Rhino.

![Grasshopper Loading Error](/files/NDD7MBLkCFC4MEkDNPqN)

Our Grasshopper add-ins are typically a satellite to our rhino plugin (this might change in the future). So you need to ensure the rhino plugin is loaded prior to Grasshopper starting. First, check it's not load protected in rhino options.  Make sure it's not load protected and scheduled to load rhino plugin on rhino startup.


# Updates

Rhino8 introduces automatic plugin updates.  Having used the package manager to install the plugin, Rhino8 will automatically update the plugin when you restart after a new version has been published.

Rhino7 and plugins for Revit, Navisworks etc all require a manual process to update the plugin, either by typing the PackageManager command in Rhino or downloading a newer installer from the [downloads](https://geometrygym.wordpress.com/downloads-windows/) page.

If your company has not renewed a maintenance subscription, an automatic update after your anniversary will block use of the plugin.  You will be warned to downgrade or arrange maintenance extension.  Manually downgrading in Rhino8 will not work, package manager will keep updating each restart.  There is an option to opt out of updates for all plugins (but not specific plugins). There is check box on the package manager dialog for preventing updates, or an advanced setting shown in this image.

<figure><img src="/files/wHkjEw9TwiaE2jt8jQhI" alt=""><figcaption><p>Opt out of all automatic plugin updates.</p></figcaption></figure>

In the event you don't want to opt out of all plugin updates, at present the only option is to manually load the plugin from another location.  Find the plugin(s) installation folder using as demonstrated [here](/getting-started/installation/common-installation-issues#rhino-plug-ins-not-loading).   Copy the plugin folder you want to continue loading to another location and close rhino.

Delete the parent plugin folder from yak packages (or uninstall from package manager), restart Rhino and drag and drop the .rhp file from your new location.  Rhino should not detect this as a package manager plugin and should no longer update it upon restarting.


# Licensing

## Evaluation License (Trial)

The Rhino plug-ins can be evaluated for free for up to 30 days by following the instructions on the previous page.

{% hint style="warning" %}
The trial period begins on the day of the request. Please ensure you download all plug-ins you think you may want to try prior to requesting the license.
{% endhint %}

## Academic License

We provide free access to full functionality of the tools to students for academic use.  If you're teaching, please contact us.

## Commercial License

The commercial license of geometry gym developments is accessed through an internet based license server. This permits the license to float across multiple users and offices (internationally if desired).

More details will be provided upon request.

### Purchasing a License

Purchases can be arranged directly with Geometry Gym via email (recommended to undertake the trial) or we do work with Rhino resellers in various countries. Refer to the sales page at [www.geometrygym.com](http://www.geometrygym.com) for more details.


# License Info and Issues

This page provides some of the license features and technical information

## License

Once the GeometryGym License has been installed correctly on your computer you can access these files from *C:\ProgramData\GeometryGym.*

{% hint style="info" %}
This folder is likely hidden therefore ensure that your folder view settings are set to show hidden folders and files.
{% endhint %}

## License Checkout

A license is 'checked-out' from a companies license pool whenever a Geometry Gym function is run. If using a Grasshopper plug-in component it will get checked out when the component runs, or if using a REVIT GeometryGym command when the command is executed. Once operations are stopped the license will be retained for a period of time before the license is released back to the pool for other users to use.

Typically the license will be checked out for a typical time of 25mins before the license will be released however this can be changed to the desire of the user. In order to edit the duration:

1. Find the company shared license file on your computer by navigating to C:\ProgramData\GeometryGym.
2. Located the file GeomGymShared.xml
3. Add a duration element to the XML file as shown below and save the file.
4. The duration should now be updated.

```
<?xml version="1.0"?>
<License>
<Firm>GG</Firm>
<User>xxxxx</User>
<Duration>5</Duration>
</License>
```

{% hint style="warning" %}
The minimum duration which can be set is 5mins
{% endhint %}

## Typical License Errors

**Error:** Rhino Command Continues to show *Checking out \[Company] license from remote server...*

In this case, it is likely that the license server has encountered a rare outage and likely needs input from Geometry Gym to reset the license server. Please contact <support@geometrygym.com>

{% hint style="info" %}
A license diagnostic tool can be provided to enable further testing of license issues.
{% endhint %}


# Asking for Help

Asking for help

## <support@geometrygym.com>

We love to hear from you, whether you have an idea, are requiring some clarification or are having an issue with a software bug. To enable us to respond as quickly as possible please follow some of the steps below:

* Provide an Example File
* Provide each issue as a **numbered** dot point item
* Isolate the problem where possible
* Provide Version to all applicable software
* Explain what you have attempted to solve the issue?
* What is the desired outcome of a fixed/improved solution?

### Provide an Example File

Where at all possible please provide an example file... Even if the problem can be demonstrated in a simple screenshot please send an example file when requesting help. This way we can make sure the resolution works with your problem or script.

{% hint style="info" %}
Providing a succinct example is the quickest way to get a response to a support query.
{% endhint %}

### Provide each issue as a 'numbered' dot point list

For multiple issues or requests, separating issues into bulleted numbered list allows us to reply in a structured manner and reference numbered items.

### Isolate the problem

If you are having issues with a large model and there are only certain parts in which you are finding issues.

**Example:** Only one or some elements of a large .ifc file are importing into Rhino incorrectly.

For isolating issues in an ifc file please see how you can extract simple IFC files using the RhinoIFC of RevitIFC Tree Viewer.

{% content-ref url="/pages/-Ld82kVQU1lo6-kY0aOr" %}
[Rhino IFC Tree Viewer](/rhino-grasshopper/ifc/ifc-for-rhino/ifc-tree-viewer)
{% endcontent-ref %}

**Example:** An element is not exporting from Revit to Structural Analysis correctly

Provide a small Revit model with only the applicable member in it.

### Provide Software Versions

If you are using Rhino, you can directly generate a support email for a particular version of the GeometryGym plug-in by calling the *gg###ZZSupportRequest* command.

![](/files/aA9j3uxQE11YLAvb48xM)

If this command is not available you can call the *gg###Version* Command or you can look at the installer name of the installer provided that has been installed.


# Learn

Learning Geometry Gym

There are a number of ways in which you can learn the basics and more advanced aspects of using the Geometry Gym plug-in tools.

## Example Files

There are a number of examples which have been added to this guide in the relevant sections. They are generally located under the specific plug-in tabs.

## Learning Grasshopper and Parametric design

A big challenge in fully utilizing the Geometry Gym is to have a good understanding on how to use Grasshopper and other parametric design tools.

If you are new to parametric design there are countless video tutorials online which can help to get you started. We recommend the following websites which are generally tailored to learning specific to the built environment:

* [ThinkParametric](https://technical.geometrygym.com/www.thinkparametric.com)
* [Designalzye](http://designalyze.com/tutorials)
* [Modelab](https://www.youtube.com/channel/UCFwIL20fwOmTUkxJgOPk5Jg)

{% hint style="info" %}
The [Grasshopper 3D website](https://www.grasshopper3d.com/) also has a list of good ways to learn the basics.
{% endhint %}


# Example Files

Example Files for GeometryGym plug-ins (Primarily for Grasshopper)

Example files are a good way to learn how a component can be used and the different features of each. Below are links to all the example file pages. Or you can download a zip file of all associated example files directly. Examples are broken into two types:

* Feature
* Model (Simple/Intermediate/Advanced)

**Feature models** demonstrate a feature, generally specific to one or a series of components to demonstrate one way to use the specific tool. **Model examples** demonstrate multiple features in order to demonstrate a workflow. These can include simple examples of defining a simple beam with loads and extracting results or completing intermediate and advanced analysis on a complex building.

{% hint style="info" %}
If you have any good examples that you would be willing to share or you require a specific example please do get in touch.
{% endhint %}

### BullAnt Examples

{% content-ref url="/pages/-LZqgyGmrs1q1PLMWKK1" %}
[BullAnt Examples](/rhino-grasshopper/bullant/bullant-examples)
{% endcontent-ref %}

### Building Information Modelling (BIM) Examples

Download a Zip of all Building Information Modelling (BIM) Examples here:

{% content-ref url="/pages/-LVH8p1NoWsTaKO3lJFh" %}
[Revit Examples](/rhino-grasshopper/revit/revit-examples)
{% endcontent-ref %}

{% content-ref url="/pages/-LVH8p1a6oLES6IWFoJp" %}
[IFC Examples](/rhino-grasshopper/ifc/ifc-examples)
{% endcontent-ref %}

{% content-ref url="/pages/-LWOusnbeCcI2gztI0ik" %}
[Tekla Examples](/rhino-grasshopper/tekla/tekla-examples)
{% endcontent-ref %}

### Structural Analysis Examples

Download a Zip of all Structural Analysis Examples Here:

{% content-ref url="/pages/-LVH4lXyEV\_OcHsJveGa" %}
[GSA Examples](/rhino-grasshopper/structuralanalysis/gsa/gsa-examples)
{% endcontent-ref %}

{% content-ref url="/pages/-LSmkfaNfMsnbW1pkGHV" %}
[SAP2000 Examples](/rhino-grasshopper/structuralanalysis/sap2000/sap2000-examples)
{% endcontent-ref %}

{% content-ref url="/pages/-LVH4lY15I-57lwJLoM9" %}
[Etabs Examples](/rhino-grasshopper/structuralanalysis/etabs/etabs-examples)
{% endcontent-ref %}

{% content-ref url="/pages/-LSmkoXE3WbZDVRd2KnO" %}
[Robot Examples](/rhino-grasshopper/structuralanalysis/robot/robot-examples)
{% endcontent-ref %}

{% content-ref url="/pages/-LVH6O-nMkDqea5CePHM" %}
[Broken mention](broken://pages/-LVH6O-nMkDqea5CePHM)
{% endcontent-ref %}

{% content-ref url="/pages/-LVH6O-p76\_WX8LqkJ9O" %}
[Strand7 Examples](/rhino-grasshopper/structuralanalysis/strand7/strand7-examples)
{% endcontent-ref %}

{% content-ref url="/pages/-LVH6O-rPexYZxbD9ckd" %}
[Broken mention](broken://pages/-LVH6O-rPexYZxbD9ckd)
{% endcontent-ref %}

{% content-ref url="/pages/-LZhVW59tq3DDMonZIga" %}
[Broken mention](broken://pages/-LZhVW59tq3DDMonZIga)
{% endcontent-ref %}

{% hint style="warning" %}
Examples have been collated from nearly 10 years of work.

While we have tried too keep them up-to-date with the latest plug-in components there may be instances where an older version of the plug-in was used. These components are generally prefixed with `ssi.`

In most cases this should not effect the script from executing and you should be able to see the updated component name if you hover over the component.

If you find an error please let us know so we can update the example.
{% endhint %}


# Tutorials

A list of step-by-step instructed tutorials for beginners

New to Geometry Gym? Or to parametric design in general? Well, you came to the right place.

Below you can find a number of step-by-step tutorials to get you started with Geometry Gym, we host the videos on you-tube and provide scripts and all necessary files associated here.

## Beginner

{% content-ref url="/pages/-LgQCuEMov5v8uPqJ7hD" %}
[IFC to Structural Analysis](/learn/tutorials/ifc-to-structural-analysis)
{% endcontent-ref %}

{% content-ref url="/pages/-LqmgLAhEc3z9F2Ge9sS" %}
[Quick Start Guide - Parametric Structural Analysis (SAP2000)](/learn/tutorials/quick-start-guide-parametric-structural-analysis)
{% endcontent-ref %}

{% content-ref url="/pages/-Lv84huLvRMxuqfgHdtf" %}
[Intro to Rhino.Inside Revit](/learn/tutorials/rhino.inside-revit)
{% endcontent-ref %}

## Intermediate


# Automating Structural Analysis and Design with SPACEGASS

## About this Guide/Tutorial

This series of video tutorials guide you through the complete process of setting up a Structural Analysis project parametrically using Rhino3d and Grasshopper. The tutorial looks at how to think about planning out the logic of the project and then goes through the steps of generating parametric geometry, setting analysis properties, defining loads and load case combinations and then performing automated structural analysis and design with SpaceGass Structural Analysis Software.

The Tutorial is broken up into the following parts:

1. Introduction to the tutorial and developing the base logic
2. Creating the base structural geometry (Video 1)
3. Creating the base structural geometry (Video 2)
4. Assigning structural properties (sections and materials)
5. Assigning structural properties (advanced structural properties)
6. Assigning loads and load combinations to a structural model
7. Performing automated structural analysis with SPACEGASS
8. Performing automated modal frequency analysis with SPACEGASS
9. Performing automated code-based design with SPACEGASS.

Last Updated: 25/08/2020

## Tutorial Files

All Tutorial files can be downloaded from the following [Link](https://drive.google.com/file/d/1UXKhsig37ZdJ1Z3icSM-H-syjMUy7DjK/view?usp=sharing).

## Videos

The videos for this tutorial are provided on our Youtube page.

## Software/Plug-in Required

* Rhino6/Grashopper
* BullAnt (GeometryGym Free plug-in)
* ggRhinoSpaceGass (GeometryGym plug-in)
* SPACEGASS Structural Analysis (Link to Trial Version Below)

{% embed url="<http://spacegass.com/trial/index.htm>" %}


# Integrating Karamba3d with Geometry Gym

This provides some example on how to integrate Karamba3d with GeometryGym

## About this Video

A video presentation on some of the ways you can integrate GeometryGym with Karamba3d. This video looks at a couple of different examples listed below:

* Karamba3d Script conversion to SAP2000
* Existing GSA File import into Karamba3d
* GeometryGym GSA Grasshopper (on canvas) script to Karamba3d Conversion
* Using Karamba3d to Optimise an Existing GSA structural analysis file

Last Updated: 28/08/2020

## Videos

{% embed url="<https://www.youtube.com/watch?v=AlTLxgFQrRo&t=8s>" %}

## Tutorial Files

All Tutorial files (including the pdf presentation file) can be downloaded from the following [LINK](https://drive.google.com/file/d/1W35qOyG6Qe68WHZst2Jkw3ZkTu29YosF/view?usp=sharing)

## Software/Plug-in Required

{% hint style="warning" %}
Not all software required for every example
{% endhint %}

* Rhino6/Grashopper
* BullAnt (GeometryGym Free plug-in)
* ggRhinoGSA (GeometryGym plug-in)
* ggRhinoSAP2000 (GeometryGym plug-in)
* ggRhinoGSA (GeometryGym plug-in)
* Karamba3d
* Oasys GSA
* SAP2000


# Quick Start Guide - Parametric Structural Analysis (SAP2000)

Quick Start Guide on Parametric Structural Analysis with GeometryGym

![](/files/8i5MtAubIQ8jkXEzn2up)

## About this Guide/Tutorial

This guide looks to introduce the Geometry Gym tools for parametric structural analysis using the GeometryGym tools.

The concepts explained in this guide will be aimed at a beginner level for the user to grasp the general concepts of how you can quickly produce a parametric structural analysis model.

Last Updated: 10/10/2019

## Tutorial Files

\*\*\*\*[**Download the guide and tutorial scripts here.**](https://drive.google.com/open?id=1z6WRAm8HQPmhvOz3Ws3-JvtUZwOPYzE2\&authuser=nathan@geometrygym.com\&usp=drive_fs)\*\*\*\*

## Videos

There are currently no videos required for this tutorial.

## Software/Plug-in Required

Software requirements are explained in the guide.


# IFC to Structural Analysis

Video Tutorial on converting IFC to Structural Analysis

## About this Tutorial

In this video we will be converting an IFC model from Tekla or Revit or other application to structural analysis using geometry gym components in grasshopper. In part 2 we will be using Rhino and grasshopper to help guide the model repair process as well as automatically set restraint locations.

Last Updated: 3/06/2019

## Videos

The like below will direct you to the videos for this tutorial

{% embed url="<https://www.youtube.com/watch?v=MTMfbeRU:jM&list=PLajD1zxzDkUd9jXfKgeZ4A9irhNI7o63s>" %}

## Tutorial Files

[Click here](https://drive.google.com/file/d/1O-N7PyjhOOh_XFjTnBpZO6d1p2ra_fxV/view?usp=sharing) to download all applicable files for this tutorial.

## Software/Plug-in Required

### Software

* Rhino 6
* SAP2000 (v21)

### Rhino/Grasshopper Plug-ins

* ggRhinoIFC
* ggBullAnt
* ggRhinoSAP


# Intro to Rhino.Inside Revit

Introduction to Rhino.Inside Revit using Geometry Gym

## About this Tutorial

In these videos you will be introduced to Rhino.Inside Revit using the Geometry Gym RevitIFC plug-in. This tutorial will guide you through the generation of a simple 4 story building with curved facade and generation of automated framing elements.

Last Updated: 3/12/2019

## Videos

The link below will direct you to the videos for this tutorial.

{% embed url="<https://www.youtube.com/watch?v=0m1rn6EAI54&list=PLajD1zxzDkUcq:oEmRWiJP2isEltcUzCG>" %}

## Tutorial Files

[Click here](https://drive.google.com/file/d/1GxOKHUDcEWzXfo3UinKW8CK7no3KR-KZ/view?usp=sharing) to download all applicable files for this tutorial.

## Software/Plug-in Required

### Software

* RhinoWIP

### Rhino/Grasshopper Plug-ins

* ggRevitIFC
* ggRhinoIFC
* ggBullAnt


# "How-to" Guides

A list of short guides on completing common tasks with Geometry Gym

Here you’ll find short answers to “How do I….?” types of questions. These how-to guides don’t cover topics in depth – you’ll find that material throughout the rest of this documentation. However, these guides will help you quickly accomplish common tasks.

## Structural Analysis

* How to transfer an IFC file into a structural analysis model \[In-Development]
* How to go from Grasshopper to Revit \[In-Development]
* How to import and use an existing template file for a structural analysis model \[in-Development]

## Building Information Modelling (BIM)

* Set-up a weekly batch convert
* How to simply interrogate an IFC file \[In-Development]

{% hint style="info" %}
Could not find what you were looking for? [Click to request a how to guide now](mailto:support@geometrygym.com).
{% endhint %}


# Structural Analysis HTGs

How to guides for Structural Analysis


# Convert a Structural Analysis Model through IFC

How to convert a structural analysis file through IFC

The Geometry Gym structural analysis plug-ins allow for conversion from one analysis program to another through IFC.

If you are building a model using say the GSA plug-in and want to test for results in a separate analysis program the Geometry Gym plug-ins allow for a quick conversion by following two steps.

Step 1. Bake to IFC

Step 2. Convert from IFC


# Transfer IFC to Structural Analysis


# BIM How to Guides

## Rhino to IFC

The page below provides information on how to transfer information from Rhino to IFC

{% content-ref url="/pages/-LkbG\_ByaE1vnNjMyaXQ" %}
[Using Rhino IFC Layers](/rhino-grasshopper/ifc/ifc-for-rhino/ifc-export/rhino-ifc-layers)
{% endcontent-ref %}


# Weekly Batch Convert

How to set-up a weekly batch file convert into Revit

{% hint style="danger" %}
WIP
{% endhint %}

## How to set-up a weekly batch file convert into Revit

You may be in the position as a BIM manager where you are receiving a bunch of consultant models on a fortnightly or weekly basis and need to convert these files into a desired program to ensure co-ordination. In this instance we will show how you can bulk convert a number IFC files into Revit files.

We will also show how this process can be automated using a batch `.bat` file using the windows task scheduler.

### Step 1 Batch Convert

Under the GeomGym Tab in Revit there is a button command named **Batch IFC.** This allows you to select


# Introduction

Introduction to Geometry Gym Rhino and Grasshopper Plug-ins

## Rhino and Grasshopper

Rhino3d is a commercial 3D computer graphics and computer-aided design (CAD) application software developed by Robert McNeel & Associates. Rhino geometry is based on the NURBS mathematical model, which focuses on producing mathematically precise representation of curves and free-form surfaces in computer graphics.

Grasshopper is a visual programming language and environment that runs within the Rhino computer-aided design application.

You should have at least a small understanding of how both Rhino and Grasshopper work to take full advantage of the Plug-in that we provide. The websites below will act as a good starting point.

{% embed url="<https://www.rhino3d.com/>" %}

{% embed url="<https://www.grasshopper3d.com/>" %}

## Geometry Gym Plug-ins

### BullAnt Plug-In (FREE)

BullAnt is at the basis of Geometry Gym and provides a number of geometry creation tools, utilities tools, and simple form finding analysis components.

The BullAnt plug-in provides a number of utilities which can be used for a number of different applications both in architecture and structures and is generally required when running a lot of the additional plug-ins (especially structural analysis plug-ins).

{% hint style="info" %}
BullAnt for Rhino-Grasshopper is currently a **free** plug-in.
{% endhint %}

### Structural Analysis Plug-Ins

Geometry Gyms structural analysis plug-ins provide parametric definition of structural analysis models from within the Rhino and Grasshopper environment as well as a multitude of tools for the import and export of model files and conversion of files to and from multiple model formats.

Please see the introduction to Structural Analysis page for all supported structural analysis software.

{% content-ref url="/pages/-LT0msDy350uXohVnILN" %}
[Introduction](/rhino-grasshopper/structuralanalysis/introduction)
{% endcontent-ref %}

### BIM (Building Information Modelling) Plug-ins

The BIM plug-ins which we provide link popular modelling programs with Rhino and Grasshopper or in the case of IFC and gbXML allow the creation of OpenBIM format models through Rhino and Grasshopper current BIM related Plug-ins include:

{% content-ref url="/pages/-LVH8p1OMmjWo9YTghgu" %}
[IFC | ggRhinoIFC](/rhino-grasshopper/ifc)
{% endcontent-ref %}

{% content-ref url="/pages/-LSWzhm2GeTEMPwI7qMg" %}
[Revit | ggRhinoIFC](/rhino-grasshopper/revit)
{% endcontent-ref %}

{% content-ref url="/pages/-LSWzjZ9pHunN2mWffFg" %}
[Tekla | ggRhinoTekla](/rhino-grasshopper/tekla)
{% endcontent-ref %}

## Integrations

There are a number of powerful plug-ins for Rhino and Grasshopper which can enhance your workflows when incorporating Geometry Gym tools. Some of the third party tools we use on a regular basis are listed below:

* Karamba3d
* Kangaroo
* Speckle
* Elefront

The plug-ins above and many more are installed from rhino package manager. &#x20;


# Interface Set-up

Rhino and Grasshopper Interface set-up and navigation

## Rhino Toolbars <a href="#setting-up-rhino-toolbars" id="setting-up-rhino-toolbars"></a>

In the latest version each plug-in installer comes loaded with its own rhino tool bar file and are automatically saved in the Rhino toolbar directory.

If you are using a number of the Geometry Gym plug-ins in Rhino you can create a new toolbar group by using the Tools > Toolbar Layout... from the rhino toolbar.

{% hint style="warning" %}
Note in Rhino 5 toolbars are grouped so you will see all the geometry gym plug-in tool bars even if you have only installed one of the installers. This has been changed in Rhino 6 for each plug-in to have a separate toolbar.
{% endhint %}

You can get more information on setting up a preferred rhino toolbar environment from the Rhino help menu.

## Rhino Command Line

All the Geometry Gym commands that are available from the plug-ins can be access via commands in the Rhino command line.

{% hint style="info" %}
Type **gg** into the Rhino command line to view all the available Geometry Gym commands for your installed plug-ins.
{% endhint %}

There is further explanation of each rhino command under the Tools for Rhino sections in each Category.

### Working with the command line

Many users like to operate Rhino primarily using the toolbars via their mouse, but of course commands can also be run from the menus, or by typing commands (or shortcut aliases) in the command window. Primarily this is the way we work, and this technical documentation will generally refer to commands by their command name (hopefully this allows users to find references in this technical documentation easier).

If you're a convert from CAD programs such as AutoCAD or Microstation, you'll probably be reluctant to learn a whole new suite of commands (however similar they may be) for Rhino. If this is so it is recommend using a Rhino alias to allow you to use command names/shortcuts that you are already familiar with, and most importantly allows you to use multiple cad environments simultaneously without frustration. To do this, use the menu Tools > Options > RhinoOptions > Aliases. A simple example is assigning an alias id to '\_evaluatept.

## Setting Up Grasshopper

Due to the number of structural analysis plug-ins we have the `ggStructuralAnalysis` tab can become hard to manage if multiple plug-ins are installed.

Typically you will only use one or two plug-ins at a time, therefore you can unload the other plug-ins temporarily to free up space on the toolbar.

* Go to Tools -> Options
* Select *Plug-ins* from the browser and then select *Plug-ins that did not ship with Rhino* from the drop down menu
* Deselect plug-ins you are not currently using
* Restart Rhino

![Rhino-plug-in Options](/files/uz3ZE7GelKMHOkZj1Bju)

If you are using Rhino 6 you can also simply create another file in the directory of which the plug-in is loaded with the extension .n06 and this will block the plug-in from loading in grasshopper.

![Blocking Grasshopper Plug-ins in Rhino 6](/files/KtWBUXwnHdRVFOsOuNUs)

​


# Model Set-up

Rhino and Grasshopper model set-up

## Model Tolerance

Rhino commands (and grasshopper components) and tools work to a tolerance that is specified by the user within each Rhino document, and it's quite important that designers are aware of this and have given thought to the tolerance before they start modelling. Because Rhino is used in so many industries and purposes, the installed defaults should be edited for your purpose. You can save your own defaults by opening a new document in your required units (i.e. metre, or millimetre etc).

The default tolerance is specified in your Rhino Template files but can be edited through *Tools > Options* menu.

![Setting tolerance in Rhino](/files/BUop0eZ0VIgfNLBDiOdM)

Problems due to a "loose" tolerance can emerge at later stage of project design, particularly when the model is exported and used as an input to other uses such as rapid prototyping, or Finite Element Analysis. It is recommend setting your tolerance as tight as you dare, and relaxing it when necessary if commands such as the boolean operations, intersection, splitting etc are failing.

Please also keep in mind that when exporting files (for example, export to IFC) with the Geometry Gym plug-ins, the active rhino document nominated tolerance will be used to determine the precision of lengths when writing out. If this is less accurate than the import software or project requirements than this can be made more precise by changing the Rhino Tolerance (or precision).

For further information on tolerance here is the [Rhino wiki entry on tolerance](https://wiki.mcneel.com/rhino/faqtolerances?s\[]=tolerance).

## Model Placement

It's common practise in CAD to model construction projects in worldwide position (ie OS coordinate system).

In Rhino, it is strongly recommend to keep your model in space close to the origin by using a local project axes system. You will likely observe display problems if you use a coordinate system with coordinates of a large value such as those typical in OS. This is because Rhino uses numbers of "single" precision for display mesh positions.

You can set up named construction planes (similar to User Coordinate Systems in AutoCAD) that will enable you to interrogate or specify coordinates in your model in large coordinate systems.


# BullAnt

BullAnt for Rhino Grasshopper


# Introduction

Introduction to the BullAnt plug-in for Rhino Grasshopper

## BullAnt Introduction

## BullAnt Plug-in Updates

For the latest updates to the BullAnt plug-in refer to the page below:


# Structure

Structural


# Profiles

Creating and working with structural profiles with BullAnt

There are a number of ways in-which you can define and place structural profiles within BullAnt.

## Catalogue Profiles

**`ggCatalogueProfile`**

The catalogue component within BullAnt provides access to a wide range of standard sections from around the world to use in your projects.

By right-clicking on the catalogue profile component you can view and select all the available profiles from Geometry Gyms standard library. The image below shows typical country section profiles available.

![](/files/hbX1eIkjQ7D9ekN6fIW8)

{% hint style="info" %}
If there is a list of profiles that you use regularly that are not within the standard profile list please get in touch and we can likely add.
{% endhint %}

### Working with Catalogue Profiles

#### Casting a Catalogue Profile

When working with most profile types, the output in grasshopper will be a IFC profile representation (typically in JSON) format when wired into a grasshopper panel.

If you want to access the plain curve geometry of a profile components allow to cast that geometry to a **Curve** component (to represent the outline) or a **Brep** component (to represent the area) to allow you to bake, manipulate or reference geometry.

![Casting a Profile](/files/UmHL5GkVfQYdgQXhYHNt)

#### Generating lists of profiles

A number of structural programs allow for list section inputs. This may allow for the program to choose which section is best suited when undertaking a design. You also may want to develop your own way of allowing profiles or sections to be chosen from a list of different inputs.

The **ggSearchSectProp** component allows you to use star notation to select a list of associated profiles from the typical Geometry Gym catalogue database. The image below denotes a typical example. You can use the catalogue as a reference for knowing which prefix to use in order to find the appropriate sections.

![Selecting a range of Profiles/Sections](/files/hIPi95TLvjlGXZrb8xeJ)

## User Defined Profiles

There are a set of components under the BullAnt Panel which allow you to create user defined sections for typical structural profiles that are not included in the Geometry Gym standard library for typical shapes. The image below shows some of the typical profile generation types available available.

![BullAnt Custom Profiles](/files/CGYKO2SBEt3s9wbMw2UY)

{% hint style="warning" %}
For complex user defined profiles and tapered sections it is recommended that the ggIFC or ggRevit plugin is used.
{% endhint %}

## User Defined Profile Library

It is also possible to generate your own Profile Library of different shapes. For example you may have a library of custom size Circular sections which are not available within the standard Geometry Gym catologue.

It is possible to add user defined profiles to the standard Geometry Gym Catalogue profiles component. In order to provide user defined profiles to the ggCatalogueProfile component add a .ifc profile library file to the following location.

Instead of having to rebuild these for each grasshopper script it is possible to load these into the standard library folder

C:\Users\\\[*User*]\AppData\Roaming\GeometryGym\UserProfiles

{% hint style="warning" %}
You will likely need to create the UserProfiles folder if no user profiles have been defined.
{% endhint %}

One of the easiest ways of Generating a Profile Library .ifc file is to use grasshopper. You can use Grasshopper to import excel files to generate these libraries as well. For more information on how to generate a user library using Grasshopper visit this page:

{% content-ref url="/pages/-LZraFScO2g5kWJPu\_pW" %}
[Material Profiles](/rhino-grasshopper/ifc/ifc-grasshopper/create-ifc/material-profiles)
{% endcontent-ref %}

## Profile Placement

Note that the default insertion axis for a profile is the origin point (0,0,0) on world XY plane. By taking a top view of the profile you can understand where the centroid placement of the section will be when applying a profile to a given curve.

You can modify this placement on a curve by defining the cardinal insertion point when assigning to a curve. If you need a specific insertion point you can transform (move) the profile curve in relation to the X-Y plane to suit the location.

### Profile on Curve

The **ggProfileOnCurve** on curve component allows you to place a profile along a curve at one or a multitude of curve parameters while providing a vector orientation for the profile.

### Sweep Profile

The **ggSweepProfile** sweep profile on curve allows you to create a swept surface representation of a structural member along a curve.


# Geometry Creation Tools

BullAnt tools to aid parametric design


# Geometric Pattern Tools

BullAnt geometric patterning tools

## Geodesic Dome

**`ggGeoDome`**

A **geodesic dome** is a hemispherical thin-shell structure (lattice-shell) based on a **geodesic** polyhedron. The triangular elements of the **dome** are structurally rigid and distribute the structural stress throughout the structure, making **geodesic domes** able to withstand very heavy loads for their size.

Refer to this [blog post](https://geometrygym.blogspot.com/2010/03/structdrawrhino-grasshopper-geodesic.html#comment-form) on uses for the geodesic dome.

## Polyhedron

**`ggPolyhedron`**

In geometry, a polyhedron is simply a three-dimensional solid which consists of a collection of [polygons](http://mathworld.wolfram.com/Polygon.html), usually joined at their edges. To learn more about polyhedron visit [wolfram](http://mathworld.wolfram.com/Polyhedron.html).

You can build a number using the Geometry Gym Polyhedron tool. Please *right click* on the components type input to view all the available polyhedron types. Use the simple example below to test for yourself.

Example

## Tessellation

**`ggTessellation`**

A tessellation of a flat surface is the tiling of a plane using one or more geometric shapes, called tiles, with no overlaps and no gaps. In mathematics, tessellation can be generalized to higher dimensions and a variety of geometries.

The tessellation tools allows for you to pack over 10 different pattern types onto a planar Brep surface. Hoover over the type input to view all the available polyhedron types. Use the simple example below to test for yourself.

Example


# Model Structure

BullAnt tools to generate simple structural geometry

## From Points

### Connect Point Sets

**`ggConnectPointSets`**

The connect points set component allows you to create polylines through a corresponding set of points (i.e Point 0 from list One to Point 0 in list Two).The result is similar to if you were to flip a 2D point matrix and then use a standard polyline component in grasshopper.

You may use the connect point sets component to create vertical members in a truss, columns in a building or discrete horizontal beams in a beam system.

### Connect Points

**`ggConnectPoints`**

The connect points component allows you to join points using a defined skip pattern. This component also provides the option to sort-points prior to undertaking the connection of points.

You may use the connect point sets component to create horizontal web members in a truss with a defined skip pattern.

## From Curves

### Truss From Curves

**`ggTrussFromCurvesLength`**

The truss from curves component allows you to create truss geometry from two base curves for multiple truss types including Pratt, Warren, Howe, Vierendeel, Brown.

The standard settings will divide each curve equally into a provided number of divisions. However, you can use planar frames from the first curve to generate the division points on the second curve.

### Truss From Curves (Length)

**`ggTrussFromCurvesLength`**

The truss from curves lengths component allows you to create truss geometry from two base curves. Instead of an equal division of the curves points are calculated along the length based on a provided standard division length.

## From Surface

{% hint style="warning" %}
There are currently no tools with BullAnt to generate structural geometry from surfaces. If there is a specific tool you are looking for than please contact us.
{% endhint %}


# Form Finding

Explains some of the form finding components available in Bullant

### Curve Network Force Density

### Curve Network Force Eq Length

### Force Density Relax

#### Force density relax parameters

### Inflate Mesh

### Inflate Surface


# Geometry Utilities

BullAnt geometry utilities

## Point and Vector Utilities

### Proximity Points

**`ggProximityPoints`**

This component selects and outputs the points that are within a provided proximity of a piece of geometry.

**Example**

### OcTree

**`ggOcTree`**

An octree is a tree data structure in which each internal node has exactly eight children. Octrees are most often used to partition a three-dimensional space by recursively subdividing it into eight octants.

The Octree component is an efficient way of locating points within a space.

**Example**

### Vector Streams

**`ggVectorStreams`**

**Example**

## Curve Utilities

### Conv Curve

**`ggConvCurve`**

**Example**

### Lines To Segments

**`ggLinesToSegments`**

**Example**

### PolyCurve

**`ggPolyCurve`**

**Example**

### Polyline To PolyCurve

**`ggPolyLinToPolyCurve`**

**Example**

### Simplify Polyline

**`ggSimplifyPolyLine`**

**Example**

### Remove Duplicates

**`ggRemoveDuplicates`**

**Example**

## Curve Network Utilities

### Cell Fillet

**`ggCellFillet`**

**Example**

### Curves Split Intersect

**`ggCurveSplitIntersect`**

**Example**

### Network Fillet

**`ggNetworkFillet`**

**Example**

### Network Patch

**`ggNetworkPatch`**

**Example**

### Network To Mesh

**`ggNetworktoMesh`**

**Example**

## Mesh Utilities

### Mesh Paths

**`ggMeshPaths`**

**Example**

### Mesh Resize

**`ggMeshResize`**

**Example**

### Mesh to Brep

**`ggMeshtoBrep`**

**Example**

### Mesh False Color

**`ggMeshFalseColor`**

**Example**

## Surface Utilities

### Unroll Surface or Brep

**`ggUnroll`**

**Example**

## **Misc Utilities**

### Breakdown Down Blocks

**`ggBreakDownBlocks`**

**Example**


# List and Tree Utilities

BullAnt List and Tree Utilities

### Dynamic Path Mapper

**`ggDynamicPathMapper`**

**Example**

### Create Tree From Lists

**`ggCreateTreeFromLists`**

**Example**


# BullAnt Examples

A list of examples for the Rhino-Grasshopper BullAnt Plug-In

Download a **.zip** file of all the BullAnt Example Files [Here](https://drive.google.com/uc?id=1QBLfK6rZlrZxOBu3O5MxNCaQRH6-0KSh\&export=download)

## BullAnt Feature Examples

| Example Type                                | Name                                                                                                                            |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| **Structure**                               | [Search List of Section Profile](https://drive.google.com/uc?id=1txHRwmgWWvaDG9atAOR8NXSZoXBNaFmN\&export=download)             |
|                                             | [Catalogue Profile](https://drive.google.com/uc?id=1tvrKGCj7Nye0UFoTTVtkVBwPLhTtp3Ec\&export=download)                          |
| **Creation Tools: Geometric Pattern Tools** | [Tesselation\_Weaire Phelan](https://drive.google.com/uc?id=1KYw8gHpUYOxhWO5jY1bfcKy0vzxau8Om\&export=download)                 |
|                                             | [Geodesic Dome](https://drive.google.com/uc?id=1JBMHaR11Kz2ogXm6dfQQfv-9X7FXtJ4c\&export=download)                              |
| **Creation Tools: Model Structure**         | [Generate Truss from Curves\_By Length](https://drive.google.com/uc?id=1LN9aAuu58Vu_e7Y4chnag5fTPhwINb3t\&export=download)      |
|                                             | [Generate Truss from Curves](https://drive.google.com/uc?id=1LBTdVNwTRShNn2hVLuh6dgrdYAL1Gaob\&export=download)                 |
|                                             | [Connect Point List with Truss Type Pattern](https://drive.google.com/uc?id=1LCVIXJb19FECMBfZQXPxMMHaI-TVgcsD\&export=download) |
| **Form Finding**                            | [Surface Inflation](https://drive.google.com/uc?id=1L__347j2npn76KHegCJn97aufTodzpaq\&export=download)                          |
|                                             | [Mesh Inflation\_Inflate to Target Height](https://drive.google.com/uc?id=1LZYxTjZQb53zWyRUifRC7169D7L-pxbx\&export=download)   |
|                                             | [Mesh Inflation\_Box with Restraints](https://drive.google.com/uc?id=1ImvqDasAhcxVvkiay-OOHDnnlJDcgOwt\&export=download)        |
|                                             | [Mesh Inflation\_Polygon](https://drive.google.com/uc?id=1IlauwW5rI-nt5gXpMrMsyPCLpw1RteyJ\&export=download)                    |
|                                             | [Mesh Relax\_Generic Min Surface](https://drive.google.com/uc?id=1IY9yzbVIZF4CRIDBYcCao-cppldDwnMP\&export=download)            |
|                                             | [Mesh Relax\_Costa Minimul Surface](https://drive.google.com/uc?id=1IUQwr32tNw7X1dog5kkJ64_QOJ-Ukjeg\&export=download)          |
|                                             | [Mesh Relax\_Arc Polycurve Extrusion](https://drive.google.com/uc?id=1II3um02Kc7AaTqpKWuBgY_DOOq-TC-lw\&export=download)        |
| **Geometry Utilities (Point and Vector)**   | [Connect Point Sets](https://drive.google.com/uc?id=1KiXxeGfUq5mu0TOpvzdNj6jk8xQwMpGI\&export=download)                         |
|                                             | [Proximity Points](https://drive.google.com/uc?id=1KhvwnaV8xbgqSXuuG0qpH7AHesCI_7tP\&export=download)                           |
| **Geometry Utilities (Curve)**              | [Simplify Polyline](https://drive.google.com/uc?id=1LELfq3Rq8RIUDsMQ6diO9cLshuxqZRuB\&export=download)                          |
|                                             | [Curve Network to Mesh](https://drive.google.com/uc?id=1LEL6NAXIQBGzwayyDEdw8V9CGEYKRX7U\&export=download)                      |
|                                             | [Curve to Polycurve](https://drive.google.com/uc?id=1KxAWG5bmqoZkLfxWTMYuMzMoufVWNJkG\&export=download)                         |
|                                             | [Remove Duplicate Curves](https://drive.google.com/uc?id=1KstU6trKYu36X6I0CdbWYrJd0Smd006U\&export=download)                    |
|                                             | [Polygons From Curve Network](https://drive.google.com/uc?id=1KmbqrSKX2TKAmzRGfq3V_vh7MZkfj_UO\&export=download)                |
|                                             | [Split Curves at Intersections](https://drive.google.com/uc?id=1KmXlygf9AUZgJvc7UA_ihQODM0twg1Pl\&export=download)              |
|                                             | [Generate Curve Network Patch](https://drive.google.com/uc?id=1JDMUCXyopyBm5WS_T8mnHuiAF5vhkOQ-\&export=download)               |
|                                             | [Network Fillet ORGANIC](https://drive.google.com/uc?id=1IQt5G8xJ3S7GEziFpVqmvhvRPeUg5XFE\&export=download)                     |
|                                             | [Network Fillet](https://drive.google.com/uc?id=1IH5NyiRhYFFgGBHYXd4Oe6Mtn7unfOlX\&export=download)                             |
|                                             | [Voroni Cell fillet](https://drive.google.com/uc?id=1IGmy6STvFt9lTepCR84ECzq7DjMrXSEI\&export=download)                         |
| **Geometry Utilities (Mesh)**               | [Mesh Resize](https://drive.google.com/uc?id=1LTpPrlwiV-qyM2yx7lgulXcV-BZdFOtl\&export=download)                                |
|                                             | [Mesh Paths](https://drive.google.com/uc?id=1LSLwqLA_QvKqATKbp4ap-CUER_h1c1dk\&export=download)                                 |
| **Geometry Utilities (Surface)**            |                                                                                                                                 |
| **List and Tree Utilities**                 | [Create Tree from Lists](https://drive.google.com/uc?id=1KzyqzaYF731geH0CRtINMe_CZ4CRogs1\&export=download)                     |
|                                             | [Dynamic Path Mapper](https://drive.google.com/uc?id=1L4pZ6u2NJZJdD-M0M0JNQdEqwgtOZ2pY\&export=download)                        |
| **Misc Utilties**                           | [Generate False Color on Mesh](https://drive.google.com/uc?id=1KUGjLKoodZkfLk0QJCBO2jP9dUs8iCYu\&export=download)               |
|                                             |                                                                                                                                 |

## BullAnt Model Examples

| Example Type     | Name                                                                                                                 |
| ---------------- | -------------------------------------------------------------------------------------------------------------------- |
| **Simple**       | [Relaxed Mesh Roof](https://drive.google.com/uc?id=1KYwHsbnyxYJMb5mrcUOAFvOcz9dAzOiB\&export=download)               |
|                  | [3 Pin Truss Example](https://drive.google.com/uc?id=1KWsptGmr8xwRAot8UaHMmTe8oEu3l6ep\&export=download)             |
|                  | [Recreate Great Court Roof](https://drive.google.com/uc?id=1KO7hFfckE8bMrtWzRuKkqc5QknqiBBVw\&export=download)       |
|                  | [Elliptical Main Stadium Example](https://drive.google.com/uc?id=1KLM1JjUaLMF1GTeMz2x4EypCMmPy6tVD\&export=download) |
|                  | [Watercube Using Tesselation](https://drive.google.com/uc?id=1Ity1fRVjQwDPcxWLJG3KrTf7RQtjnJZx\&export=download)     |
| **Intermediate** |                                                                                                                      |
| **Advanced**     |                                                                                                                      |
|                  |                                                                                                                      |


# Structural Analysis

Geometry Gym Structural Analysis Plug-ins for Rhino-Grasshopper


# Introduction

Introduction to Structural Analysis

The Geometry Gym structural analysis plug-ins for Rhino and Grasshopper provide an efficient way of modelling, setting load and load combination data performing remote analysis operations, reading results and automating the overall design process of structures.

We currently have downloadable plug-ins for all the following structural analysis programs listed below.

{% content-ref url="/pages/-LSX-11fp9u6D9ukQoEx" %}
[GSA | ggRhinoGSA](/rhino-grasshopper/structuralanalysis/gsa)
{% endcontent-ref %}

{% content-ref url="/pages/-LSX-BNvWHlkz7QgvZC6" %}
[Etabs | ggRhinoEtabs](/rhino-grasshopper/structuralanalysis/etabs)
{% endcontent-ref %}

{% content-ref url="/pages/-LSX-wEfL-\_14zkIO\_EI" %}
[SAP2000 | ggRhinoSAP](/rhino-grasshopper/structuralanalysis/sap2000)
{% endcontent-ref %}

{% content-ref url="/pages/-LSX-Dnvr83hc9yNGTrx" %}
[ROBOT | ggRhinoRobot](/rhino-grasshopper/structuralanalysis/robot)
{% endcontent-ref %}

{% content-ref url="/pages/RN9tVzC87fQhGSLly5KY" %}
[SPACE GASS | ggRhinoSpaceGass](/rhino-grasshopper/structuralanalysis/spacegass)
{% endcontent-ref %}

{% content-ref url="/pages/-LSX-s0fqg93wsD9\_Kup" %}
[Strand7 | ggRhinoStrand7](/rhino-grasshopper/structuralanalysis/strand7)
{% endcontent-ref %}

{% hint style="info" %}
Geometry Gym can also provide development services to provide Rhino and Grasshopper plug-ins for linking in-house analysis software packages with Rhino and Grasshopper.
{% endhint %}

## Plug-in Structure

The general approach to plug-ins for structural analysis packages is to provide a plug-in for each structural analysis program. In doing so we can provide the user with similar terms and notations to inputs and outputs you would expect when using that particular application manually.

The alternative option to this would be where you build an entire model using a set object model, say IFC components (with its own definitions) and then select what Application to convert that too on export (or baking of the model), or say when you run the bake.

While the latter option may be something we go towards in the future, we believe that our current plug-ins allow for more transparency around input and output data for each particular program and allows us to extend each plug-in to encapsulate the full capabilities of each structural analysis application.

{% hint style="info" %}
There are a number of different ways we provide to send and receive structural analysis models between different analysis programs, BIM applications and file formats.
{% endhint %}

## Current Features

Features available for all of our current packages vary and typically depend on the number of requests and ideas we have had from our user for improvements and additions.

We develop plug-in features on a demand and feedback basis, but can also provide updates in a very quick time frame as we do not have typical releases.

{% hint style="info" %}
If there is something that can be done in the structural program you are using and you think it can be automated to better help your workflow we would like to hear about it so we can continually improve the product.
{% endhint %}

## Data Validity

It is the responsibility of the designer to ensure that all structural analysis data is transferred correctly and that results are coming out as expected. We generally recommend to set-up a number of small models that allow easy validation through a traditional calculation method to ensure data validity.

We provide a number of simple examples under each structural program page which should help.


# Structural Analysis plug-in General

Geometry Gym plug-in model and user interface


# Tools for Rhino


# Import/Export Tools

Import/Export tools for rhino structural analysis plug-ins

## Import Tools

### Interpret Model

**`ggInterpretStrand7`**

Interpret model will import a structural analysis model from the given software and bake it into rhino objects with attributes associated with the structural analysis model. You can later strip objects of the associated data by using the strip

{% hint style="info" %}
For text based import files, the interpret model function allows either a file input or a paste from clipboard option.
{% endhint %}

## Export Tools

### Generate Model Data

**`ggStrand7GenStructure`**

Generate model data allows you to build a structural analysis file from the associated objects within Rhino.


# Conversion Tools

Structural analysis conversion tools

## Convert From IFC

**`ggETABSConvertFromIFC`**

Convert from IFC allows an IFC model to be converted into a structural analysis model (of the chosen format) within the Rhino work space. This model can be saved as a separate file in the structural analysis programs file format ready for import into that particular program.

{% hint style="warning" %}
The output quality of the structural analysis model created can sometime be dependent on the quality and data associated with the particular IFC file being imported. When exporting IFC from an external software application, you may need to tweak export settings to get the best results from conversion.
{% endhint %}

### Convert IFC Options

The following options provide a number of ways to help generate and provide analytical model correction or "snapping" together of an analytical model and help map materials and/or profile shapes through to structural analysis.

#### Plan Node Seek (tolerance)

#### Vertical Node Seek (tolerance)

#### Flex tolerance

#### Split

#### Project

#### Horizontal Planes

#### Projection Planes

#### MatMapPath

#### ProfMapPath

## Convert To IFC

**`ggETABSConvertToIFC`**

Convert to IFC allows you to select a structural analysis file from a given program and convert that file into an IFC file format.


# General Tools

General structural analysis tools for rhino

Each structural plug-in is basically at its core a rhino plug-in which allows import, export and manipulation from within Rhino.

Each structural analysis plug-in has a similar approach with some additional tools available for some specific tools available within each.

## Manipulation Tools

### Strip Model Data

**`ggStrand7DeleteModel [object Action = Strip_Data]`**

This command will strip representative model geometry of structural analysis data. You may want to do this when issuing models for co-ordination or to reduce file size.

### Delete objects of Model

**`ggStrand7DeleteModel [Object Action = Delete]`**

You can delete all representative model geometry and structural analysis data by using this command.

### Extract Data

**`ggSAPGetStructText [Object Source = CurrentModel/Visible/Selection]`**

Extract data allows you to generate a structural analysis file of a selection of or all of the elements within the current open Rhino file. The selection can be made from either current model which includes all model elements, a selection of objects or objects visible within the open Rhino view port.

### Summary of selected objects

**`ggSAPGetSelectSummary`**

After importing a structural model into Rhino, you can select a number of (portion) of the elements in the Rhino view port and retrieve a summary of those selected elements.

## Display Tools

### Label Nodes

**`ggStrand7LabelNodes`**

Turn on structural node information within the rhino view port, subsequently you can toggle this on and off.

### Label Elements

**`ggStrand7LabelElems`**

Turn on structural element information within the rhino view port, subsequently you can toggle this on/off.


# GH User Interface

Plug-in Interface for Structural Analysis Plug-ins

## Rhino

Refer interface set-up for details of Rhino toolbars and menus.

{% content-ref url="/pages/-LSlwUGUE69C3HmbIv5I" %}
[Interface Set-up](/rhino-grasshopper/introduction/setting-up-a-toolbar-group)
{% endcontent-ref %}

## Grasshopper

The image below highlights a typical structural plug-in interface within the grasshopper environment. Some will vary depending on the extent of features available for each particular plug-in however all follow a similar logic.

![Typical Grasshopper Layout for a Structural Plugin](/files/fLhuIr1BPeJRqHwH1Qsl)

For each structural plug-in the following layout with some plug-ins having special plug-ins depending on the additional features (outside of general building structure) that a program.

The typical tabs and the components within those are explained below.

### Base Tab

* Bake Component
* Model Definition Attributes (Grids and Levels)
* Import/Export options
* Model Decompose Components

### Attributes Tab

The Attributes tab consists of components used primarily to establish engineering and design information input required for model element definition such as materials from the material library or user defined materials, Point attributes to define support reactions, properties of structural members etc.

* Materials
* Node Support/Restraint
* Node Attributes
* Properties and Attributes for Curve and Area Elements
* Property parameters
* Staged construction properties and stages

{% content-ref url="/pages/-LT0ynaW9R5SLqnzsr3M" %}
[Materials](/rhino-grasshopper/structuralanalysis/geometry-gym-model/materials)
{% endcontent-ref %}

{% content-ref url="/pages/-LVH8p1Z6JJtTiVsBHgh" %}
[Properties and Property Sets](/rhino-grasshopper/ifc/ifc-grasshopper/create-ifc/properties)
{% endcontent-ref %}

### Elements Tab

* Create Structural Node elements
* Create Curve and Area Elements
* Create Solid Elements (where applicable)
* Define Lists of Structural members
* Decompose beam and Area element components

{% content-ref url="/pages/-LT-jDvZhS9lsNeTDqf6" %}
[Elements](/rhino-grasshopper/revit/working-with-ggrvt/elements)
{% endcontent-ref %}

### Loads Tab

* Load Cases
* Load Combinations
* Curve and Area loading's
* Decompose Loading (where applicable)

### Solver Tab

* Analysis Type Selection
* Solver Interaction Component
* Results Query Components
* Results Decomposition

### Design Tab

* Create design member properties
* Steel restraint properties


# Structural Model


# Structural Model Basics

Background to how Geometry Gym Structural Analysis Model.

If you are new to Grasshopper or new to the Geometry Gym tools the following information will be helpful in helping you understand how Geometry Gym works and integrates with Rhino and Grasshopper. This section with go through some of the background on:

* Understanding how a structural model is generated within Grasshopper when using GeometryGym components.
* How to work with typical Structural Objects including casting and decomposing

When going through this section it would be best to have a small example open to follow along on what is occurring when performing different operations.

## The Structural Model in Grasshopper

### The Virtual Model

For any structural analysis application there is typically a database (or bunch of lists) which define the different aspects of a structural analysis model and how they interact. For example, you will have a list of materials, a list of structural section properties and a list of elements etc.

Typically to define a curve element in your analysis model you will have to:

1. Draw a line.
2. Define a section property by selecting a section profile from a library and also selecting a material from a list of materials that you have likely also created.
3. Select that section property to assign from your list of defined section properties.
4. Once you have defined that element in the model two structural nodes are automatically generated so you can start to connect other elements to it and so on.

Geometry Gym allows you to do the exact same thing using Grasshopper by allowing the user to create these objects using components and then define thier relationships through visual programming (known as wiring). I will use this example and the image below to explain how this works. The image below uses the ggEtabs plug-in components.

{% hint style="warning" %}
Typically when completing these operations in a structural analysis program the program will take care of most of the leg work behind setting up the relationships between the different lists. When using grasshopper you are required to explictly define these relationships. The benefit is that it provides the user with alot more control and flexibility when making changes to geometry and properties.
{% endhint %}

![Geometry Gym Virtual Model](/files/Tx2pL1iqDgFMpYfJH7pj)

When a Geometry Gym component relating to a structural concept is added to the canvas, for example, a material component, that component creates the material and automatically sends it (in the background) to a '*Virtual*' structural analysis model. Basically, it is adding the created material to a list of materials in the model, similar to if you were creating a material in an analysis application. If another material component is placed onto the canvas that material will also be added to the list and so on.

When a Section(or Frame) property component to the canvas a similar process occurs. Once the required inputs are provided, in this case, the material and a[ catalogue profile](/rhino-grasshopper/bullant/structure/profiles#catalogue-profiles) the generated property is added to a list of section properties along with the relationship between the material and the section property defined by the wiring.

Finally in order to create the element bring a CreateFrame component onto the canvas and provide the required inputs. In this case, a geometric curve which I have referenced from Rhino and the created property. This component then sends the 'Structural Beam' to a list of elements in the Virtual analysis model. And as you will see two structural nodes are also generated in the model.

It is important to note that the input geometric curve that is referenced in the create frame component is not apart of the analysis model, it simply defines the Beam axis. To demonstrate this, swap the input curve with another referenced curve. From the image below, there are two curves avaliable but still only one beam in the structural analysis model. However, the previous relationships defined between properties and materials are not lost. This is the power of Grasshopper!

![](/files/BrVJzMcjKnan9Mh69T7W)

{% hint style="info" %}
As objects are created (or deleted), the virtual model is continually updated in the background depending on the components present on the canvas.
{% endhint %}

You can test and see how this works by dragging a model decompose component onto the canvas. This is a handy way to keep track of the model as it is built up. The image below shows how different lists are built up as components are added or deleted from the canvas for a particular structural analysis plug-in.

![Gif showing virtual model manipulation](/files/bukfogMM2vaBZRKD2QRg)

{% hint style="warning" %}
Currently, there is a limitation that only allows **ONE** model of a particular plug-in per grasshopper canvas. **Note:** that you could have a GSA model and a SAP2000 model on the same canvas.
{% endhint %}

### Accessing Model Information

Because the model is virtual you can assess model information without neccesarily needing to feed data through a wire into a component. The **ggDecomposeModel** component provides the ability to retrieve all the information which is stored in the virtual structural analysis model. Basicilly extracting the lists different materials and properties. It is a very helpful way of retrieving model information without having to back-track through a script to see where that object is being created.

![](/files/epNO4RuR5psqkI1XuOZF)

## Working with Structural Objects

### Casting Objects

In programming, casting refers to changing an object type to another data type or another 'available' representation of that object. Grasshopper allows this in an efficient way by allowing a developer to set which types of standard Grasshopper objects a Geometry Gym object can be cast/converted to. The simplest form of this is outputting of any Grasshopper component parameter to a *panel* component. This basically provides the string (or text) representation of the object.

One of the benefits of Geometry Gym is that it allows a number of castings from structural model information to allow the user easy access to Model Database Information (Primarily Geometry representation) and other information in a smart way.

{% hint style="warning" %}
Once an object has been cast to another representation it can no longer be used as a mechanism to
{% endhint %}

Some typical casting that Geometry Gym allows in Grasshopper:

* Profile outline to a Grasshopper Curve (Located at 0,0,0 on XY Plane)
* 1d Structural Elements to Grasshopper Curve (Member Axis)
* 1d Structural Element Grasshopper Integer (Member ID)
* 1d Structural Elements to Grasshopper Brep Representation (Member Geometry)
* 2d Structural Elements to Grasshopper Surface
* Building Story Level to a Grasshopper Plane
* Structural Object to Grasshopper Integer (Representing the ID of the Object in the Structural Analysis Model Database)

Being able to cast objects is very useful when trying to group or 'dispact' and structural elements

### Decomposing Objects

Like the model, structural objects can also be decomposed into the parts which define the object and this can also be using for managing or dispatching structural data. For instance a Beam can be decomposed to provide output of its component parts such as the property, structural ID, axis curve and orientation plane.

Notice from the image below that the object can be decomposed by wiring the Frame decompose component from where it was created **OR** from the list of frame elements provided from the model decompose component.

![](/files/awKE7G4ToxHaG8PVBYwl)

{% hint style="warning" %}
Not all structural elements have representing decompose components, and this is typically to reduce the number of overall components in a plug-in. As a user if you would like to beable to decompose a structural object please get in contact with us.
{% endhint %}


# Bake Model (Export)

Baking a structural analysis model to the application

## Bake Model

The **ggBake** Component is probably one of the most important components within a GeometryGym Plug-in. This is the component which is responsible for triggering the export of a defined model within the grasshopper script to a structural analysis application. Depending on the application and the different ways we communicate with the program, this may perform differently.

{% hint style="info" %}
To quickly bake the Model, double click on this component.
{% endhint %}

When baking to an API or COM interfaced application this should automatically open the program and generate the model to a project. For text-based application interactions (such as SpaceGass and Strand7) this will prompt you to save a file to your computer which you will then need to import into the structural analysis program.

### Bake Model Options

The bake model component also stores a lot of the options available when working with different applications. For example, you may select which application version you may want to export to or define which units you would like to bake your model too. You can access the available options for each by right-clicking on the **bake** model component.

Each plug-in will have a different set of options to choose from depending on the requirements of the application. For specific options in relation to a plug-in visit the specifics page of that plug-in.

Typical bake options are explained below.

![Some typical Bake Options for different plug-ins](/files/crDdzHnamgae979CTnkq)

#### Clipboard Summary

When working with a file output format which is .txt this allows you to copy the contents of the structural model file to the clipboard rather than writing directly to file.

#### New Model Each Bake

By selecting the new model each bake, you are telling the plug-in to create a new project each time you execute the bake. By not checking this option you will be expecting the plug-in to check an existing model be updated from tags associated to the members provided in a previous bake.

For models exported via a file, this should always be selected.

#### Tag for Update/Replace

This option ensures elements in the model will be tagged with a GeometryGym tag. We can use this tag to update or replace an element in future bake revisions.

#### Suppress License Warnings

Depending on the program you are attempting to bake to you can select to not see any appropriate license warning which may pop-up during the open process. This is only applicable to applications using an API or COM interface.

#### Bake Model

By selecting the Bake Model, you are completing the same execution as double-clicking on the component.

#### Export Model to IFC

You can directly export a structural analysis model you have generated using any of the structural analysis plug-ins to an .ifc file. By clicking this option you can select which IFC Version (i.e IFC4 or IFC2x3) you would like to export to. Upon selection, you should be prompted with a dialogue asking where you would like to save the IFC file.

#### Export Model to DSTV

**DSTV** format is an industry-standard defined by the German Steel Construction Association (Deutsche Stahlbau-Verband). A **DSTV file** is a text **file** in ASCII format\*\*.\*\*

GeometryGym allows you to export a structural analysis model to the DSTV format by clicking on this button. Upon selection, you should be prompted with a dialogue asking where you would like to save the DSTV file.

### Component Selection

There are a number of utilities in the gg Components which allow for mass management of components associated with a specific plug-in.

![Selecting plug-in components on the Grasshopper canvas.](/files/SzvBilXlpEtXIASjR6LK)

## Baking Issues

As the model is baking to the structural analysis program a log of the baking process is provided in the Rhino command line. This can often be overlooked when finding issues.

##


# Import Structural Analysis Model

Details on Importing and Existing Structural Analysis Model

The Geometry Gym tools allow users to import an existing structural analysis model that has already been built from an external application. This might be helpful in a number of instances.

* Query analysis results for a certain element from an existing analysis model.
* Import a company standard template file to reference.
* Modify an existing Analysis model (limited functionality currently available)
* Import a model to provide an enhanced visual representation of the model using Rhino

## Importing Data

Most of the structural plug-ins incorporate components to Import Data. This component can be found under the base plug-in tab and is called **gg#ImportData**. Depending on the application file type you are trying to import this component may work slightly different.

* **API:** If the application is supported by us through an API interface the program will be started automatically and the file imported.
* **Text:** If the file is supported through a text file interface typically you will have to read the file contents using a **Read File** grasshopper component and then provide the output into the Data component.

![Import data component](/files/JHx3ll5cWaQpdznR4tRk)

The table below shows which programs support API or Text interfaces.

### Program Interfaces and File formats

| Program   | API/Text | Text File | Text File Type |
| --------- | -------- | --------- | -------------- |
| GSA       | Yes      | Yes       | .gwa           |
| SAP2000   | Yes      | Limited   |                |
| Etabs     | Yes      | Limited   |                |
| Robot     | Yes      | No        |                |
| SpaceGass | Limited  | Yes       | .txt           |
| Strand7   | No       | Yes       | .txt           |
| SCIA      | No       | Yes       |                |
| Sofistik  | No       | Yes       |                |

###

### Database Insert

When importing a model the user has an option to either *Insert* the imported data to the existing grasshopper GeometryGym database *or* simply *Reference* the data.

For example, if Database Insert is set to true and the imported file has 50 materials and 20 section types etc these will be imported and added/merged to any existing materials or sections already created from any ggCreateMaterial or ggCreateBeamProp components on the grasshopper canvas.

{% hint style="info" %}
Use the **ggModelDecompose** component to keep track of the information in the Structural Database.
{% endhint %}

If the BakeModel component is then used to bake the structure the baked model will contain all combined Materials and Section Properties.

{% hint style="danger" %}
**There are limitations to this.** When importing information for some software information used in the definition of it may be lost this is typically the case for API applications where there may not be API calls allow access to certain information.

Therefore, sometimes it is better to use this as a reference only as explained below.
{% endhint %}

Setting the *Database Insert* parameter to **false** allows a user to reference information from an imported model such as properties, materials or load cases. You may want to use this information to assign an imported material property or a grasshopper defined load to a load case which may already be defined in a template file.

When importing models from a file, you will need to ensure that you have saved as (or exported) the correct file type from the source program. The table below explains which file format is required for each.


# Convert Model

Explanation on converting analysis models

## Convert IFC to Structural Analysis

For each of the structural analysis plug-ins in Rhino there is a **ggConvertIFC** component which will convert a IFC file into a structural analysis model. As apart of this process the Structural analysis detection engine is run.

{% hint style="info" %}
You can also generate a structural analysis model within the IFC plug-in, generating a program agnostic model and then use that to import into your desired Analysis program at a later date.
{% endhint %}

## Bake to IFC

**`gg###Stream Bake IFC`**

Each structural analysis plug-in has a component which allow baking of the generated model data from within grasshopper to a `.ifc` file through the stream bake to IFC component.

After generating a structural analysis model within grasshopper, create a empty .ifc file in a desired location on your pc. This can be done by creating an empty `.text` file and renaming the extension to `.ifc`.

Reference that file into grasshopper and enable the export. The model should now be exported to the .ifc file format.

![Streambake to IFC](/files/RMMHXZlWGeIy5hLVK5zf)

## Convert from IFC

**`gg###Convert Ifc`**

Like the stream bake to IFC component, each structural plug-in should also have a convert from IFC component which allows for an IFC file to be converted from `.ifc` to a file format that can be imported into the desired analysis program.

In a similar fashion to the bake component, create a blank file in a desired location on your PC with the correct extension to suit the text format import file type of that program. Once you enable the component the file should write to the desired location.

Click[ here ](/rhino-grasshopper/structuralanalysis/geometry-gym-model/structural-model/converting-analysis-models)for information on correct file formats for the desired programs.

![Convert IFC](/files/4HMcbQ61GmMdGsDZGWEz)

Lastly, import the file through the desired structural analysis program. In this case we have converted from IFC into strand 7.

![A converted .ifc file to Strand7](/files/7Bzv58yfOBlNyCpSJbKu)

{% hint style="warning" %}
If you notice parts of the structural analysis not transferring into the desired program please contact us.
{% endhint %}


# Structural Analysis Detection from BIM

Converting IFC BIM Models to Structural Analysis

Within the Geometry Gym tool kit is an engine for automated structural analysis detection which allows for the conversion of BIM models to Structural Analysis. and also IFC allows for automated **structural analysis detection,** which \*\*\*\*allows for the conversion of a IFC model into a structural analysis model.

Geometry Gyms Structural Detection engine aims to solve 2 problems:

1. Where no analytical model exists within an IFC export **create an analytical model**.
2. Once an analytical model does exist, perform snapping operations to ensure a well **connected** model.

If an analytical model exists within the .ifc file you can choose to either choose to use it or create a new one from the BIM elements.

#### Direct Revit Export to Structural Analysis

We do provide tools for Revit which automate the process of Revit directly to Structural Analysis programs. The primary process is explained below, but for Revit specifics please see page below:

{% content-ref url="/pages/-LfyT0H1s8EOloKKJr55" %}
[Revit to Structural Analysis](/revit/export-to-struct-analysis)
{% endcontent-ref %}

## Analytical Model

The .ifc file type allows for a structural analysis model definition to exist within an IFC file. This is similar to say the analytical model in Revit if you are familiar.

A lot of authoring programs such as Revit, Tekla, etc do not include the Structural/Analytical model when exporting an IFC file and also provide fairly primitive tools to control it and ensure a well linked model. Typically because a lot of the time it is also not the purpose of the model itself, it may be for documentation or shop detailing purposes.

### Analysis Snapping Process

The Geometry analysis model snapping process completes a series of operations in order to provide the user with a well linked structural analysis model.

The snapping process performs the following steps in order:

1. Inclusion/Exclusion Element Filters
2. Member Aggregation
3. Column Placement, Splitting and Snapping
4. Member Placement, Splitting and Snapping
5. Assigning of Restraints (if Applicable)

{% hint style="warning" %}
You may never get a 100% snapped model but the more you can improve this process the less time spent manually adjusting models down stream.
{% endhint %}

### 1. Inclusion/Exclusion Element Filters

Depending on the nature of the IFC

When exporting directly from Revit you can easily select whether a member should be included in the structural analysis output by deselecting.

### Member Aggregation

To enhance the snapping procedure and allow greater user input we define an element aggregation procedure prior to the conversion taking place. Currently this is not exposed to the user (i.e the user cannot explicitly select how a member can be aggregated) and we do this automatically for the following member types.

* Brace
* Column
* Primary Member
* Secondary Member
* Purlin

We currently separate the elements by some defining features apparent in the IFC. For example, it is checking whether 'brace' or 'bracing' is defined in the either the instance name or type name. The best way to ensure your members are aggregated correctly is to ensure that authoring of member TYPE designations (i.e IfcMember.BRACE).

For exporting with Revit. You can learn more about this [here](http://help.autodesk.com/view/RVT/2019/ENU/?guid=GUID-7119A8C3-A0EE-4568-8C35-750410D867C9%20).

## Detection Options

### Detection Tolerances

#### Plan Node Seek

Currently the **plan node seek** value is used in a couple of instances throughout the snapping process. In the first instance it is used to determine whether a **node** should be snapped to one of the projection planes and also guides some of the calculations for intermediate node creation along members when selected. Secondly, it is used to check whether an element end point is within the distance of a node in the model. In this instance it is not a true 'plan' node seek but a 'proximity' node seek. This applies to all members except for column elements.

If the element has been defined as a **Brace element** then this value is overridden with the inputted brace value.

#### Vertical Node Seek

#### Brace Node Seek

#### Flex Tolerance

#### Opening Size

### Projection and Snapping

#### Split

#### Project

#### HorizPlanes

#### ProjectionPlanes

#### RestraintPlanes

### Class Filters

You can include

#### Include Ifc Class Filter

#### Exclude Ifc Class Filter

### Material and Profile Mapping

#### MatMapPath

\*\*\*\*\*

#### ProfMapPath

**\*\*\*\*\***


# Model Attributes

Setting model attributes

## Units

Geometry gym allows several ways in which to use user preferred units and works with either Imperial or Metric units. For structural analysis, there are two scaling factors which are applied when exporting, one for the measure or length units and one for loading units. This allow you to work in any unit system you desire.

In order to allow this typically a two fold scaling occurs, one at input and one at export. The one at input converts your working units back to the units that geometry gym uses in the background (SI) and the one at export converting into desired analysis units.

When exporting (baking) into an analysis software package, units can be converted again into the desired units of that package. These settings are generally defined by right clicking on the bake component of each analysis plug-in as shown below.

![Setting preferred export units](/files/rxOcwvMyHDyS2VSo7Snd)

{% hint style="warning" %}
If there is no options then standard units of each program are generally used. You should contact support for further information or requests.
{% endhint %}

### Measure Units

For measure units, Geometry Gym will automatically detect which units you are using in your rhino file and apply the scaling factor as required. Note: that you will need to be consistent with what units you are using within each script.

I.e. If you are working in meters in Rhino, **every** input should be in meters in Grasshopper, including inputs for profiles and the like.

### Load Units

For load units, a specific reference cannot be made from Rhino. Therefore, a units input is specified on most of the load components. This again provides the ability to use any type of input loading units. The image below explains the basic concept.

![Setting Load Units](/files/P0t7USoPovF84SFGMz3V)

## Global Axis Systems and Model Positioning

Typically structural analysis software run on a simple co-ordinates system. It is rare that a structural analysis program will allow the input of a shared co-ordinates provide a model positioning system.

If importing a model from an external BIM software application it is sometimes recommended that a model be transposed into a more preferable position for modelling and axis alignment close to the origin.

If you are having trouble with model positioning please contact us to assist.

## Local Axis Systems

Some analysis packages allow you to provide local axis systems for the definition of nodes and members.

This can be helpful for geometrically complex arrangements.

## Levels and Grids

A lot of structural analysis programs allow for the definition of levels and or grids.


# Materials

## Materials

Materials are generally defined as either standard or explicit (user defined) materials

### Standard Materials

Standard materials relates to materials which are available within the specific programs standard library of materials. To be able to use this correctly it is required that you have a good understanding on how the program names and stores materials within the application.

### Explicit Materials

{% hint style="info" %}
Explicit materials are defined by the **create** keyword.
{% endhint %}

When you require to provide a user specific material there are components which can create this for you under each of the plug-in types. Generally create components will allow you to create materials of these different types (depending on the application you are using):

* Elastic Isotropic
* Elastic Orthotropic
* Fabric

Some programs allow for specific material types such as timber, which require further input values or specific design parameters. Where this is available we provide additional components specific to the application.


# Section Properties

Structural section properties

## 1D Section Property (For curve elements)

**`gg[Program]CreateSectionProp`**

A section property can be applied to a line/curve member to create a structural element with a structural analysis model. Generally these are created by a Profile, a Name, a Material, and a list of parameters.

### Profiles

It is important to understand the difference between a profile and a property/section property.

A profile is the geometric representation of a beam or frame element section property. A profile is not a section property as it does not accompany structural attributes such as material grade or other structural attributes associated with structural analysis.

For most structural analysis plug-ins the profiles are generated from the BullAnt plug-in and inputted into each plug-ins specific section property component.

The profile input can also take a string definition, if you are familiar with the section property name in the intended program than you can define this profile as a string.

### Name

The section property name is generally set as the name of the section Profile, however any name can be inputted in here to represent the name of the section property.

### Material

Defines the material to be used for the section property.

### Section Property Parameters

Section property parameters define a set of parameters which a program allows to be imported with a section property. They can also include modification settings and other user attributes.

In some programs the Section Property parameters can also set what type of curve element you are creating for example a tension/compression only element.

### Working with Section Properties

Once a section property is created within the Grasshopper environment the Section Property is assigned an ID. A property can be accessed via its ID when apply a property to a curve element. See the element page for applying section properties for more information.

Please see the example files on section properties and profiles for more information.

## Custom Section Property

### Custom Profile Definitions

Some programs such as GSA allow you to create profiles from different means, such as a list of input lines or poly lines. Where this is possible through a specific program additional components have been added.

### Explicit Section Property

An explicit section property can be set to curve elements by specifying section property mechanical values manually to be applied within the analysis model. There will be no visual representation of the section property when specifying in this manor.

## 2D Section Property (For area elements)

**`gg###Create 2d Finite Element Prop`**

A finite element property is a 2D properties that can be applied to Area or Panel elements and finite element meshes. To create a 2D property you need to define the Name, material, thickness and special parameters associated with the specific program.


# Elements

Structural Elements


# Nodes

Structural Nodes

## Structural Node

**`gg###CreateOrFindNode`**

Structural nodes can be created parametrically through providing a set of 3d points and assigning structural node attributes.

### Node Attributes

**`gg###NodeAtts`**

Node attributes allow you to set specific structural attributes to the node such as boundary conditions incl restraints and supports (spring supports).

#### Low Node ID

By setting a low node ID you can set what the lowest ID number that the node can obtain.

You may want to use this when defining Nodes at different levels of a building.

#### Support

**`gg###Support`**

#### Restraint

**`gg###Restraint`**

### Working with Structural Nodes

Structural nodes defining the ends of curve elements will be automatically detected and generated in the structural model when exported.

{% hint style="warning" %}
You only need to explicitly create a structural node when defining a restraint or load to a structural model.
{% endhint %}

#### Applying Node Constraints

#### Node coincident tolerance

When building a structural model a list of structural nodes are assembled. If structural nodes are set explicitly or beam end nodes are coincident a tolerance can be set to collapse these nodes into a single structural node. The plug-in will automatically set nodes which are explicitly set first and then test for coincident beam nodes.

You can force the creation of a coincident node (i.e one node on top of another by setting the node tolerance input to **zero**. If no input for tolerance is provided than the plug-in will automatically select the tolerance of the rhino document.


# 1D Elements (Curve)

Curve Elements

## Curve Elements

A curve element can take the nature of many different elements in reality such as a structural beam, cable or structural link. However for Geometry Gym they are generally stored within a single 'curve element' list with attributed defined

Structural analysis programs generally define the nature of a curve element in one of two ways:

* Define its type within attributes of a beam element
* Define it as a completely separate element with different

If the program defines these elements separately then the plug-in will generally have separate create element creation components for each. For example **`ggGSACreateBeam`**, **`ggGSACreateCable`**, **`ggGSACreateLink.`** If not than a member type will be defined in the beam attributes of the component.

### Beam Elements

**`gg###CreateBeam`**

#### Property

#### Node Node or Centreline

#### Orientation

#### Angle

#### Attributes

###

### Link Elements

Link elements work in a similar way to beam elements however, do not have any physical representation and typically provide a rigid connection between 2 nodes.

### Cable Elements

## Working with Curve Elements

Create a simple beam

## Curve Element Utilities

### Decompose Beam

**`gg###DecomposeBeam`**

The decompose beam component allow you to deconstruct the attributes of a curve element. By inputting the beam element you can explode out the property, centre line, node points, orientation, Name and ID of the element to be used down stream.

This is extremely helpful when importing a model.


# 2D Elements (Area)

Area Elements

## Area Elements

Area elements are two dimensional elements, these can be meshed (Finite Elements) or larger definitions which will likely be meshed later on by an analysis program, for example the outline of a floor slab.

Depending on the structural analysis program you are using, area elements can also be specified as cladding elements or load panels which do not specifically carry any specific structural properties, and are purely used as load distribution elements.

Generally structural analysis programs will have there own meshing solver (which will generally provide a better result than rhino for meshing), therefore you generally only need to define the outer bounds of a panel and set the meshing options for the programs automatic meshing routines.

{% hint style="warning" %}
You need to make sure you understand how the program you are using deals with Area and panel elements.
{% endhint %}

## Working with Area Elements

Recent requests from users recently enabled for the GSA plugin have included orthotropic material generation, nomination of finite element shape acceptance criteria (warning, severe warning, all) and ability to nominate varying orientation and property assignments throughout extent of mesh.

#### Setting area element mesh options

#### Voids in Area Elements

### FE elements

## Area Element Utilities

### Mesh Convert Finite Elements

**`gg###MeshConvertFiniteElements`**

Most structural analysis programs will only work with planar area or panel elements, therefore if you are working with a heavily curved surface it may be worth meshing the structure prior to import into the particular analysis program.

Also if you have received an already meshed model from another source the mesh convert finite elements tools provides the ability to convert Mesh from Grasshopper (it could have been generated or imported into Rhino) into finite elements with ability to triangulate quad faces failing shape checks.

##


# 3D Elements (Solid)

Under Construction


# Groups/Lists


# Loads


# Loadings

Structural loadings and utilities

Each structural analysis program allows for different loading types and options. The Geometry Gym plug-ins should allow for transfer of any particular loading's you are trying to generate parametrically.

The below shows some of the typical loading types available.

## Node Element Loads

### Node Load

**`gg###LoadNode`**

The node load component allows you to add node / point loads to the structural analysis model. In order to add a node load to the project you will need to have created and input:

* Load case in which the load node is to be applied
* The created structural nodes for where the load is to be applied (you cannot input only points into this)
* Load direction and magnitude and/or the moment direction and magnitude. Both of which take vector inputs.

Once created the node loads will be added to the structural analysis model.

### Node Displacement Load

**`gg###LoadNodeDisplacement`**

A node displacement load is similar to a typical node load however only requires a vector input for the prescribed displacement for the Node. A node displacement is generally applied to an unrestrained node in the model.

**`gg###LoadNodeSettlement`**

A node settlement load is similar to node load however only requires a vector input for the prescribed displacement for the Node. A node settlement is generally applied to an restrained node in the model.

### Working with Node Loads

#### Create a Load node

To create a node load you must first generate the structural nodes.

## Curve Element Loads

### Uniformly Distributed (UDL) Load on Curve

**`gg###LoadCrvUDL`**

### Point Load on Curve

**`gg###LoadCrvPoint`**

### Patch Load on Curve

**`gg###LoadCrvPatch`**

### Curve Prestress Load

**`gg###LoadCrvPrestress`**

### Curve Temperature Load

**`gg###LoadCrvTemp`**

### Working with Curve Loads

## Area Element Loads

### Face Load

**`gg###Load2dFace`**

### 2d Temperate Load

**`gg###Load2dTemp`**

### 2d Prestress Load

**`gg###Load2dPrestress`**

## Load Utilities

### Load Network Tributary Areas

**`gg###LoadNetworkTribArea`**

This tool can be used to compute tributary areas for nodes contained within a structural grid, as well as generating node loads from varying loading phenomena such as snow drifting or wind pressure.

This routine can work out tributary areas for arbitrary grids (based on mid distance from adjacent nodes), grid normal's (although load can be applied in a uniform direction if desired) and utilise a varying loading intensity at different locations. This can be defined (or checked) intuitively from a surface (or polysurface) relative to a reference plane (the local z from datum defines the magnitude of loading pressure).

{% hint style="info" %}
If there are other load utilities that could be of assistance then please get in contact.
{% endhint %}


# Load Cases

Generating Structural Load Cases

## Self Weight / Gravity Loads

## Load Case Types


# Load Combinations


# Automating Analysis and Result Queries

Analysis and solver for structural analysis


# Solver

Description of the Geometry Gym Solver Component

## Solver

A number of our structural analysis plug-ins allow for the automated analysis and results extraction from a structural analysis application. Where available the **ggSolver** component can be used to automate the solving of a Structural Analysis model which has been generated using Geometry Gym components in Grasshopper.

These tools can be quite helpful for some of the following applications:

* To quickly understand what the effects of editing geometry or structural properties have on the structural analysis results.
* Automate Generative Design and Structural Optimisation procedures

Components which relate to the automation of an analysis solver are found under the **ggSolver** panel under the respective structural analysis application plug-ins.

![The SAP2000 Solver Panel in Grasshopper](/files/FvfylmX9vytihqqXZskk)

## Solver

The **ggSolver** component can be used to trigger the running of a structural analysis model and retrieve those results back into Grasshopper.

The solver component completes the following steps once the *Enabled* input is set to true:

1. **Bake the model** (This is similar to using the ggbake component). Refer to solver baking options below for some of the additional options available when the model is baked from the solver component.
2. **Triggers the running of the structural analysis solver** within the structural analysis program. A given list of load cases and combinations to run is populated from the result queries as well as any additional provided in the *Load Cases or Combinations* input.
3. **Extract results** for the provided Result Queries

![Close up of the Solver component](/files/HIvHGWUGSGIzVoQhAFsJ)

### Setting up the solver component

{% hint style="info" %}
Remember to disable the solver by setting Enabled input to **false** until you are ready to solve as this component can be computationally demanding. It is also recommended that it is only enabled when required and then set to false when not.
{% endhint %}

The main inputs required prior to running the solver components are:

**Load cases and combinations:** Here you can specify a flattened list of load cases and combinations to be solved. Sometimes you may want to ensure that some Load cases and combinations are run regardless of whether there is a query associated with them. Therefore, this is an optional input.

**Result Query:** A flattened list of the specific results to be queried and extracted once the load cases and combinations have been run in the structural analysis program. The solver component does attempt to collect a list of the required load case and combinations required to provide the query without the user having to manual specify this through the load cases input above, however, sometimes it may be necessary to manually provide. See more about result queries on the next page.

To run the component and retrieve the queried results enable the component with a Boolean toggle.

#### Solver Baking Options

**Model File:** The *Model File* input can be used to set the save location of the file if you would like to save it once run. Some applications require the model to be saved in the application before the solver can be executed. If this is the case and no Model File location has been set by the user then it is saved to a default location. This is typically where the Grasshopper script is saved.

**Template File:** The *Template File* file input provides the ability to open an existing model file PRIOR to baking the Geometry Gym structural analysis model into the application. This allows for a standard set of properties to be defined in a template file. It may also allow the user to set advanced program features that are not currently available to be set with the Geometry Gym components.

{% hint style="warning" %}
If there are program-specific settings which you cannot find available to set within the plug-in component set please contact us to see if this is available or to add.
{% endhint %}

**Close File:** With some applications, you have the option of closing the file after the analysis and result extraction has run.

**New Model:** The *New Model* option allows you to update an existing structural analysis instance (which has previously been baked) or create a completely new model each time. There may be performance benefits of choosing to update a model rather than creating a new model, however this should check carefully as performing updates on models with large geometric changes can be problematic.

### Analysis Types

Structural analysis applications typically have a number of different solver methods. i.e Static Analysis, Non-Linear, Response Spectrum. Each program sets this up differently, so it will vary on how this is set-up although the analysis types available can typically be found under the solver tab.

These will likely change for most structural applications. You can visit the specific sites for more information on program-specific information.

{% hint style="warning" %}
If an analysis type you would like to run is not available then please contact us.
{% endhint %}

### Solver Options

Solver options typically relate to options available when running the solver within the specific structural analysis application. These will likely change for most structural applications. You can visit the specific sites for more information on program-specific information.

## Typical Solver Issues

As the solver component is completing a number of operations it is prone to errors. Some of the typical errors below may help you troubleshoot some typical errors. If the solver component goes into error mode (turns red) hover over the error bubble to get more context on where the error is occurring.

{% hint style="warning" %}
If you can not solve the issue then please send a copy of your script to use to troubleshoot further.
{% endhint %}

#### Q: Results are not available for the provided result:

**A:** Some possible reasons why results may not be available:

* The load case has not been run correctly. You should check the program to ensure that all the required load cases have run successfully. If a load case has not been run you should force it to be solved by providing it to the Load Cases and Combinations input of the solver component.
* If the program does not provide results for the provided load case. i.e you are requesting beam force results for a modal load case.


# Analysis Result Queries

Query and retrieving structural analysis results

## Querying Analysis Results

Result queries allow for the designer to output results for specific queries related to particular structural elements. With the results, designers can use these to either link to their design calculations or guide updates to the structural analysis model for optimisation purposes.

Under the Solver tab for the structural analysis plug-in there will be a number of query options in-which can be input into the solver component.

In order to query structural analysis results there are three steps to follow:

1. Set-up the **Query** by providing the Element and the Case (or Combination) to query.
2. Provide the Query to the solver component which will \*\*'\*\*Extract' the Query into its **Result Set** output. Read more below about Query to Result Conversion Output Types.
3. **Decompose** the Result to get values, positions etc.

### Query to Result Conversion Output Types

Because result queries are typically dealing with one element which may contain many associated results some query processes have a one to one query to result.

Generally speaking, a query will only have one load case and will have an associated list of elements for which results will be obtained.

#### One Query to One Result Set

A one to one query means that only one Result Set will be provided from the solver component. The query components will only take a list of elements and a specific load case. Typically a one to one Query will have an associated Result Decompose component.

#### One Query to Many Result Sets

Some queries contain the ability to request a range of applicable results. You can select one of these or all of the results.

A one to many Query will have an associated Result Decompose component which will be applicable to each of the result sets which are extracted.

Some of the typical query items are listed below and their associated result Decompose Components:

### Model Queries

A model query is a query which relates to the whole model. A model query does not relate to a specific element within the model and only a load case is required to be provided.

A model query can be decomposed by the corresponding decompose component or it may not require to be decomposed and directly provide a value.

* Model Buckling Factor **ggQuery Buckling Factor**

### Node Element Queries

All node queries have a one query to one result set relationship. All node result sets can be decomposed using the **ggDecomposeNodeSet** component. Some typical Node results which are available to be retrieved are:

* Node Reaction Force **ggQueryNodeReactionForce**
* Node Reaction Moments **ggQueryNodeReactionMoment**
* Node Displacements **ggQueryNodeDisplacement**
* Node Mass **ggQueryNodeMass**

### Curve Element Queries

Typically \*\*\*\*curve/1d element queries have a one query to many result set relationship. All resulting result sets can be decomposed using the **ggDecompose1dSet** component.

Some typical Curve/1d results which are available to be retrieved are:

* Query Curve Element Forces **ggQuery Curve Element Forces**
* Query Curve Element Strain **ggQuery Curve Element Strain**
* Query Curve Element Stress **ggQuery Curve Element Stress**

### Member Utilisation Result

**`gg### ResultMemberUtilisationDecompose`**

### **Area/Mesh Element Queries**

Typically Area/Mesh element queries have a one query to many result set relationship. All resulting results sets can be decomposed using the **ggDecompose2dSet** component.

//Explain more about available options.

## Retrieving structural analysis results

Once the solver has run and analysis results have extracted into the Grasshopper environment, The results will become available from the solver component output.

If you are happy with the output results you can centralise the results within Grasshopper to export into another GH document or use within the current document.

## Decomposing Structural Results

Once you have retrieved the desired the structural results there are a number of components which you can use to break down components of the results. (i.e the x, y , z force reactions of a Node reaction). Some of the decompose utilities are listed below:


# Query Existing Analysis Model

How to automate the querying of an Existing Structural analysis model.

The **ggQuery** component allows you to attach to or use a given existing structural analysis model file to extract results from.

In many cases, you may have developed a structural analysis model directly within a structural analysis program and now want to use Rhino and Grasshopper to perform some calculations based on the analysis results that are trapped inside the structural analysis program.

Unlike the **ggSolve** Component this will not modify the analysis model in any way nor will it tell the structural analysis program to run any analysis. Therefore, you need to ensure that any load case or combinations that have already been run in the model and that it has then been saved in that state.

![Query Component](/files/4KlY9h8iLUMrK5pLA5EV)

The query component will typical take one parameter- The query however it will rely on you using the **ggImportModel** or **ggImportData** component to open the model in the first place. The steps below outline the process shown in the image below.

![Extracting model frequency results from an existing model](/files/6MlSPy78pLPCqSfhFhkT)

### Step 1. Open/Import Existing Model

You can use the **ggImportData** component to import the structural analysis model into Grasshopper. This allows you to filter and specify elements and load cases/combinations in which you are going to query analysis results for.

{% content-ref url="/pages/-LdbyTFoQplgkT70CJxq" %}
[Import Structural Analysis Model](/rhino-grasshopper/structuralanalysis/geometry-gym-model/structural-model/import)
{% endcontent-ref %}

{% hint style="warning" %}
It is best that the model is **not** already open prior to adding this component to the canvas. Once the file path of the analysis model is specified the component will perform the necessary steps in order to open the model.
{% endhint %}

### Step 2. Generate Queries

Queries are generated similar to as if you were going to run through the solver component. Select your query type and the associated elements and for which particular load case.

Follow the steps here for setting up analysis result queries:

{% content-ref url="/pages/-LT0zxfNPBP-hCGu6uPF" %}
[Analysis Result Queries](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver/results)
{% endcontent-ref %}

Once you have set-up your desired queries, wire these into the queries input of the component.

{% hint style="info" %}
Note: this will automatically generate the queries from the analysis model on the fly. If you have multiple queries you may want to disable the component to allow you to perform the query in one go.
{% endhint %}

### Step 3. Decompose

Once the query component has run, you should receive the result data items for the queries you provided. Decompose these results to get the associated results for your use in grasshopper.


# Design

Setting and retrieving program design results


# GSA | ggRhinoGSA

GSA plug-in for Rhino/Grasshopper

## GSA Introduction

## GSA References

## Updates to the GSA Plug-in

For the latest updates to the GSA plug-in refer to the page below:


# GSA Specifics

Items Specific to the GSA plug-in

## GSA Versions

The GSA component allows you to select within the Bake component which version of GSA you would like to bake too. To specify your desired version for export simply drag and drop the **ggGSABakeModel** component onto the canvas and right click to select which version.

![](/files/JFiuMrTAJr7KN0UwvkZG)

{% hint style="info" %}
If you are running the solver component to perform automated calculations, ensure you still provide a bake component which has the correct version selected.
{% endhint %}

## Base

## Attributes

## Elements

## Loads

## Analysis

## Results

## Design


# GSA Examples

A list of examples for the Rhino/Grasshopper GSA plug-in

Download a **.zip** file of all the GSA Example Files [Here](https://drive.google.com/uc?id=1PzXWIm3kJ1EZjFMDCM1Zll84ZdLztcWq\&export=download)

## GSA Feature Examples

| Example Type               | Name                                                                                                                                             |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Import/Export**          |                                                                                                                                                  |
| **Model Definition**       | [Setting project header and location](https://drive.google.com/uc?id=17DFgPVCVJ8ILUeaF9mxjWjh7t3rLLOeL\&export=download)                         |
| **Materials**              |                                                                                                                                                  |
| **Section Properties**     | [Create explicit general property](https://drive.google.com/uc?id=19I-Dnwr7BzcRzz6zEZD_miA_03HqDFW3\&export=download)                            |
|                            | [Setting mesh finite element attributes](https://drive.google.com/uc?id=16vg63ATlfv84fcakAYEnbS0ON1-IbW2M\&export=download)                      |
|                            | [Create beam section profile from lines](https://drive.google.com/uc?id=170IdwMNCyERuy4ZpvWqx_fDEcANFRxC6\&export=download)                      |
|                            | [Numeric section](https://drive.google.com/uc?id=171a2YgP-Q23PfdBekcuKDCsrsbQeDvmL\&export=download)                                             |
|                            | [Define spring property](https://drive.google.com/uc?id=1728DE51fL0koCcJXJotbff2yDZGg6zwl\&export=download)                                      |
|                            | [Define axial spring property](https://drive.google.com/uc?id=173GCkfWVPFnljsh1fiUfhNN61Hiw7Nlr\&export=download)                                |
|                            | [Define spring properties](https://drive.google.com/uc?id=173tfev8rF2xcAoBR0tMVl8cR06EDyMXz\&export=download)                                    |
| **Elements**               | [Create REGION from Brep](https://drive.google.com/uc?id=1Y_rjktZKxTxD9fzW9auvcx0QvWPHO1Yl\&export=download)                                     |
|                            | [Implementing a structural joint with a stage](https://drive.google.com/uc?id=1KiJmIr3AsRi1lfSquQh9DiD8tTZc6zCE\&export=download)                |
|                            | [Beam orientation from surface and support definition](https://drive.google.com/uc?id=18Fg28eIuDE0fA9IWsmHYhbq-IQd2pz5K\&export=download)        |
|                            | [Create beam with orientation and udl loading](https://drive.google.com/uc?id=18I9j9ghbzxg9y4FR8ZMXycU-90gK8Kbi\&export=download)                |
|                            | [Create simple beam definition](https://drive.google.com/uc?id=19S7NExJeT2-TqRfic6FTtPqw00s5Y5C1\&export=download)                               |
|                            | [Setting beam cardinal insertion based on setIDs component](https://drive.google.com/uc?id=18KRWoomrWgcTRb-gd_uytmnczAWb9rp4\&export=download)   |
|                            | [Element List by definition](https://drive.google.com/uc?id=18KaJ9yns4lw7IqF2ghzRuhpUPovbcn4a\&export=download)                                  |
|                            | [Assigning section property with principal axis toggle](https://drive.google.com/uc?id=18RgTYoWopjjTPypcHlXeDYc03C-9fnGF\&export=download)       |
|                            | [Create a finite element from nodes points](https://drive.google.com/uc?id=18XjRWebSPDs2SDiOAzqkvdufT6KHoP-u\&export=download)                   |
|                            | [Setting up a local axis of cylindrical type](https://drive.google.com/uc?id=18bS-xFB5KVgdYS-7361o8n3K7yBIiOmd\&export=download)                 |
|                            | [Finite element with offsets](https://drive.google.com/uc?id=18efKMhIIAXI8ycRlcZQ_woybeeKoDYub\&export=download)                                 |
|                            | [Set rigid constraints](https://drive.google.com/uc?id=18g7Rg4JvPJeOGJA4wU9CERaJdYkYD8zi\&export=download)                                       |
|                            | [Defining a link](https://drive.google.com/uc?id=18hUHPHoDvAMq_MLOYuz3sk9bPKWOEqfb\&export=download)                                             |
|                            | [Create restraints for defined stages](https://drive.google.com/uc?id=18jIvBJ-i7jI5CpyYPlKYWbN5Zpzkt3Z1\&export=download)                        |
|                            | [Create structural region area from lines with mesh settings](https://drive.google.com/uc?id=18paBI1OzGw7TTtqypVQ2K7tdb_UfCKZ0\&export=download) |
|                            | [Transform beam element mirror](https://drive.google.com/uc?id=18uPz-CYWTp54b05c3BIn-UaiskgpC20s\&export=download)                               |
|                            | [Implementing a structural joint](https://drive.google.com/uc?id=18zQ62TABdkw-KK1RZ6seRqJ1CuEjDdPv\&export=download)                             |
|                            | [Section property from planar nurbs surface](https://drive.google.com/uc?id=195aWSdnX1U-Ny-4YbrIhz8lVKNBB9wmW\&export=download)                  |
|                            | [Rhino polyline to GSA area and region](https://drive.google.com/uc?id=19B9XSHE5dO68z0j-uZHu4zt8o86ZiWMF\&export=download)                       |
|                            | [Create areas which are non planar](https://drive.google.com/uc?id=19HYK7j4IF4rxB_uGbkPQ-jR065XYOM72\&export=download)                           |
| **Loads and Combinations** | [Beam Load TEMPERATURE](https://drive.google.com/uc?id=1ElIbRqhfrixniE0sbc4fT_PWUfq_hV8O\&export=download)                                       |
|                            | [Node Loading](https://drive.google.com/uc?id=17SZOLV6dGFg-h00hB4orxO9AGvAk3_f0\&export=download)                                                |
|                            | [Assigning node load moment](https://drive.google.com/uc?id=17Y37ugIM6biZHJWj06wQM1EIaBheL5UU\&export=download)                                  |
|                            | [Create stage loading stage](https://drive.google.com/uc?id=17_hLASl71k5Ps9zdOWF5aVJMRBT-vhfN\&export=download)                                  |
|                            | [Uniform load on panel](https://drive.google.com/uc?id=17nwYSP0aEjVTvyZkysScVL-Tl8J6TIIG\&export=download)                                       |
|                            | [Curve point load](https://drive.google.com/uc?id=17zzGPAfhYe47U0dT5dsSAv50STDCS-YW\&export=download)                                            |
|                            | [Define a load case combination](https://drive.google.com/uc?id=184VzktzQF6Oi2aJMgHOS__uG13Bkc65W\&export=download)                              |
|                            | [Projected pressure loading uniformly distributed](https://drive.google.com/uc?id=187vggUTmiDzVUcrrV2J7MqO4dUCVEmIz\&export=download)            |
|                            | [Loading from BREP network trib area loads](https://drive.google.com/uc?id=188RbNt4ZU46nbN-UFEP9YrveDkRJGaI6\&export=download)                   |
| **Analysis**               | [Generate Analysis Task BRIDGE](https://drive.google.com/uc?id=1FIvgZAxuX691rPqks-Zy3dqZT-sP4hHo\&export=download)                               |
| **Result Queries**         | [Query simple beam forces](https://drive.google.com/uc?id=17LdvqCEwEXK670ANSus04mciUlVFzROk\&export=download)                                    |
|                            | [Setting up footfall analysis case and task](https://drive.google.com/uc?id=19fzFSHIoV_4oZ9t2GmjJautJcR1zh26S\&export=download)                  |
|                            | [Query principal stresses for a flat plate](https://drive.google.com/uc?id=17EhtN1h4f_LY6nilRa6H3Y1GshjbgRoa\&export=download)                   |
|                            | [Query nodal mass of simple beam dynamic modal analysis](https://drive.google.com/uc?id=19UdDYt5w_HF640gwTtHYWgY7hOoH_d-7\&export=download)      |
|                            | [Query projected moment results of FE mesh](https://drive.google.com/uc?id=17RKYe60j9OiM6HWoQ3PCfybL8tXTSlfX\&export=download)                   |
|                            | [Query deflection of a truss](https://drive.google.com/uc?id=19kZyB0MpA9dAwWwwUfV_BJ4VntHC1VAT\&export=download)                                 |
| **Design Features**        | [Steel member design utilization of simple beam](https://drive.google.com/uc?id=19RcTQabuCKMdVN6xBvcTzO_g3u4Tc2ad\&export=download)              |
|                            |                                                                                                                                                  |

## GSA Model Examples

| Example Type     | Name                                                                                                                                          |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Simple**       | [External diagrid tower example with rigid diapraghms](https://drive.google.com/uc?id=1A58jGQu_nJAmpi2Ja30tEnlnN3hlvDM9\&export=download)     |
|                  | [Circular building example find buckling factor](https://drive.google.com/uc?id=1ADffcRB5YfChK3R1Kj33kMeki2qwWyxs\&export=download)           |
|                  | [Circular building example and beam strain results](https://drive.google.com/uc?id=1ALKvMAviJdxMuj7Qi3bRZMboNelAXdj1\&export=download)        |
| **Intermediate** | [Form finding using soap film of fabric canopy structure](https://drive.google.com/uc?id=1ATVzkfw00M8RHt8poHYHP6Ty2OSZ_E2V\&export=download)  |
|                  | [Form finding using normal properties for a mesh grillage](https://drive.google.com/uc?id=1Ae2eeSA0ud5uBGxcbxnsbG3wxiw8-0JH\&export=download) |
|                  | [Form finding using force density of cable lattice bridge](https://drive.google.com/uc?id=1Ao5ZAIw0KWAg6EjuGetf3zGsm4IpPr0u\&export=download) |
|                  | [Non](https://drive.google.com/uc?id=1ApmDuSlkgxvUqhZ63sEGxFrKJl9TOHzN\&export=download)                                                      |
|                  | [Simple tower frame form finding](https://drive.google.com/uc?id=1A04OcfJKep2W5NkChEuwxmJ0P67Tkz5v\&export=download)                          |
| **Advanced**     |                                                                                                                                               |
|                  |                                                                                                                                               |


# Etabs | ggRhinoEtabs

Etabs plug-in for Rhino/Grasshopper

## Etabs Introduction <a href="#gsa-introduction" id="gsa-introduction"></a>

​**ETABS** is an engineering software product that caters to multi-story building analysis and design. Modeling tools and templates, code-based load prescriptions, analysis methods and solution techniques, all coordinate with the grid-like geometry unique to this class of structure.

GeometryGym provides a way of parametrically defining and developing Etabs models using Grasshopper. The plug-in can also be used to import and modify existing Etabs models in a dynamic and parametric way.

## Etabs References <a href="#gsa-references" id="gsa-references"></a>

Learn more about Etabs software:

​<https://www.csiamerica.com/products/etabs>

## Updates to the Etabs Plug-in <a href="#updates-to-the-gsa-plug-in" id="updates-to-the-gsa-plug-in"></a>

For the latest updates to the GSA plug-in refer to the page below:​


# Etabs Specifics

Items Specific to the Etabs plug-in

The below headings relate to specific features within the standard plug-in tabs.

## Base

### Grids

{% hint style="warning" %}
Grids will only work for Etabsv18 and greater.
{% endhint %}

You can use the **ggETABSCreateGridAxisSystem** under the *ggETABSElement* panel to parametrically define a grid axis system within Etabs. X and Y ordinates should be defined by a list of dimensions, as you would define them in Etabs. General grids can be provided by a curve input. For complex geometry you may find that it is easiest to define all input grids as curves.

You can specify a lower level and a upper level story for which the grid system should be applied in the model. This input can be provide by selecting a specific item from a **ggEtabsCreateStorey** component.

![Defining a grid-axis system in Etabs](/files/PYZjM2nMRN8iFl5op9yL)

{% hint style="info" %}
It is possible to provide multiple grid systems in a grasshopper script.
{% endhint %}

#### Decomposing a grid axis system

Grid systems can also be imported into Grasshopper from an existing Etabs file and decomposed in respective X / Y co-ordinate values and general curves. This can allow for easier selection of elements and frames, especially when querying results. Use the **ggEtabsDecomposeGridAxisSystem** to easily decompose a grid axis system into the resulting grid curves.

![Importing and decomposing a Etabs Grid Axis Systems](/files/XgaD35SCtjTfqSMogktr)

### Stories

You can use the **`ggETABSCreateBuildingStorey`** component in grasshopper to create building stories in Etabs. To conform with Etabs story functionality you must have a minimum of two stories defined in grasshopper.

Etabs always requires you to provide a base story. If a story is defined (in GH) with a base elevation of zero, then the name of that story will then be negated and assigned as the base in Etabs.

Although the elevation of this story will generally be zero, if you do not provide a story with an elevation of zero the base elevation in Etabs will be changed to the story elevation closest to zero and again the name defined for this story will be negated and assigned as base in Etabs.

{% hint style="info" %}
You can have a multitude of story components on the canvas to define stories separately.
{% endhint %}

Not here? [See general base page](/rhino-grasshopper/structuralanalysis/etabs/etabs-specifics)

## Attributes

### Frame Sections

#### Create a None frame Section

Sometimes in Etabs you may wish to create a dummy frame element with no section properties assigned. This may be to define a line load within a slab for instance. You can assign a None frame section in grasshopper by providing a string input of 'None' into the name parameter input on the **ggEtabsCreateFrameProp** component or the **ggEtabsCreateFramePropGeneral**. We would typically recommend using the later as the frame prop general does not have a requirement for a Profile to be defined.

![None Frame Section Etabs](/files/wxjDOMvOrKrQpYpFfsKC)

Not here? [See general attributes page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/untitled)

## Elements

Not here? [See general 1d elements section](/rhino-grasshopper/structuralanalysis/geometry-gym-model/common-attributes/1d-elements-curve)

## Loads

Not here? [see general loads section](/rhino-grasshopper/structuralanalysis/geometry-gym-model/loads)

## Analysis

Not here? [See general analysis and solver page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver)

## Results

Not here? [See general results page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver/results)

## Design

Not here? See general design page


# Etabs Examples

A list of examples for the Rhino-Grasshopper Etabs plug-in

Download a **.zip** file of all the Etabs Example Files [Here](https://drive.google.com/uc?id=1Q7ZnnB-SmrMVhM5nyXPVv5xDtd_nqzW7\&export=download)

## Etabs Feature Examples

| Example Type               | Name                                                                                                                              |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| **Import/Export**          | [Using a Template File](https://drive.google.com/uc?id=1-MJYZbq96gpc-Cl-XbNQj7rHxtuHnxu3\&export=download)                        |
| **Model Definition**       | [Define Mass Source](https://drive.google.com/uc?id=1BayMzmJce6CxscmYVJZTgN823IJhlCDI\&export=download)                           |
| **Materials**              |                                                                                                                                   |
| **Section Properties**     | [Create Link Property MULTILINEAR PLASTIC](https://drive.google.com/uc?id=1BPX5ByS6r3VnkBdHl2ymmTIxNSfGNy9a\&export=download)     |
|                            | [Create Link Property MULTILINEAR ELASTIC](https://drive.google.com/uc?id=1BTcLukuVGbL6zUKnxzX7IUj7Zs8JZh7J\&export=download)     |
|                            | [Create Link Property GAP](https://drive.google.com/uc?id=1BNM4qqPrwaTqpmid3DFIFMfKL3Jc449S\&export=download)                     |
|                            | [Define Frame properties](https://drive.google.com/uc?id=1BzO81VUd1-Grl6DZfkAJUjLczBPeT9l3\&export=download)                      |
| **Elements**               | [Create Frame element](https://drive.google.com/uc?id=1Cc3aCgMLVSaVhX0OkJvZMLztjHaxYIO-\&export=download)                         |
|                            | [Assign DIAPHRAGM to Point and Area Groups](https://drive.google.com/uc?id=1WE-nrDAoH5ig5EbRkLA_AsBGuNLwxjnk\&export=download)    |
|                            | [Create walls and slabs](https://drive.google.com/uc?id=1CFDygaXKHEK794ijMsv8mAMmNJ-2ypX5\&export=download)                       |
|                            | [Floor with void opening](https://drive.google.com/uc?id=1CGdVC_bo5ENpeVy5EEsvxF1PPwkCgq_J\&export=download)                      |
|                            | [Assign spring supports for columns](https://drive.google.com/uc?id=1CHEfcqpS-eAr8vOdzne23oEizESomONj\&export=download)           |
|                            | [Wall with void](https://drive.google.com/uc?id=1CIsFyds4jO0t6NbzxjF6z6z3QrtJD_9j\&export=download)                               |
|                            | [Generate building core from reference curves](https://drive.google.com/uc?id=1CJ0NZznn_KEsMyIfy3SVM_2k98cDaQaR\&export=download) |
|                            | [Create Frame with orientation](https://drive.google.com/uc?id=1CNWomezcmr3_qoV18PbD3MlFnJ3CBOV1\&export=download)                |
| **Loads and Combinations** |                                                                                                                                   |
| **Analysis**               | [Setting Auto Wind Load Pattern USER](https://drive.google.com/uc?id=1ORkMYDiGZEfysU23NrIZzk5Yk6ytQWJO\&export=download)          |
|                            | [Setting Load Case RESPONSE SPECTRUM](https://drive.google.com/uc?id=1BUnmI9S8uZPNIcTHDUQqclOYBSkSCi1C\&export=download)          |
| **Result Queries**         | [Result Query STOREY FORCES](https://drive.google.com/uc?id=1sZUXpsQG9Vx9orx3Anj34gfDSnu1iQ18\&export=download)                   |
| **Design Features**        |                                                                                                                                   |
|                            |                                                                                                                                   |

## Etabs Model Examples

| Example Type     | Name                                                                                                                          |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Simple**       | [Building with Etabs Grids Axis System](https://drive.google.com/uc?id=1z77zOIqKjsZRDa7MrXRISYj15Jgum3kh\&export=download)    |
|                  | [Building Tower Example (Simple).EDB](https://drive.google.com/uc?id=1ygffERJKFr7ZXF-6-vU-tLWoEThsEgsl\&export=download)      |
|                  | [Building Tower Example (Simple).ico](https://drive.google.com/uc?id=1yiFumOSQDx4EGLIyR4B1jvNhDWs_KP34\&export=download)      |
|                  | [Building Tower Example (Simple).$et](https://drive.google.com/uc?id=1yhaOCiV6wIIRhOmUOt7CSITxB2qNy0Ge\&export=download)      |
|                  | [Building Tower Example (Simple)](https://drive.google.com/uc?id=1-QEq9_C583HpNo6bBOBwNEf6gUO3yOTx\&export=download)          |
|                  | [Staged Construction Analysis](https://drive.google.com/uc?id=1b-8_mG7My9XYm_6O2hkT2ZE16jBFTqN7\&export=download)             |
|                  | [Building Tower Example (Simple) Rhino 5](https://drive.google.com/uc?id=1-N_WfaoPj15UrCW_CB9eEhU1b3H5PPXS\&export=download)  |
|                  | [Building Tower Example](https://drive.google.com/uc?id=1CmnI-HSeFTh_k2HN_t9tXkx5bBAsMYjh\&export=download)                   |
| **Intermediate** | [Modal Analysis of building tower example](https://drive.google.com/uc?id=1Cw0A0kdsUoqsAGzZYgJSYdQksVc28m9X\&export=download) |
| **Advanced**     |                                                                                                                               |
|                  |                                                                                                                               |


# LUSAS | ggRhinoLUSAS

LUSAS plug-in for Rhino/Grasshopper

## LUSAS Introduction <a href="#gsa-introduction" id="gsa-introduction"></a>

The Geometry Gym Rhino/Grasshopper plugin to generate LUSAS models is new and work in progress, we are seeking user feedback on features to prioritize development efforts on.

{% embed url="<https://www.youtube.com/watch?v=3ZxD1TZ9j5Q>" %}

## LUSAS References <a href="#gsa-references" id="gsa-references"></a>

​<https://www.lusas.com/>

## &#x20;<a href="#updates-to-the-gsa-plug-in" id="updates-to-the-gsa-plug-in"></a>


# LUSAS Specifics

This is an early version of a plugin to generate LUSAS Analysis models from Grasshopper.

Contact <support@geometrygym.com> for more examples and to discuss features and priorities for development.

<figure><img src="/files/1Sku60TYBhOmDWUtDKy6" alt=""><figcaption></figcaption></figure>


# LUSAS Examples

Early plugin, please contact support\@geometrygym.com for more examples and to discuss features.

##

## Lusas Feature Examples

| Example Type                | Name                                                                                                           |
| --------------------------- | -------------------------------------------------------------------------------------------------------------- |
| Initial Example Arch Bridge | [LUSAS-Model-ArchBridge](https://drive.google.com/file/d/107_okrMzUjSI0GSCLtYjzgg7aFlavBuB/view?usp=sharing)   |
| LUSAS Model Beams           | [LUSAS-Model-Beams](https://drive.google.com/file/d/1_vSeyIthBDS-59tdnEhRnrWAW5hchdTa/view?usp=drive_link)     |
| LUSAS Grillage Bridge       | [LUSAS Grillage Bridge](https://drive.google.com/file/d/1Mctj6OH-R_tvBR08xTgY02PZe49hZdsX/view?usp=drive_link) |
|                             |                                                                                                                |


# ROBOT | ggRhinoRobot

Robot plug-in for Rhino/Grasshopper

## Robot Introduction <a href="#gsa-introduction" id="gsa-introduction"></a>

​

## Robot References <a href="#gsa-references" id="gsa-references"></a>

​

## Robot Plug-in Updates <a href="#updates-to-the-gsa-plug-in" id="updates-to-the-gsa-plug-in"></a>

For the latest updates to the Robot plug-in refer to the page below:​​


# Robot Specifics

Items Specific to the Robot plug-in

The below headings relate to specific features within the standard plug-in tabs.

## Base

### Units

You can set a model unit to the standard Robot Imperial units by selecting the toggle setting. Set this by right-clicking on the Robot bake component. By default, the units will be set in Metric.

![Setting Imperial Units in Robot](/files/vBvh5vBoJaRhDFtzg1xk)

Not here? [See general base page](/rhino-grasshopper/structuralanalysis/robot/robot-specifics)

## Attributes

Not here? [See general attributes page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/untitled)

## Elements

Not here? [See general 1d elements section](/rhino-grasshopper/structuralanalysis/geometry-gym-model/common-attributes/1d-elements-curve)

## Loads

Not here? [see general loads section](/rhino-grasshopper/structuralanalysis/geometry-gym-model/loads)

## Analysis

Not here? [See general analysis and solver page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver)

## Results

Not here? [See general results page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver/results)

## Design

Not here? See general design page


# Robot Examples

A list of examples for the Rhino-Grasshopper Robot plug-in

Download a **.zip** file of all the Robot Example Files [Here](https://drive.google.com/uc?id=1QfQ8NPSiJrYq4L0rRPmtXvSbVL1BJwah\&export=download)

## Robot Feature Examples

| Example Type               | Name                                                                                                                                  |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| **Import/Export**          |                                                                                                                                       |
| **Model Definition**       | [Create building stories](https://drive.google.com/uc?id=1Djof0pMiMYjrBuDJIpO5KAIh79X7QCxy\&export=download)                          |
| **Materials**              |                                                                                                                                       |
| **Section Properties**     | [Section profile by string](https://drive.google.com/uc?id=1Dgc80NK6rAaNGD2gezVLrAIIm_EUQQeO\&export=download)                        |
|                            | [Timber material](https://drive.google.com/uc?id=1DiLRTnbPFss8KJnOnZD8SpYQedJoaZIX\&export=download)                                  |
| **Elements**               | [Create Beams](https://drive.google.com/uc?id=1F1zDlLY8-7EZjVGIy7VOoWV1GHl_1lfL\&export=download)                                     |
|                            | [Create Cable and Cable Property](https://drive.google.com/uc?id=1EsMPZ_yxZ0YCkkK73_eR_rhUNPa_yQYG\&export=download)                  |
|                            | [Assign rigid link between nodes](https://drive.google.com/uc?id=1F38JCgditbpRg-PF3KvAg6OR-PZVqAS0\&export=download)                  |
|                            | [Create cladding panel with axis orientation](https://drive.google.com/uc?id=1F3_53UPS78YoWRD1B9mGhlyuKXkLr7RS\&export=download)      |
|                            | [Node grouping](https://drive.google.com/uc?id=1FCJx8-QBI2uZnVibCcA9NVn-OY_CN-kK\&export=download)                                    |
|                            | [Assign rigid link diaphragm](https://drive.google.com/uc?id=1FD94oQMvu2LUf-A9XuoXJfddJ4Wu7T6s\&export=download)                      |
|                            | [Create wall panel with assigned line load](https://drive.google.com/uc?id=1FLKzl_homeZd2N8mjPTfI_3f7DMgsoLK\&export=download)        |
|                            | [Curved Mesh to panel](https://drive.google.com/uc?id=1D6mLba-Wx8A-Ayi7MjG_3-Qfpa7k7daO\&export=download)                             |
|                            | [Create panels](https://drive.google.com/uc?id=1DJI29GCHTijqlemmfJxqeZhPXEU9n9RO\&export=download)                                    |
|                            | [Panel with openings](https://drive.google.com/uc?id=1DK3T2YHTVbFhum8dhJN394DJhf-Kqkm0\&export=download)                              |
|                            | [Group list beams with colour and node load list](https://drive.google.com/uc?id=1DN-apG2Q5kwQOEsbkGIx1b_yBQfpD7yh\&export=download)  |
|                            | [Half Concrete half steel column example](https://drive.google.com/uc?id=1DNcVgsvqFn5a-0dEa01ogPMhTJaEq8P3\&export=download)          |
|                            | [Assigning a ID numbering sequence to elements](https://drive.google.com/uc?id=1DQItNx_Tc6ym05aq54rD6J2QXUkB2AMr\&export=download)    |
|                            | [Rhino mesh to robot](https://drive.google.com/uc?id=1DYVMkRdi6KgWIrevKEDER8G-IMw7RqHZ\&export=download)                              |
|                            | [Beam Orientation](https://drive.google.com/uc?id=1Dg1q9V19OMj0ngxx0Ma22tj4Eek582QR\&export=download)                                 |
| **Loads and Combinations** | [Apply Load to a list group of beams](https://drive.google.com/uc?id=1EDxCne3TJi_OtA1NRmRPdtxYMwEpZF7T\&export=download)              |
|                            | [Apply beam offset](https://drive.google.com/uc?id=1EDzopjdThLW7lT0JfoahPiBDuf5h0ih4\&export=download)                                |
|                            | [Setting up Load combinations](https://drive.google.com/uc?id=1EKhisnsIvUftDaaRJqB-O3_QUqAPz-RT\&export=download)                     |
|                            | [Assigning node axis and node displacement load](https://drive.google.com/uc?id=1EQwTp1_42CIg52KxUnhabyEizlDbvThF\&export=download)   |
|                            | [Assigning node moment load](https://drive.google.com/uc?id=1ESzkEsRCex8dGq8atkKp-lfIcNS9WsHZ\&export=download)                       |
|                            | [Assign uniform Load to panel](https://drive.google.com/uc?id=1E_I915Jh9cASoGDa_ivlKhAbe8TcrYmw\&export=download)                     |
|                            | [Assign contour Load to panel](https://drive.google.com/uc?id=1EbdF4rzjfINeW7we4bUPmh6disiMBvkZ\&export=download)                     |
|                            | [Curve element beam uniform load](https://drive.google.com/uc?id=1Eo43kKdlLxvwXMPT7wdj7LqlYpwCgQkK\&export=download)                  |
|                            | [Curve element beam patch load](https://drive.google.com/uc?id=1EoktmhZ8emyqvFkJ2bvAADMyJRoDRqoG\&export=download)                    |
|                            | [Assign load cases and combinations](https://drive.google.com/uc?id=1ErPiLHdTbrhENeHE0_ikQ51MxOemjRqr\&export=download)               |
| **Analysis**               |                                                                                                                                       |
| **Result Queries**         | [Query NODE DISPLACEMENT of an Imported Model](https://drive.google.com/uc?id=1sdOxxsvuicBmiw6AKyiCPpABTx0bMciV\&export=download)     |
|                            | [Query reduced panel forces from analysis model](https://drive.google.com/uc?id=1DsrWFobrsW3GibCroxP5Drizq0V7Sysm\&export=download)   |
|                            | [Query panel principal stress from analysis model](https://drive.google.com/uc?id=1DtHiUFxjmENVZiyU1W9dqu5l68yYhOl4\&export=download) |
| **Design Features**        | [Create reinforced concrete column property](https://drive.google.com/uc?id=1DsGXbOv_YTxYhygTP7z8jawe9asUoJX1\&export=download)       |
|                            |                                                                                                                                       |

## Robot Model Examples

| Example Type     | Name                                                                                                                   |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------- |
| **Simple**       | [Truss optimizer example galapagos](https://drive.google.com/uc?id=1FXn_he4gIqIFCi_18eoH_Iw5os5T1vSt\&export=download) |
|                  | [Building Tower Example (Simple)](https://drive.google.com/uc?id=1-Y4AUwvHPpl3jyvgy6OMChbCGbRxcjJl\&export=download)   |
| **Intermediate** |                                                                                                                        |
| **Advanced**     |                                                                                                                        |
|                  |                                                                                                                        |


# SAP2000 | ggRhinoSAP

SAP2000 plug-in for Rhino/Grasshopper

## SAP2000 Introduction <a href="#gsa-introduction" id="gsa-introduction"></a>

​For specific tools relating to the SAP Plug-in

{% content-ref url="/pages/-LZYEO-kHR5uelWXUJoQ" %}
[SAP2000 Specifics](/rhino-grasshopper/structuralanalysis/sap2000/sap2000-specific-features)
{% endcontent-ref %}

For specific grasshopper example files visit here:

{% content-ref url="/pages/-LSmkfaNfMsnbW1pkGHV" %}
[SAP2000 Examples](/rhino-grasshopper/structuralanalysis/sap2000/sap2000-examples)
{% endcontent-ref %}

## SAP2000 References <a href="#gsa-references" id="gsa-references"></a>

​

## Updates to the SAP2000 Plug-in <a href="#updates-to-the-gsa-plug-in" id="updates-to-the-gsa-plug-in"></a>

For the latest updates to the GSA plug-in refer to the page below:​


# SAP2000 Specifics

Items Specific to the GSA plug-in

## SAP Versions

Typical plugin works for SAP2000 v21 or newer.  If you need to use v20 or earlier, look for a package [here](https://drive.google.com/drive/u/0/folders/1w-SsxDbt2CiQtmVXiF8hV_9wQMZj4HWQ).   Please request to <support@geometrygym.com> if you can't find a package for your version of SAP2000 and Rhino.

### Setting Executable Path

We have enabled the means to nominate the SAP2000 executable path. This may come in handy if you are not running SAP on a local computer such as if SAP2000 is installed on server.

To do this:

1.0 Type rhino command "Options".

2.0 Navigate to the Advanced under Rhino Options

3.0 Browse to ggRhinoSAP.CSiApplicationPath

4.0 Set the value to the folder where SAP2000 is installed, such as *C:\Program Files\Computers and Structures\SAP2000 22*

<figure><img src="/files/n6qOwXXFvJkxIr6vOnMQ" alt=""><figcaption><p>Option to nominate SAP2000 Application installed path.</p></figcaption></figure>

## Base

* unit selection

## Attributes

### Standard Materials

The SAP plug-in allows you to select a range of predefined materials from within SAP using a set of standard material components. These include standard materials for the following:

* Concrete
* Steel
* Rebar
* Tendon
* Cold Formed
* Aluminum

![Choosing a standard material in SAP](/files/sXMKDLG0nBj57HdN3wqH)

By right-clicking on the input parameter you can view a list of available options for definition.

{% hint style="warning" %}
These components rely on the SAP2000 API link.
{% endhint %}

Not here? [See general attributes page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/untitled)

### Properties

#### Standard Frame Properties

SAP2000 has an inbuilt library of standard Frame properties that can be chosen when creating generating a Frame element in SAP. Instead of using the Geometry Gym In-built catalogue you can provide an appropriate file in-which will be searched for the provided section. On bake of the structure the file-path will be provided to SAP. SAP will search the provided file for a section profile which matches the name provided and then apply it to the structure.

#### SAP Section Designer

The SAP section designer can be used to generate built up sections to be used in SAP. To create a section design section in Grasshopper. The **ggSAPCreateFramePropSectionDesigner** component works similar to a standard section property component although it can take any multiple of shapes to build-up a composite section. Section shapes need to be defined using the **ggSAPFrameSectionDesignerShape** component. This component allows you to specify a particular profile from the profile catalogue or a [user defined profile](/rhino-grasshopper/bullant/structure/profiles#user-defined-profiles).

You can specify each individual Shape with a prescribed translation in the X and Y directions as well as a rotation (all relative to the x/y axis plane 0,0). An optional Shape material can be provided for Shapes, which allows composite material shapes to be defined. If no material is provided a the base material provided to the Section Designer Property component will be used.

A *design type* can also be selected for the Section Design section (Steel\_Design, Concrete\_Column, etc), by default the No\_Design is selected.

![](/files/uI5ejgbiM6vePeItvdyG)

{% hint style="warning" %}
You will not currently get a preview of these sections in Rhino/Grasshopper.
{% endhint %}

#### Non Prismatic Frame Section Property

SAP allows for the definition of non prismatic sections, or section which are varying along the length of the member. With the \*\*`ggSAPCreateNonPrismSectionProp`\*\*component you can set a non-prismatic section (such as a tapered beam) or a more complex varying section along the length of a frame element. The image below shows a script for a simple tapered beam.

![SAP2000 non-prismatic section frame element](/files/ig6WoCiHu5uQtolWe7U2)

#### Frame Auto Selection Set

**`ggSAPAutoSelectionSet`**

## Elements

### Frame Elements

#### Auto Mesh

**`ggSAPFrameAutoMesh`**

SAP allows for automatic auto meshing of frame elements to brake members at intersecting nodes or elements or a predefined number of points along a beam. The image below shows how to set up frame element auto meshing.

Set Points or Lines to true to force auto meshing at intersections for particular frame elements.

![SAP2000 Auto meshing for frame elements](/files/zBdqi5zOHpgdBYdZ1Ksv)

### Cable Elements

The **ggSAPCreateCable** and **ggSAPCreateCableProp** components allow the definition of circular cable elements with specific properties associated with cable elements. The image below shows the typical workflow. You can assign different attributes to the cable by using the **ggSAPCableAtts** component.

{% hint style="warning" %}
If you are defining cable elements in SAP then you should not require to use a profile as input.
{% endhint %}

![Defining a cable property in SAP](/files/NFNWQtAD0G3Ilz9xbInR)

### Link Elements

#### Linear Link

#### Gap Link

You can create a GAP Type Link in SAP by using the **ggSAPCreateLinkPropGAP** component. Each translation and rotational direction input is overloaded to take either a Boolean input or a Link direction parameter input (**ggSAPLinkPropParamsGAP**). In the direction parameters you can choose to set the direction as non-linear and choose associated values.

By default each direction input is set to **false** resulting in no link in that direction, if set to **true** a rigid link is set.

![Setting a GAP Link in SAP](/files/QhlMRLe57fwxLJnY5M2d)

Not here? [See general 1d elements section](/rhino-grasshopper/structuralanalysis/geometry-gym-model/common-attributes/1d-elements-curve)

## Loads

Not here? [see general loads section](/rhino-grasshopper/structuralanalysis/geometry-gym-model/loads)

## Analysis

Not here? [See general analysis and solver page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver)

## Results

Not here? [See general results page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver/results)

## Design

You can automate the design of structures by applying code design requirements and setting the SAP2000 design feature to run using the **ggSAPDesign.** The component can be found under the ggSAPSolver tab.

![](/files/wA3flHEr1ycEWGZtAKPd)

The design component works similar to the **ggSAPSolver** component with an extra step, which is to run the design module in SAP and extract any additional associated *design* queries. When the component is enabled, it will bake the model and run the analysis for the provided load cases. It will then trigger the prescribed SAP Design module to run.

{% hint style="info" %}
Currently only steel design is enabled within SAP2000
{% endhint %}

You can specify queries in which you want to extract from the analysis such as node displacements or beam forces as you would with the Solver component - These should go into the *Analysis* result queries input. Once analysis is complete it will run the steel design module for the provided groups of elements.

### Design Codes

We currently allow for a number of different design codes for setting code specific design parameters. Set a design code by selecting one of the SAP steel design components from the ggSAPSolver tab (for example **ggSAPSteelDesignEurocode)** . This will set the basic values for the code to be applied to the design.

You also have the ability to set any number of design overwrites specific to an element in the model. To set a specific design overwrite for specific element/s, select a design overwrite component (for example **ggSteelDesignEurocodeOverwrite)** from the ggSAPsolver tab.

![SAP Design Overwrites](/files/9J3X5LYtuX4QynlyL5vU)

By hovering over the component you can see which overwrites are available for that particular code and by right-clicking on the Overwrite parameter you can select the desired overwrite. You can add more than one overwrite by providing a list of integer values corresponding to the overwrite enum.

#### Design Overwrites Values

When providing design overwrites you need to ensure that the overwrite values are as per the requirements of SAP, else it will not be set correctly. Below are the anticipated overwrite values for each provided code taken from the SAP API documentation. Please check to ensure these are the most relevant.

{% tabs %}
{% tab title="OWs" %}
Click the Tab you are designing with for specific overwrite values.
{% endtab %}

{% tab title="CSA" %}
**Set Overwrite {Steel CAN CSA S16-01}**

**The value of the considered overwrite item.**

1 = Framing type (0 = As specified in preferences, 1 = Type LD MRF, 2 = Type MD MRF, 3 = Type D MRF, 4 = Type LD CBF(V), 5 = Type LD CBF(TC), 6 = Type LD CBF(TO), 7 = Type LD CBF(OT), 8 = Type MD CBF(V), 9 = Type MD CBF(TC), 10 = Type MD CBF(TO), 11 = Type MD CBF(OT), 12 = EBF, 13 = Cantilever Column, 14 = Conventional MF, 15 = Conventional BF)

2 = Consider deflection (0 = No, Any other value = Yes)

3 = Deflection check type (0 = Program default, 1 = Ratio, 2 = Absolute, 3 = Both)

4 = DL deflection limit, L/Value (Value >= 0; 0 means no check for this item)

5 = SDL + LL deflection limit, L/Value (Value >= 0; 0 means no check for this item)

6 = LL deflection limit, L/Value (Value >= 0; 0 means no check for this item)

7 = Total load deflection limit, L/Value (Value >= 0; 0 means no check for this item)

8 = Total camber limit, L/Value (Value >= 0; 0 means no check for this item)

9 = DL deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

10 = SDL + LL deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

11 = LL deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

12 = Total load deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

13 = Total camber limit, absolute (Value >= 0; 0 means no check for this item. \[L])

14 = Specified camber (Value >= 0. \[L])

15 = Net area to total area ratio (Value >= 0; 0 means use program default value)

16 = Live load reduction factor (Value >= 0; 0 means use program determined value)

17 = Unbraced length ratio, Major (Value >= 0; 0 means use program determined value)

18 = Unbraced length ratio, Minor (Value >= 0; 0 means use program determined value)

19 = Unbraced length ratio, Lateral Torsional Buckling (Value >= 0; 0 means use program determined value)

20 = Effective length factor, K Major (Value >= 0; 0 means use program determined value)

21 = Effective length factor, K Minor (Value >= 0; 0 means use program determined value)

22 = Effective length factor, K LTB (Value >= 0; 0 means use program determined value)

23 = Moment coefficient, Omega1 Major (Value >= 0; 0 means use program determined value)

24 = Moment coefficient, Omega1 Minor (Value >= 0; 0 means use program determined value)

25 = Moment coefficient, Omega2 (Value >= 0; 0 means use program determined value)

26 = Nonsway moment factor, U1 Major (Value >= 0; 0 means use program determined value)

27 = Nonsway moment factor, U1 Minor (Value >= 0; 0 means use program determined value)

28 = Sway moment factor, U2 Major (Value >= 0; 0 means use program determined value)

29 = Sway moment factor, U2 Minor (Value >= 0; 0 means use program determined value)

30 = Parameter for compressive resistance, n (Value >= 0; 0 means use program determined value)

31 = Yield stress, Fy (Value >= 0; 0 means use program determined value. \[F/L2])

32 = Expected to specified Fy ratio, Ry (Value >= 0; 0 means use program determined value. \[F/L2])

33 = Compressive resistance, Cr (Value >= 0; 0 means use program determined value. \[F])

34 = Tensile resistance, Tr (Value >= 0; 0 means use program determined value. \[F])

35 = Major bending resistance, Mr3 (Value >= 0; 0 means use program determined value. \[FL])

36 = Minor bending resistance, Mr2 (Value >= 0; 0 means use program determined value. \[FL])

37 = Major shear resistance, Vr2 (Value >= 0; 0 means use program determined value. \[F])

38 = Minor shear resistance, Vr3 (Value >= 0; 0 means use program determined value. \[F])

39 = Demand/capacity ratio limit (Value >= 0; 0 means use program determined value)
{% endtab %}

{% tab title="AS4100" %}
**Set Overwrite {Steel AS 4100-1998}**

**The value of the considered overwrite item.**

1 = Framing type (0 = As specified in preferences, 1 = Moment frame, 2 = Braced frame)

2 = Steel type (1 = Hot rolled, 2 = Hot finished, 3 = Cold form, 4 = Stress relieved, 5 = Lightly welded, 6 = Heavily welded)

3 = Consider deflection (0 = No, Any other value = Yes)

4 = Deflection check type(0 = Program default, 1 = Ratio, 2 = Absolute, 3 = Both)

5 = DL deflection limit, L/Value (Value >= 0; 0 means no check for this item)

6 = SDL + LL deflection limit, L/Value (Value >= 0; 0 means no check for this item)

7 = LL deflection limit, L/Value (Value >= 0; 0 means no check for this item)

8 = Total load deflection limit, L/Value (Value >= 0; 0 means no check for this item)

9 = Total camber limit, L/Value (Value >= 0; 0 means no check for this item)

10 = DL deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

11 = SDL + LL deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

12 = LL deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

13 = Total load deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

14 = Total camber limit, absolute (Value >= 0; 0 means no check for this item. \[L])

15 = Specified camber (Value >= 0. \[L])

16 = Net area to total area ratio (Value >= 0; 0 means use program default value)

17 = Live load reduction factor (Value >= 0; 0 means use program determined value)

18 = Unbraced length ratio, Major (Value >= 0; 0 means use program determined value)

19 = Unbraced length ratio, Minor (Value >= 0; 0 means use program determined value)

20 = Unbraced length ratio, Lateral Torsional Buckling (Value >= 0; 0 means use program determined value)

21 = Effective length factor, Ke Major Braced (Value >= 0; 0 means use program determined value)

22 = Effective length factor, Ke Minor Braced (Value >= 0; 0 means use program determined value)

23 = Effective length factor, Ke Major Sway (Value >= 0; 0 means use program determined value)

24 = Effective length factor, Ke Minor Sway (Value >= 0; 0 means use program determined value)

25 = Twist restraint factor for LTB (kt) (Value >= 0; 0 means use program determined value)

26 = Lateral rotation restraint factor (kr) (Value >= 0; 0 means use program determined value)

27 = Load height factor for LTB (kl) (Value >= 0; 0 means use program determined value)

28 = Moment coefficient, Cm Major (Value >= 0; 0 means use program determined value)

29 = Moment coefficient, Cm Minor (Value >= 0; 0 means use program determined value)

30 = Moment modification factor, Alpha\_m (Value >= 0; 0 means use program determined value)

31 = Slender reduction factor, Alpha\_s (Value >= 0; 0 means use program determined value)

32 = Nonsway moment factor, Db Major (Value >= 0; 0 means use program determined value)

33 = Nonsway moment factor, Db Minor (Value >= 0; 0 means use program determined value)

34 = Sway moment factor, Bs Major (Value >= 0; 0 means use program determined value)

35 = Sway moment factor, Bs Minor (Value >= 0; 0 means use program determined value)

36 = Form factor, Kf (Value >= 0; 0 means use program determined value)

37 = Axial capacity correction factor, Kt (Value >= 0; 0 means use program determined value)

38 = Yield stress, Fy (Value >= 0; 0 means use program determined value. \[F/L2])

39 = Compressive capacity, Nc (Value >= 0; 0 means use program determined value. \[F])

40 = Tensile capacity, Nt (Value >= 0; 0 means use program determined value. \[F])

41 = Major bending capacity, Ms33 (Value >= 0; 0 means use program determined value. \[FL])

42 = Minor bending capacity, Ms22 (Value >= 0; 0 means use program determined value. \[FL])

43 = Minor bending capacity, Mb33 (Value >= 0; 0 means use program determined value. \[FL])

44 = Major shear capacity, Vu2 (Value >= 0; 0 means use program determined value. \[F])

45 = Minor shear capacity, Vu3 (Value >= 0; 0 means use program determined value. \[F])

46 = Demand/capacity ratio limit (Value >= 0; 0 means use program determined value)
{% endtab %}

{% tab title="Eurocode" %}
**Set Overwrite {Steel Eurocode 3 2005}**

**The value of the considered overwrite item.**

1 = Framing type (0 = Program Default, 1 = Moment Frame, 2 = Braced Frame)

2 = Consider deflection (0 = Program Determined, 1 = No, 2 = Yes)

3 = Deflection check type (0 = Program default, 1 = Ratio, 2 = Absolute, 3 = Both)

4 = DL deflection limit, L/Value (Value >= 0; 0 means no check for this item.)

5 = SDL + LL deflection limit, L/Value (Value >= 0; 0 means no check for this item.)

6 = LL deflection limit, L/Value ( Value >= 0; 0 means no check for this item.)

7 = Total load deflection limit, L/Value (Value >= 0; 0 means no check for this item.)

8 = Total camber limit, L/Value (Value >= 0; 0 means no check for this item.)

9 = DL deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

10 = SDL + LL deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

11 = LL deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

12 = Total load deflection limit, absolute (Value >= 0; 0 means no check for this item. \[L])

13 = Total camber limit, absolute (Value >= 0; 0 means no check for this item. \[L])

14 = Specified camber (Value >= 0. \[L])

15 = Net area to total area ratio (Value >= 0; 0 means use program default value)

16 = Live load reduction factor (Value >= 0; 0 means use program determined value)

17 = Unbraced length ratio, Major (Value >= 0; 0 means use program determined value)

18 = Unbraced length ratio, Minor (Value >= 0; 0 means use program determined value)

19 = Effective length factor sway, K2 Major (Value >= 0; 0 means use program determined value)

20 = Effective length factor sway, K2 Minor (Value >= 0; 0 means use program determined value)

21 = Moment coefficient, kyy Major (Value >= 0; 0 means use program determined value)

22 = Moment coefficient, kzz Minor (Value >= 0; 0 means use program determined value)

23 = Bending coefficient, C1 (Value >= 0; 0 means use program determined value)

24 = Moment coefficient, kzy (Value >= 0; 0 means use program determined value)

25 = Moment coefficient, kyz (Value >= 0; 0 means use program determined value)

26 = Yield stress, Fy (Value >= 0; 0 means use program determined value. \[F/L2])

27 = Compressive capacity, Nc.Rd (Value >= 0; 0 means use program determined value. \[F])

28 = Tensile capacity, Nt.Rd (Value >= 0; 0 means use program determined value. \[F])

29 = Major bending capacity, Mc3.Rd (Value >= 0; 0 means use program determined value. \[FL])

30 = Minor bending capacity, Mc2.Rd (Value >= 0; 0 means use program determined value. \[FL])

31 = Buckling resistance moment, Mb.Rd (Value >= 0; 0 means use program determined value. \[FL])

32 = Major shear capacity, V2.Rd (Value >= 0; 0 means use program determined value. \[F])

33 = Minor shear capacity, V3.Rd (Value >= 0; 0 means use program determined value. \[F])

34 = Demand/capacity ratio limit (Value >= 0; 0 means use program determined value)

35 = Section class (0 = Program default, 1 = Class 1, 2 = Class 2, 3 = Class 3, 4 = Class 4)

36 = Column buckling curve, y-y (0 = Program default, 1 = a0, 2 = a, 3 = b, 4 = c, 5 = d)

37 = Column buckling curve, z-z (0 = Program default, 1 = a0, 2 = a, 3 = b, 4 = c, 5 = d)

38 = Buckling curve for LTB (0 = Program default, 1 = a0, 2 = a, 3 = b, 4 = c, 5 = d)

39 = System overstrength factor, Omega (Value >= 0; 0 means use program determined value)

40 = Is rolled section (0 = Program Determined, 1 = No, 2 = Yes)

41 = Unbraced length ratio, LTB (Value >= 0; 0 means use program determined value)

42 = Effective length factor braced, K1 Major (Value >= 0; 0 means use program determined value)

43 = Effective length factor braced, K1 Minor (Value >= 0; 0 means use program determined value)

44 = Effective length factor, K LTB (Value >= 0; 0 means use program determined value)

45 = Material overstrength factor, GammaOV (Value >= 0; 0 means use program determined value)

46 = Warping constant, Iw (Value >= 0; 0 means use program determined value. \[L6])

47 = Elastic torsional buckling force, Ncr T (Value >= 0; 0 means use program determined value. \[F])

48 = Elastic torsional-flexural buckling force, Ncr TF (Value >= 0; 0 means use program determined value. \[F])
{% endtab %}
{% endtabs %}

Not here? See general design page


# SAP2000 Examples

A list of examples for the Rhino-Grasshopper SAP plug-in

Download a **.zip** file of all the SAP Example Files [Here](https://drive.google.com/uc?id=1vOVmm3wPyXPLMx9VFLSOHFgJW2nTnZIj\&export=download)

## SAP Feature Examples

| Example Type               | Name                                                                                                                                                 |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Import/Export**          |                                                                                                                                                      |
| **Model Definition**       | [Define Mass Source](https://drive.google.com/uc?id=1AmcWQZOBip7kex3HevD9J361BsgBZVZI\&export=download)                                              |
| **Materials**              | [Get Material from SAP Library](https://drive.google.com/uc?id=1GSLMvHq1t-8VvqUHCLvh2Xc24v-N1JIx\&export=download)                                   |
|                            | [Create Material ORTHOTROPIC](https://drive.google.com/uc?id=1GU1TQbXnhaE8KHhL49NV2F4zBp_-9CY1\&export=download)                                     |
| **Section Properties**     | [Create Frame Property SECTION DESIGNER\_trapezoid](https://drive.google.com/uc?id=1AqHYa4oRY2uF41miHLIArYRHntLk74xB\&export=download)               |
|                            | [Create Frame Property SECTION DESIGNER](https://drive.google.com/uc?id=1sJ1mjrQlSvVR_ro3j6gJmu74bmZ7Ub-h\&export=download)                          |
|                            | [Create Frame Property EXPLICIT](https://drive.google.com/uc?id=1GOyxHH2kWdEWz4-hZ7x8smz8avkC9YtX\&export=download)                                  |
|                            | [Create Frame Property CONCRETE](https://drive.google.com/uc?id=1GFrccxrjMY5XXDyDfXC-0_Cw_mBwlIYy\&export=download)                                  |
|                            | [Create Link Property LINEAR](https://drive.google.com/uc?id=1HudPzgJhmWNpVorWUmAiNNr7RLBzKogq\&export=download)                                     |
|                            | [Create Link Property MULTILINEAR ELASTIC](https://drive.google.com/uc?id=1ArgFAimCYwWzM0bgtBNCPbXRKcr_w_bi\&export=download)                        |
|                            | [Create Link Property MULTILINEAR PLASTIC](https://drive.google.com/uc?id=1AwsPwfag_OP6T6MZ_7TRkWBFbSrd4mou\&export=download)                        |
|                            | [Create Link Property GAP](https://drive.google.com/uc?id=1AtSdN483N_-ZB-x0wR9Z09r95ZBvtqbn\&export=download)                                        |
|                            | [Create Shell Property](https://drive.google.com/uc?id=1GKUzq9IetaYCiStqT4Vr72sEgjARQEeX\&export=download)                                           |
|                            | [Create Frame property from profile through filename search](https://drive.google.com/uc?id=1GKSmkHuZG24D840KLp5yuVpkhDuDSp36\&export=download)      |
|                            | [Setting property profile by string](https://drive.google.com/uc?id=1GI6zov4kg2qyjSQC6bK-u_WNG6DREASp\&export=download)                              |
| **Elements**               | [Create structural finite element mesh](https://drive.google.com/uc?id=1G9Gs_i-BpXksVxmqeyQuZoALpr5bESaF\&export=download)                           |
|                            | [Create Frame Element](https://drive.google.com/uc?id=1B5OhA5PXJG4zZN2E0R3fPeLnhXo_La3p\&export=download)                                            |
|                            | [Create Frame Elements with Orientation](https://drive.google.com/uc?id=1HKW-x5Ic0jRFK12o--lH0gpXVwGXTidX\&export=download)                          |
|                            | [Assign Frame Tag Labels](https://drive.google.com/uc?id=1HRVsiIcHhaHWlWnR2XFVy7ojq9HrS8f9\&export=download)                                         |
|                            | [Create Solid](https://drive.google.com/uc?id=1G7H-lc0ejafJyhb2tD7VBvXK33OXuTSt\&export=download)                                                    |
|                            | [Frame element beam with release](https://drive.google.com/uc?id=1H_x-OnVpU_PhIk1l9tya1PnDclq2z2x1\&export=download)                                 |
|                            | [Setting diaphragm constraints for levels tree](https://drive.google.com/uc?id=1HjWeJ1lmQqBnBJ52NaGNkYJw5V8rFXe6\&export=download)                   |
|                            | [Setting frame beam name and automesh](https://drive.google.com/uc?id=1Hl5CMKtZvB11PpMcIMkJ-UYK0uc_c38w\&export=download)                            |
|                            | [Orient finite element mesh face](https://drive.google.com/uc?id=1HlQwopcBYZGbdbbYjJrrVo_CUyM_dQQ9\&export=download)                                 |
|                            | [Defining a structural area](https://drive.google.com/uc?id=1HzZ8lxraLueadxGSpd4lm1x5uGmQMnPT\&export=download)                                      |
|                            | [Non prismatic property section](https://drive.google.com/uc?id=1I16pOMFcdnD9_Tc7vOnLHtZQj-_h3qPp\&export=download)                                  |
|                            | [Non prismatic property section simple tapered](https://drive.google.com/uc?id=1Fk4582wiGZPAgXLqxIbpbzE1VSjhwA4H\&export=download)                   |
|                            | [Mesh area divide](https://drive.google.com/uc?id=1Fr_vLnTygxqsBlOswq6P34w8USL2usuQ\&export=download)                                                |
|                            | [Define finite element mesh with multiple props and orientations](https://drive.google.com/uc?id=1FvQdJEAfqX2wS_fxYYHr6gObd-2O-P6_\&export=download) |
|                            | [Node local axis based on surface](https://drive.google.com/uc?id=1G3jk10eSnTFcb51tDAbFuJv1F-60aX87\&export=download)                                |
| **Loads and Combinations** | [Assign POINT LOAD to Node](https://drive.google.com/uc?id=1HE0_2rWCD40DMIVx24GPWoqY4tASXMU1\&export=download)                                       |
|                            | [Assign TARGET FORCE on Cable](https://drive.google.com/uc?id=1AuvgB9jI-bmJDmo62Ya5kcZvr0TzUqVz\&export=download)                                    |
|                            | [Assign PATCH LOAD on Frame](https://drive.google.com/uc?id=1H84XQA6lqE_RoHYeElEB-e6lTykk40qZ\&export=download)                                      |
|                            | [Assign POINT LOAD Along Frame](https://drive.google.com/uc?id=1Gw4HYzxK5u5fm3On1N8_UZmcNTYwfYYZ\&export=download)                                   |
|                            | [Create Self weight Dead Load Pattern Case](https://drive.google.com/uc?id=1H7R0sjQCDAZoklS5i7r8H2bVSWhHoga-\&export=download)                       |
|                            | [Set Code Auto Wind Pattern and Seismic](https://drive.google.com/uc?id=1HCEF2hXIHrDaGZSfzeMB_4-qfYlamF0Y\&export=download)                          |
|                            | [Area loading example load area to frame load area](https://drive.google.com/uc?id=1H81yA3ADSBxKQj30GVPmnGUTpyAFJmZ3\&export=download)               |
| **Analysis**               | [Setting Load Case RESPONSE SPECTRUM.GH](https://drive.google.com/uc?id=1B5yKEfQ4DqeeOUWnf58eMUgOse7g4a3v\&export=download)                          |
|                            | [Setting Load Case MODAL ANALYSIS](https://drive.google.com/uc?id=1B3ezwT6gOvGdbLp9hEeBSZd8zpo8fcmX\&export=download)                                |
|                            | [Setting Load Case NON](https://drive.google.com/uc?id=1B4NAcBag6a3f5aAthJiAvWMA8NjrBucn\&export=download)                                           |
|                            | [Setting Load Case STATIC](https://drive.google.com/uc?id=1Gr-SUyUpET267zXDheS4Dy09tsObFsAm\&export=download)                                        |
|                            | [Setting Load Case Combination](https://drive.google.com/uc?id=1GrSMNr6g3B_6fGu6P0lJQQqvZEUiIUUK\&export=download)                                   |
|                            | [Setting Load Case NON LINEAR ANALYSIS](https://drive.google.com/uc?id=1GoTByeUAqz98CkOA26-EyUrzZPpjHfxA\&export=download)                           |
| **Result Queries**         | [Query FRAME Results from an Existing Model](https://drive.google.com/uc?id=1GlS8mMDOQn7hMnSmjj9lu7LoOgt8taRk\&export=download)                      |
|                            | [Query NODE Results from Existing Model.GH](https://drive.google.com/uc?id=1snaml2jzkC5rOrfpeYPI5T3a-L7oUMQk\&export=download)                       |
|                            | [Query MODAL Results from Existing Model.GH](https://drive.google.com/uc?id=1snhaenmh2RwuErQ7-Aix6xwXYFHCfh5r\&export=download)                      |
|                            | [Query thermal principal stress of shell element](https://drive.google.com/uc?id=1GjTXNM7WfaLKJ8HJ_OBMtjckb2mTtU41\&export=download)                 |
|                            | [Query axial forces in column](https://drive.google.com/uc?id=1Gl4Kl7Y0bN9gvyqcDRLac4Q_8QSdxlyR\&export=download)                                    |
| **Design Features**        | [Steel Frame design test](https://drive.google.com/uc?id=1GU8CYhVzu6wMaqKUXr3-lNK_Ot2wpXZ6\&export=download)                                         |
|                            | [Steel Frame design overwrite function](https://drive.google.com/uc?id=1GietP80wJ1YUzhleIJ8X3LdLDrwKk20P\&export=download)                           |
|                            |                                                                                                                                                      |

## SAP Model Examples

| Example Type     | Name                                                                                                                                                    |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Simple**       | [Set](https://drive.google.com/uc?id=1IB2X7-cTI5Ke-ycirE8-jmeraXPKcSc-\&export=download)                                                                |
| **Intermediate** | [Staged Construction Analysis](https://drive.google.com/uc?id=1axGX_TDPWP-U5oXYycQYIXyu_8gz7OIg\&export=download)                                       |
|                  | [Truss steel designer for Australian code](https://drive.google.com/uc?id=1tIHb__MMd9OeauTpTb-4-kr71FohUE8B\&export=download)                           |
|                  | [Truss steel example with galapogas](https://drive.google.com/uc?id=1IDsVDdUEy5rmBGUb3TFa5593C_VtuB2r\&export=download)                                 |
|                  | [Truss steel example using auto select property](https://drive.google.com/uc?id=1IIo6XO4IPU8FYhbJa7QvN7OXMmfM5xGt\&export=download)                     |
|                  | [Setting up a simple model for non linear analysis](https://drive.google.com/uc?id=1I2mnNjYgC4S-XMKNrlk599241yZbHDXz\&export=download)                  |
|                  | [Modal analysis and results of simple geodesic dome](https://drive.google.com/uc?id=1I5lF95WPw_iISaRrcwX3o5-43caeYOmx\&export=download)                 |
|                  | [Truss steel example with parametric load defintion using galapogas](https://drive.google.com/uc?id=1zpvZtbUG5jCt7GzoM05qSMHV3JcE0kqb\&export=download) |
| **Advanced**     |                                                                                                                                                         |
|                  |                                                                                                                                                         |


# SPACE GASS | ggRhinoSpaceGass

SPACE GASS plug-in for Rhino/Grasshopper

## SPACE GASS Introduction <a href="#spacegass-introduction" id="spacegass-introduction"></a>

​SPACE GASS is a multi-purpose 3D analysis and design program for structural engineers. Its extensive range of features make it suitable for anything from beams, trusses and frames to buildings, towers, tanks, cable structures and bridges. Read more at the Link below:

{% embed url="<http://www.spacegass.com/>" %}

The Geometry Gym SPACE GASS Plug-in allows for the creation of complex parametric models from Rhino/Grasshopper into SPACE GASS through a SPACE GASS text file input format. It also provides the ability to automate the running of the SPACE GASS Solver from within Grasshopper while directly querying analysis results that can be used for structural engineering calculations.

Features Include:

* Import of SPACE GASS (.txt) into Rhino and Grasshopper
* Define Steel Member Design
* Choose directly from the SPACE GASS Section and Material Library.
* IFC model conversion and Structural Analysis Detection and Healing directly to SPACE GASS input .txt file.

You can download a number of examples here to get you started.

{% content-ref url="/pages/PuWdgvL2NNwctF3uut1x" %}
[SPACE GASS Examples](/rhino-grasshopper/structuralanalysis/spacegass/spacegass-examples)
{% endcontent-ref %}

## SPACE GASS References <a href="#spacegass-references" id="spacegass-references"></a>

* [SPACE GASS Training Videos](http://www.spacegass.com/training/index.htm#3)

## SPACE GASS Plug-in Updates <a href="#updates-to-the-spacegass-plug-in" id="updates-to-the-spacegass-plug-in"></a>

For the latest updates to the SPACE GASS plug-in refer to the page below:​​


# SPACE GASS Specifics

Items specific to the SPACE GASS plug-in

The below headings relate to specific features within the standard plug-in tabs.

## Base

Not here? [See general base page](/rhino-grasshopper/structuralanalysis/spacegass/spacegass-specifics)

## Attributes

### Standard Materials

The **ggSpaceGassMaterialStd** component allows you to access the SPACE GASS standard material library within Grasshopper. This component will read the SPACE GASS material library stored in the program files of the latest version of SPACE GASS you have installed on your computer.

You will need to provide a *Library* and then a *Name* of the material. These need to be defined exactly how they are defined within SPACE GASS.

![Comparison between standard material and created material](/files/WTzgtQylOeUY2yf1v0JJ)

### Standard Section Properties

The **ggSpaceGassSectionStd** component allows you to access the SPACE GASS standard material library within Grasshopper. This component will read the SPACE GASS material library stored in the program files of the latest version of SPACE GASS you have installed.

You will need to provide a *Library* and a *Name* of the section exactly how it is defined within SPACE GASS and this will choose the first section within the Library with that given name. You can also provide a *Group* input, which will tell the plug-in to only search with a given group.

{% hint style="info" %}
Note that you can override any of the provided values from the Section Library using the Section Property Param inputs.
{% endhint %}

![Comparison between standard and GG catalogue profile defined section](/files/hVQpKPPRtqGq9oCpekbI)

### Explicit Section Property

The **ggSpaceGassCreateSectionPropExplicit** allow for the definition of an explicit section property within SPACE GASS.

![Creating an Explicit Section Property](/files/y5DfveyQOAYZJ15xCNL5)

You can also sect section property parameters such as section modification factors and material strengths using **ggSpaceGassSectionPropertyParameters.** The \*\*\*\**Base Units* parameter input allows you to tell the program that the explicit values provided are not as per the Rhino units you are using and to scale as necessary.

{% hint style="warning" %}
There is no geometry preview for an explicit section property as it is defined purely by property values.
{% endhint %}

### Beam Attributes

#### Beam Type

SPACE GASS allows for a beam element Type to be defined as a Normal, Tension Only or Compression Only element. You can set which type of element you would like using the *MemberType* input of the **ggSpaceGassBeamAtts** component. By right clicking on the parameter you can select from a list of the available options or an integer can also be provided.

Not here? [See general attributes page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/untitled)

## Elements

Not here? [See general 1d elements section](/rhino-grasshopper/structuralanalysis/geometry-gym-model/common-attributes/1d-elements-curve)

## Loads

Not here? [see general loads section](/rhino-grasshopper/structuralanalysis/geometry-gym-model/loads)

## Analysis

### Solver

The **ggSpaceGassSolver** component allows for the automated running of SPACE GASS analysis and extraction of Analysis Results for specific result queries.

Once the *Enabled* parameter has been set to `true` the component will compile a SPACE GASS (.txt) file, then open SPACE GASS automatically. You need to ensure that the *Path* parameter is set to the SPACE GASS executable file (i.e C:\Program Files (x86)\Space Gass 12\sgwin.exe).

{% hint style="info" %}
Currently the solver performs a static analysis of the model. If you are looking to perform more advanced analysis then please contact us for support.
{% endhint %}

![](/files/tPoKIFrxydEBABEJrFVB)

Not here? [See general analysis and solver page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver)

## Results

Not here? [See general results page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver/results)

## Design

Not here? See general design page


# SPACE GASS Examples

A list of examples for the Rhino-Grasshopper SPACE GASS plug-in

Download a **.zip** file of all the SPACE GASS Example Files [Here](https://drive.google.com/uc?id=1QFewVo2P4mI_03t39TcX_OxuHmS4BFpF\&export=download)

## SPACE GASS Feature Examples

| Example Type               | Name                                                                                                                                            |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Import/Export**          | [Transform structure and export to SPACE GASS](https://drive.google.com/uc?id=1JnizF-5i60Zb56dQ6Qf0DOnVyIOA3wNb\&export=download)               |
| **Model Definition**       |                                                                                                                                                 |
| **Materials**              | [Generate Material from Library](https://drive.google.com/uc?id=1z4EFIEkj1-avpgkcfrROc-oYxE5N3yFU\&export=download)                             |
| **Section Properties**     | [Generate Section Property from SPACE GASS Library](https://drive.google.com/uc?id=1zb0HAbEYI79BXJZvDFDFGXKpDvDdrqO_\&export=download)          |
|                            | [Find Section Property by string](https://drive.google.com/uc?id=1JliOXCdMg8lKt6OZhwIOYDqRg3BveZ8w\&export=download)                            |
|                            | [Create Explicit Section Property](https://drive.google.com/uc?id=1z3CTw_4nMdH9AqWSEWn-NHfzmU9l3Y1G\&export=download)                           |
| **Elements**               | [Create Design MEMBER GROUP](https://drive.google.com/uc?id=1LP0D6RCogAmPy9mVZKDIJ1UG3LYWch_m\&export=download)                                 |
|                            | [Create and find beam property by mark](https://drive.google.com/uc?id=1JjoJLp0azo3PdRD04ZJD2ieBpf-SgKGE\&export=download)                      |
|                            | [Create structural finite element mesh](https://drive.google.com/uc?id=1UuJb8lrgfwSFNJzv9BMlrw86__BWe49S\&export=download)                      |
|                            | [Create a finitie element analysis mesh](https://drive.google.com/uc?id=1JMUettnCgBeDrL5LR2roui0gdUR2bd_S\&export=download)                     |
|                            | [Node support and restraint](https://drive.google.com/uc?id=1JR8TtpwpieA36rLVbawn9ev7ZoKSLjIP\&export=download)                                 |
|                            | [Transform point](https://drive.google.com/uc?id=1JRjuOvvkEiHRIC240Ve4WtORFWC-AOwf\&export=download)                                            |
|                            | [Transform beam](https://drive.google.com/uc?id=1JUf3UAsN9NSusYkQQFbZWFWJ07AsG5xC\&export=download)                                             |
| **Loads and Combinations** | [Apply multiple NODE LOAD](https://drive.google.com/uc?id=1JG7gm9MxLDfFw9ydR9nog0iZrevt3UGW\&export=download)                                   |
|                            | [Apply single NODEL LOAD](https://drive.google.com/uc?id=1JG46U3ol-Ulgar-OP_WP64UfTb0o5PI4\&export=download)                                    |
|                            | [Assign self weight curve patch loads and load combinations](https://drive.google.com/uc?id=1JD5KQxt7GH4EMWQXjFNAYeOA7oXfQPwl\&export=download) |
| **Analysis**               |                                                                                                                                                 |
| **Result Queries**         | [Use Solver to Query MODAL FREQUENCY](https://drive.google.com/uc?id=1LWYq9fuIDNpom1zqJ3vN1gMT6BKvfKQl\&export=download)                        |
|                            | [Use Design Solver to Query STEEL MEMBER DESIGN SUMMARIES](https://drive.google.com/uc?id=1LNBhV29wXCYPXndWljl-tuMR3uW-baSF\&export=download)   |
|                            | [Use Solver to Query NODE DISPLACEMENTS](https://drive.google.com/uc?id=1LSZXrPSvkJdYpdf5H3t-PYH1-CtAtjsR\&export=download)                     |
|                            | [Use Solver to Query NODE DISPLACEMENTS(Legacy)](https://drive.google.com/uc?id=1scqoBWFB_AP3NWjLLWSE4qM7g-VuQ2oV\&export=download)             |
|                            | [Use Solver to Query MEMBER FORCES](https://drive.google.com/uc?id=1LcIktVYDW_0rMXeEU2Pw3jFtUw6cPRod\&export=download)                          |
|                            | [Use Solver to Query NODE REACTIONS](https://drive.google.com/uc?id=1LQwQGlQGNt4_jTU8vCbXPs9LRStOJE9r\&export=download)                         |
|                            | [Use Solver to Query BUCKLING FACTORS](https://drive.google.com/uc?id=1LoDrgpRt8QsybbaJrB0RK_ptop3jRq5l\&export=download)                       |
| **Design Features**        |                                                                                                                                                 |
|                            |                                                                                                                                                 |

## SPACE GASS Model Examples

| Example Type     | Name                                                                                                             |
| ---------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Simple**       |                                                                                                                  |
| **Intermediate** | [Analyse form found membrane](https://drive.google.com/uc?id=1JByf7JdHN9sc-buyTkbDaovtwBbVBxzy\&export=download) |
| **Advanced**     |                                                                                                                  |
|                  |                                                                                                                  |


# Strand7 | ggRhinoStrand7

Strand7 plug-in for Rhino/Grasshopper

## Strand7 Introduction <a href="#gsa-introduction" id="gsa-introduction"></a>

​

## Strand7 References <a href="#gsa-references" id="gsa-references"></a>

​

## Strand7 Plug-in Updates <a href="#updates-to-the-gsa-plug-in" id="updates-to-the-gsa-plug-in"></a>

For the latest updates to the GSA plug-in refer to the page below:​​


# Strand 7 Specfics

Items specific to the SpaceGass plug-in

The below headings relate to specific features within the standard plug-in tabs.

## Base

Not here? [See general base page](/rhino-grasshopper/structuralanalysis/strand7/strand-7-specfics)

## Attributes

Not here? [See general attributes page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/untitled)

## Elements

Not here? [See general 1d elements section](/rhino-grasshopper/structuralanalysis/geometry-gym-model/common-attributes/1d-elements-curve)

## Loads

Not here? [see general loads section](/rhino-grasshopper/structuralanalysis/geometry-gym-model/loads)

## Analysis

Not here? [See general analysis and solver page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver)

## Results

Not here? [See general results page](/rhino-grasshopper/structuralanalysis/geometry-gym-model/analysis-and-solver/results)

## Design

Not here? See general design page


# Strand7 Examples

A list of examples for the Rhino-Grasshopper Strand7 plug-in

Download a **.zip** file of all the Strand7 Example Files [Here](https://drive.google.com/uc?id=1Qhpp6cPfvNTLvy22CyGzCurM9vVX4Pgu\&export=download)

## Strand7 Feature Examples

| Example Type               | Name                                                                                                                                    |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **Import/Export**          |                                                                                                                                         |
| **Model Definition**       |                                                                                                                                         |
| **Materials**              |                                                                                                                                         |
| **Section Properties**     | [Create Link Pin or Rigid](https://drive.google.com/uc?id=1zoscJTlPKUrBVm2k2HursyUsOxsaTO74\&export=download)                           |
|                            | [Create Link Master Slave](https://drive.google.com/uc?id=1zlikhKw2rLCfxm68nFA8C1iaajJ5kETm\&export=download)                           |
| **Elements**               | [Defining a local axis system](https://drive.google.com/uc?id=1KLECCGUxDcsfhiZIlelG547BpYstXl8D\&export=download)                       |
|                            | [Create a connection property](https://drive.google.com/uc?id=1KNw9uueoFp9kYRPzd4Bu3BJcVNP78YeR\&export=download)                       |
|                            | [Create beam property and beam](https://drive.google.com/uc?id=1KPu48JP5Ua9W6Afqp9RrpDOw1GW5OOPV\&export=download)                      |
| **Loads and Combinations** | [Create section prop beam and add uniform beam load](https://drive.google.com/uc?id=1K1mMfr57a0woOrTh_qadbS0znngAZCtC\&export=download) |
|                            | [Generate FE panel loads](https://drive.google.com/uc?id=1K3HD7PxvJtAFXoiFC00m8xWCGIRg2iqq\&export=download)                            |
|                            | [Generate FE panels and loadings](https://drive.google.com/uc?id=1KFGhkTXj8NEkm3Sn1KlVf_ESdRCBqqpB\&export=download)                    |
| **Analysis**               |                                                                                                                                         |
| **Result Queries**         | [Queries Results](https://drive.google.com/uc?id=1gWieM5YgBgaLTvFVEGnEgUApUvC0VmY_\&export=download)                                    |
| **Design Features**        |                                                                                                                                         |
|                            |                                                                                                                                         |

## Strand7 Model Examples

| Example Type     | Name                                                                                             |
| ---------------- | ------------------------------------------------------------------------------------------------ |
| **Simple**       |                                                                                                  |
| **Intermediate** | [PlaceHolder](https://drive.google.com/uc?id=1LE3tLp23k_vmsTLEMIejXcC8NA4ekhwF\&export=download) |
| **Advanced**     |                                                                                                  |
|                  |                                                                                                  |


# Karamba3d

Interaction with Karamba3d within Grasshopper

## Karamba3d

Karamaba3d is a structural analysis tool which is embedded within Grasshopper. It provides a way to get quick structural analysis feedback on a structure at an early design stage without requiring the need to leave grasshopper or interact with external analysis programs. It can also be helpful for performing optimisation routines quicker and more efficiently.

In order to verify or continue to the design, Geometry Gym allows for the Import/Export of Karamba3d models to and from external programs, as well as IFC format.

For information on Karamba3d visit the website at the link below.

{% embed url="<https://www.karamba3d.com/>" %}

{% hint style="warning" %}
Some of the tools may be affected by your Karamba license version. Refer to Karamba3d website for version limitations.
{% endhint %}

## Installation of Karamba3d Tools

#### For Structural Analysis

Each GeometyryGym structural analysis plug-in is automatically provided with the associated karamba3d components. These will load if you have the correct version of Karamba installed.

{% hint style="info" %}
It is hard to provide installers on our website for all versions of Karamba and all versions of a Structural Analysis Program. If the Karamba3d components result in an error, it is likely that we may need to provide a installer specific to the version of Karamba you are using.
{% endhint %}

#### For BIM

For Import and Export of **IFC** components, these are provided in a separate installer, **ggRhinoKaramba**. This installer can be installed and downloaded from the downloads page on our website.

For export to Tekla, the components are provided in the ggRhinoTekla plug-in, similar to structural analysis.

Once the appropriate structural analysis and BIM plug-ins have been loaded you should be able to see the corresponding import and export functions available for that particular plug-in.

![GeometryGym Karamba3d tools](/files/UhFsYhT3UULyU98yZkvi)

## User Interface

The Geometry Gym Karamba3d tools are located under the Karamber3d tab in Grasshopper. Depending on which version of Rhino and version of Karamba they could be in slightly different locations.

{% hint style="warning" %}
In order to view the required export option for the structural analysis program you will require that structural analysis plug-in to be installed, along with the Rhino6Karamba3d plug-in.
{% endhint %}

## Importing

Currently, there are import options which allow importing of a number of analysis model formats and transfer those into components which can allow the building of a Karamba3d analysis models. We provide import for all the structural analysis plug-in programs as well as additional file format imports including IFC and DSTV.

The importing of models can be set up as a dynamic process. If you are building or manipulating a model within Grasshopper and stream baking the model to an external file while continuously reading the file you can preview dynamic updates within Karamba3d.

{% hint style="info" %}
By setting up a dynamic file update process you can also use the model viewer in Karamba3D to get a visual representation of supports, and loading's.
{% endhint %}

## Exporting

**`The ggKarambaTo###`**

To export a Karamba3d model to a particular analysis program or IFC file select the appropriate ggKarambaTo### component from those provided. This will allow you to export a given model to the appropriate structural analysis package file.

### Converting Catalogue Profiles to Karamba3d Cross Sections

**`ggProfileToKaramba`**

Karamba3d has limited catalogue profiles. If they do not provide catalogue profiles that you are looking for then it is possible to convert GG catalogue profiles into a Karamba Section using the **ggProfileToKaramba** component. This component can be found under the

The steps below outline how you can do this.

First, search the given profiles you would like to convert from the **`ggSearchSectionProp`** component under BullAnt.

Second, generate an IFC profile def and then convert them to an output JSON format using the provided IFC components.

![](/files/rLfpJuiCEXx9a5WapQfS)


# Karamba3d Examples

A list of examples for the Rhino-Grasshopper Karamba3d Plug-In

Download a **.zip** file of all the Karamba3d Example Files [Here](https://drive.google.com/uc?id=1QDKqqH7ZaETKyImhtslVkJmN6ctUnOtc\&export=download)

## Karamba3d Feature Examples

| Example Type               | Name                                                                                                               |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Import/Export**          |                                                                                                                    |
| **Model Definition**       |                                                                                                                    |
| **Materials**              |                                                                                                                    |
| **Section Properties**     | [GG profile to karamba section](https://drive.google.com/uc?id=1uDvMLwy4tndXt1XIfB9LPKpvZaHjGBfn\&export=download) |
| **Elements**               |                                                                                                                    |
| **Loads and Combinations** |                                                                                                                    |
| **Analysis**               |                                                                                                                    |
| **Result Queries**         |                                                                                                                    |
| **Design Features**        |                                                                                                                    |
|                            |                                                                                                                    |

## Karamba3d Model Examples

| Example Type     | Name                                                                                                                                          |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Simple**       | [RhinoInside Revit Direct Bake to Revit Suspension Bridge](https://drive.google.com/uc?id=1sHMa-x5_GkIqdxtYF9eN90fk8e8YNw6R\&export=download) |
| **Intermediate** |                                                                                                                                               |
| **Advanced**     |                                                                                                                                               |
|                  |                                                                                                                                               |


# Create with Code

## Introduction

Grasshopper allows for a user to access the geometry gym `.dlls` from within a Python or C# script component to enable building of a structural analysis model from code.

{% hint style="warning" %}
Use with caution when generating models with code. As the code has been generated over a number of years sometimes it is incompatible (i.e providing different unit outputs) and not well documented for an end user as this is not the primary use purpose.

In the future we will look to overhaul and improve in-code documentation.
{% endhint %}

## Add Geometry Gym .dll files

The first step is to add the Geometry Gym .dll files which are stored when the plug-in is installed.


# IFC | ggRhinoIFC


# Introduction

Introduction to the IFC plug-in for Rhino Grasshopper

## IFC within Rhino and Grasshopper

The ggRhinoIFC plug-in allows for the generation and manipulation of existing IFC files. It is a powerful tool which allows to access to the powerful IFC data model and export sophisticated IFC models to a number of different applications which support IFC file imports across multiple industries in the built environment.

Current capabilities include:

* All general building elements for Architectural, Structural, Services
* Planning or project management

## IFC References

{% embed url="<http://www.buildingsmart-tech.org/>" %}

### BCF file type

<http://www.buildingsmart-tech.org/specifications/bcf-releases>

## IFC Plug-in Updates

For the latest updates to the BullAnt plug-in refer to the page below:


# Exporting IFC from External App

Tips on Exporting IFC from External Applications

Typically in the past IFC has been used for sharing co-ordination models, which generally do not provide good information for transfer of design information and sometimes result in bulky (large file sizes) geometry definitions.

Below are some of the recommended settings to use when exporting from external applications. The below is generally geared towards exporting for structural engineering purposes.

## Exporting IFC from Tekla

When exporting IFC from TEKLA, we recommend the following settings as shown below:

![](/files/CGbEI1gHbrHDE4sNeiNB)


# IFC for Rhino

IFC Tools for Rhino

The ggRhinoIFC plugin allows for a range of tools to import, manipulation, conversion and export of IFC files within Rhino.

### **Import/Exporting Tools**

The RhinoIFC plug-in allows for the Import and Export of IFC files to and from Rhino with a number of different options. See the page on Importing and Exporting for more information.

{% content-ref url="/pages/-LkbFX7DalDKN3m1Np25" %}
[Rhino IFC Import](/rhino-grasshopper/ifc/ifc-for-rhino/ifc-import)
{% endcontent-ref %}

{% content-ref url="/pages/-LkbFijUxvseozkqfuSe" %}
[Rhino IFC Export](/rhino-grasshopper/ifc/ifc-for-rhino/ifc-export)
{% endcontent-ref %}

### **Conversion Tools**

Conversion tools allow for the conversion of other text-based OPEN file formats (such as XML and STEP) to IFC files. Some of these tools include conversion from **LandXML** and **STEP.**

{% content-ref url="/pages/-Ld8CrnoQcSsqb9GJliH" %}
[Conversion Tools](/rhino-grasshopper/ifc/ifc-for-rhino/conversion-tools)
{% endcontent-ref %}

{% hint style="info" %}
For conversion tools associated with Structural Analysis programs, please see the Structural Analysis section.
{% endhint %}

### **Rhino IFC Layers**

Rhino IFC Layers is Geometry Gyms tools for allowing IFC file creation directly from Rhino by assigning entities types to a hierarchical layer system separate to. Active context menu allow you to select from available classes and also set Uni-class.

{% content-ref url="/pages/-LkbG\_ByaE1vnNjMyaXQ" %}
[Using Rhino IFC Layers](/rhino-grasshopper/ifc/ifc-for-rhino/ifc-export/rhino-ifc-layers)
{% endcontent-ref %}

### **Rhino IFC Tree Viewer**

GeometryGym allows the import and interaction of IFC files through an interactive tree viewer in Rhino. Learn more about this here:

{% content-ref url="/pages/-Ld82kVQU1lo6-kY0aOr" %}
[Rhino IFC Tree Viewer](/rhino-grasshopper/ifc/ifc-for-rhino/ifc-tree-viewer)
{% endcontent-ref %}

### **IFC Tools for Rhino**

For IFC file tools specific to Rhino

{% content-ref url="/pages/-LkcC9uODJJglZeonQ5H" %}
[Rhino IFC Tools](/rhino-grasshopper/ifc/ifc-for-rhino/rhino-ifc-tools)
{% endcontent-ref %}

There are also a bunch of more generic IFC file tools which can be accessed within Rhino.

{% content-ref url="/pages/-Ld85WfA0WHUkEVCOkte" %}
[IFC File Tools](/rhino-grasshopper/ifc/ifc-for-rhino/general-tools)
{% endcontent-ref %}

## Accessing the commands

You can access the IFC Rhino commands from either the Rhino command line or the **ggRhinoIFC** menu bar. If you start to type ggIFC into the Rhino command line you can see a populated list of available commands.

![Image of ggIFC commands in Rhino](/files/9W8cxBV7XRbJR3R9mGqq)

###


# Rhino IFC Import

Importing IFC files into Rhino

## Import

**`ggImportIFC`**

ggImportIFC is a rhino command that will facilitate the import of an IFC data set from file into the active rhino document, converting the IFC elements with representation into the most appropriate rhino geometry equivalent.

## Import Options

![IFC Import Options](/files/siya82BgVhmkyer6H5hC)

### **Import Tolerance**

The IFC file will have its own tolerance definition nominated. Often this value will be too constrained (ie 1e-5 metres) for successful rhino geometry creation.  User can nominate to use file tolerance or nominate Rhino document tolerance (or user value). A lot of software will write out to extremely tight tolerance even though the nominated geometry might comply with a more relaxed tolerance. Import might also be much faster for relaxed tolerance.

### **Local Coordinates**

This option relates to grid coordinates or georeferenced models. \*\*\*\*Rhino does not currently have a project base point. Not all programs embed remote co-ordinates into .ifc files but in the event it does, nominating to import to local coordinates will result in geometry local to project base point origin. Local Geometry will perform better for rendering and computations. Construction planes are generated to permit coordinate queries in grid coordinates.

### **Hierarchy Layer Structure**

IFC data set can nominate its own layer assignment to products. Rhino allows for a hierarchy layer system which can be handy for filtering different elements as a hierarchy of the model. The hierarchy for a building project will typically be site --> building --> storey --> possibly spaces.  Import can then arrange different element types to allow easy viewing of different levels. If not it will use the layers if defined as IFC layer assignment.

### Layers for Spaces

Toggles creation of layers for spaces.

### Save GlobalId on Layers

Global Ids can be prevented to be used for generated layers, which can improve situation where multiple IFC files are imported into rhino document and Global Ids are common to elements such as storeys or spaces.

### Object Material from Presentation Style

Toggles whether presentation style nominates Rhino Material for purpose of rendering.

### **Representation Maps as Blocks**

Representation maps in IFC are similar to a rhino block.  Some IFC exports generate a representation map for many objects whether it's a single occurrence or has multiple instances. This import option can configure whether all representation maps generate a rhino block or a more selective approach is used.

### Element Assemblies

Element Assemblies might make sense to be a single rhino block for some fabrication models, other users might prefer to have a single rhino object for each sub element, or a group created for the elements.  Styling of sub products can be controlled by element assembly.

### **Group objects**

Create Rhino groups for elements that consist of multiple geometry representations such as multiple mesh or multiple breps/polysurfaces.  Distinct multiple geometry objects might define a single element.

### **Generate user text option**

Generate user-text for properties of objects on the resultant rhino geometry object.

### **Prefix Property Set Name**

Generated user text keys can be prefixed with property set name or not (to identify grouping)

### **Identify Orphaned Elements**

Some IFC exports are not schema compliant with elements orphaned from spatial structure containment.  Enabling this option will ensure all elements are imported (searching for orphaned elements can be time consuming in large data sets).

### **IFC Object Filter**

Configure which objects you want to exclude/ignore when importing an ifc using a string such as "IfcSpace,IfcFurnishingElement,IfcFastener".  Filtering to control inclusion is also possible.

### Correct and improve geometry

Many built elements are best represented as an extrusion.  Import can try to detect extrusions (including voided geometry) so resultant rhino model performs better.  Import process will be slower to run detection.

### Ignore Boolean Difference Failures

Some IFC data sets nominate geometry with many ineffective boolean differences (or void cuts), which can trigger a large number of import warnings.  Warnings can be disabled.

### **Faceted Brep Options**

Creating faceted poly surfaces (or brep) in rhino is time consuming (particularly with high face count), so option is provided to generate a mesh as an alternative (if acceptable).  Mesh generation is higher performant with smaller 3dm size. This allows you to set a threshold on which objects are generated as a polysurface or what is refered back to a mesh. A suggested value for this could be 300 faces.  Set to zero for all poly surfaces.

### Mesh Unweld Angle

Nominate an angle in degrees for unwelding mesh faces for improved rendering.

## On Import

After import you will notice that Specific Rhino layers have been automatically created and element representation converted to rhino geometry assigned to those layers. The generation of these layers can be is dependent on the Import options provided.


# Rhino IFC Export

The options available when Exporting IFC from Rhino

The Geometry Gym tools provide a number of ways in-which you can export IFC information stored in Rhino to an .ifc file. You can use the Rhino IFC Export functionality to perform the following:

* **Generate an .ifc file** from geometry that you have already created in Rhino via a hierarchy layer system to import into another CAD/BIM application. See below the topic on Geometry Gym IFC Layers Panel.
* Use the export function to extract certain elements or parts of a larger IFC model (**partial export**) that has been previously imported by imported using the **ggIFCImport** command. You can either export by visual selection or by Ignore filters. Refer to the export options below.

## Generate an .Ifc From Rhino Geometry

You can set-up and derive IFC files for export using the Geometry Gym *ggRhinoIFC Layers* panel in Rhino which is installed when installing ggRhinoIFC. Please refer to the link below for more details on how to use this to generate an .ifc file directly from existing Rhino Geometry.

{% content-ref url="/pages/-LkbG\_ByaE1vnNjMyaXQ" %}
[Using Rhino IFC Layers](/rhino-grasshopper/ifc/ifc-for-rhino/ifc-export/rhino-ifc-layers)
{% endcontent-ref %}

![Example of Rhino to IFC to Revit](/files/OMZjKnOhmPMKvnsLeVXT)

## Export from an Imported IFC file

If you have imported an existing IFC file into Rhino using the Geometry Gym RhinoIFC importer, you may want to make some modifications to that file and then re-export, or you may want to only export certain parts of these models. For this, the plug-in allows for the partial export of models within Rhino.

In order to create a partial export, you can visually select the elements in-which you would like to export and run the **ggIFCExport** command. If a selection is present an additional **Partial Export** button is now provided within the export options dialogue. Click this option to only export this section of the model.

{% hint style="info" %}
If you want to ignore the current selection on the export and export all elements, simply click **OK** instead.
{% endhint %}

![Partial Export in RhinoIFC](/files/xVOSFk6T2OYznP26qemi)

You can also use the **IFCTreeViewer** in Rhino to export parts of an ifc model. For more information refer to the link below:

{% content-ref url="/pages/-Ld82kVQU1lo6-kY0aOr" %}
[Rhino IFC Tree Viewer](/rhino-grasshopper/ifc/ifc-for-rhino/ifc-tree-viewer)
{% endcontent-ref %}

## IFC Export Options

{% hint style="warning" %}
Export options update frequently as the tools are developed and improved. If there is an option that is not explained below, please please email support or post a query on the forum.
{% endhint %}

The below provides the typical IFC export options available when exporting IFC from Rhino. You can access the IFC Export command by typing **ggIFCExport** into the Rhino command line, or by selecting **Export IFC** from the drop menu **ggRhinoIFC**.

If there are no selected geometries in the active Rhino window then the Ifc Export Options dialogue should appear to allow the choice of export options. Below provides a detailed description of the export options available.

![RhinoIFC Export Options](/files/gaLIo8i7JG2j6mZyS01q)

### **Version**

This option allows you to select which IFC version to write the file to (i.e IFC 2x3, IFC 4).

### **Geometry Options**

#### **Detect Extrusion**

Selecting this option performs a check to see whether poly-surfaces in the model can be represented as extrusions in the IFC file. If true than these will be represented as extrusions within the IFC files export. The default is unchecked.

#### **Maximum Mesh Face Count to Simplify**

If a mesh is seen to have more than the specified number of mesh faces, than the exporter will attempt to simplify the mesh in order to reduce the overall size of the IFC file exported.

#### **Geometry Deviation**

This parameter allows the user can set a geometry deviation values which will be checked as geometry optimisation is performed.

#### **Ignore Curves**

Ignore rhino curves when exporting to .ifc

### Additional Output Options

#### **Objects to generate CAD files (for Revit)**

This options allows the user to specify which elements additional CAD files will be generated for when exporting. You can select **ALL** or only to exported **BLOCK** objects. **NONE** is the default option.

These file exports are typically for Revit when importing geometry for Revit families geometry.

{% hint style="warning" %}
CAD files will be exported to the export folder chosen for the IFC file.
{% endhint %}

#### **CAD Format**

The **CAD format** specifies the format in which generated CAD files are to be exported to. You can choose from **Rhino**, **DWG**, **SAT** or **NONE**. The default selection is Rhino, but SAT may be the preferred export if transferring to Revit.

#### **Respect View Visibility**

This allows the user to set object styles in ifc which are similar to those as defined within Rhino.

### **Project and Site Options**

#### **Named CPlane for Site Placement**

This options allow you to set a site placement from a user defined Construction Plane in Rhino. You can select the desired construction plane from the drop down provided in the dialogue box.

{% hint style="warning" %}
You will need to define the CPlane manually in order for it to show up in the drop down list. The Rhino typical CPlanes will not be populated.
{% endhint %}

{% hint style="info" %}
If you are defining your ifc output from scratch within Rhino you can also set the site construction plane by using the context menu of the ggRhinoIFC Layers panel.
{% endhint %}

### **Filter Options**

#### **IFC Classes to Ignore in Export**

This allows you to ignore objects of a specific class when exporting from Rhino. You can select more than one Class to ignore in the export by providing a coma separator between each class. For Example:

`IfcMember, IfcMechanicalFasterner`

## Typical RhinoIFC Export Issues

#### Q: Geometry won't import into another application:

**A:** Sometime you may face issues where the geometry you are exporting from Rhino may not import into another application. This may be due to a number of different reasons, some of which are outlined below:

* **Geometry did not get exported because it was unable to be defined within IFC**: To test if this is the case try to re-import the geometry back into **Rhino** using the GeometryGym RhinoIFC importer. If the geometry does not get imported please contact us for assistance. We should be able to provide an update or provide tools to adequately rationalise the geometry to facilitate export.
* **Geometry export type is not supported by the receiving application:** In most cases the receiving application may not accept the geometry definition provided in the GeometryGym export. There are many different ways a geometry can be defined and we will often try and use the most memory- efficient available within IFC. First try changing the export type to IFC2x3, If this does not work try converting the export geometry to a basic geometry form such as a mesh.


# Using Rhino IFC Layers

Explanation of using Rhino IFC Layers for Generating IFC files

Rhino IFC Layers allows the user to take geometry created in Rhino and build an IFC BIM model. This is done by referencing geometrical layers in Rhino and assigning IFC information such as project, site, building, building level and element class type information.

This allows us to generate .ifc files directly from Rhino that can be imported into external applications such as Revit or other CAD/BIM applications. The simple building example below will guide through setting up a simple building in Rhino using RhinoIFC layer for export.

Note that all Geometry Gym Ifc Attributes are simply stored as User Text on layers.  So if you prefer to manage this using python, grasshopper or other programming techniques, it's possible to automate the user interface shown below.

![](/files/OMZjKnOhmPMKvnsLeVXT)

## Rhino Layers Toolbar

After installing the **ggRhinoIFC** plug-in there should be an accessible window called **ggRhinoIFCLayers** available. If you cannot see the window in the properties window right click and see if it is available from the drop down toolbar list.

{% hint style="warning" %}
Don't get this panel confused with the **ggRhinoIFC** panel. This panel is the IFC tree viewer panel used for browsing imported .ifc files.
{% endhint %}

### Using the RhinoIFC Layers Panel

You will notice that the view of the RhinoIFC Layers panel is a direct representation of the Rhino Layers panel and provides all the available layers that the user has created in Rhino. As new layers are created in Rhino these will automatically be reflected and viewed in the RhinoIFC layers toolbar.

![ggRhinoIFCLayers Panel](/files/Jt687RvWAxbYKmdPHp71)

Once you have defined a couple of layers within Rhino you can use the RhinoIFC layers panel to assign IFC information to objects contained within or to Sub/Children layers.

{% hint style="info" %}
The RhinoIFC Layers Panel is solely used to manage the IFC information assigned to objects within a Rhino Layer. You do not use it to create layers.
{% endhint %}

Right click on one of the layers in the IFC Layers window. A context menu will appear and allow you to assign an IFC Classification to that layer. Assign the appropriate ifc class designation to the layer by traversing through the context menu to get to your desired classification. The root (or uppermost) layer should be classified as the *IfcProject*.  IFC file can then be created by the ExportToFile option on the right click context menu of this layer for rhino objects on children layers.

![Right Click context on Rhino Layer](/files/srkRRXyqevpsQV1CUBLt)

Once a layer has been assigned a IFC class designation it will be displayed within brackets next to the layer item. If you right click on the element again the context of the menu is changed to reflect the information in-which can be assigned to that object.

For example if Layer 01 is assigned as the IFC Project Root Layer, when right clicking on the layer again there will be a number of options to assign additional information to the project such as the Project Placement Plane. This menu is context sensitive so will change based on the IFC Class designated. You can also change the provided classification or remove it completely under the *Change classification* menu item..

![](/files/f5ofFRP8KYPShpyqnaCX)

{% hint style="info" %}
You can set a Project Template text file to assign property sets to specific class objects within Rhino. See below for more information
{% endhint %}

#### Ignoring layers

Typically when generating Rhino geometry you will have layers in-which you will not want to be exported in the .ifc file. If you do not want a layer to be included in the IFC export then you can set that layer to be IGNORED as shown below:

![Ignoring a Layer from IFC Export](/files/E4oxm2UKXdeMqiDyZilM)

#### Setting Classification Systems

{% hint style="warning" %}
In progress. Please contact us for information and advice or please see the information provided under Rhino IFC for Grasshopper.
{% endhint %}

## Setting a Rhino Layer Hierarchy

The first thing to do when defining an IFC export is to understand how the building is broken up hierarchically. An understanding of IFC of benefit for this. As a simple guide the below shows the typical breakdown.

**Project -> Site -> Building** -> Building Story -> Space -> Assembly -> Element

The items shown in **Bold** are typically required as a minimum. However, it is good practice to provide further breakdown to make it easier to reference building parts further down the line. Each project will be different, in complexity and stage and requirements.

## Adding Properties

It is possible to add properties to associated ifc objects. This process works by assigning user-text to objects in the background and managing this by a IFC properties tab in Rhino under the

### Assigning a property set to specific IFC classes

You can automatically assign property keys to objects which have been defined as object classifications using a .ifc text file project template with the containing property sets. This will then allow you to assign property values to each object defined within Rhino.

To add a *Project Template:*

1. Navigate to the root Project layer within the Rhino IFC Layers toolbar and select Project Template from the drop down.
2. A text box should appear which will allow you to paste in your ifc text. This can be in .xml, .step or .json format.
3. Click Okay. Not if you reopen this text box it will likely be converted to a .json format string.

![Adding a Rhino IFC Layers Project Template](/files/2AoPpdOebzYQ6yVD1HXu)

Once you have added the Project Template text you can now select an object in the Rhino Viewport and assign its property values. Navigate to the Properties panel of and click on the IFC logo icon to view all available properties. You can now also edit these properties for each object.

![Accessing Rhino IFC Properties](/files/xL9NYIR4Drz5ue3KMLq3)

### Property Template File

The below provides a simple example of a property template file. This example generates two property sets. One which is applicable to all IfcSpatialStructureElements and one that is applicable to both IfcElements and IfcSystems.

You can specify which IFC entities each property sets should be assigned too. You can simply do this by modifying the text in project template or by defining this on creation of the template file.

In order to create such a file, we typically recommend Grasshopper as the best way to do this. You can read more about this at the page link below:

```csharp
{
  "HEADER": {
    "FILE_DESCRIPTION": {
      "description": "ViewDefinition[notYetAssigned]",
      "implementation_level": "2;1"
    },
    "FILE_NAME": {
      "name": "",
      "time_stamp": "2020-06-05T10:55:27",
      "author": "NathanLuke",
      "organization": "Unknown",
      "preprocessor_version": "ggRhinoIFC v1.8.19.0 by Geometry Gym Pty Ltd built 2020-05-25T05:19:24",
      "originating_system": "ggRhinoIFC - Rhino6 Plug-in by Geometry Gym Pty Ltd",
      "authorization": "None"
    },
    "FILE_SCHEMA": {
      "schema_identifiers": "IFC4"
    }
  },
  "DATA": [
    {
      "type": "IfcProjectLibrary",
      "GlobalId": "21hMc4wgjAqRSadX1a_jic",
      "Name": "Asset Property Templates",
      "Declares": [
        {
          "type": "IfcRelDeclares",
          "GlobalId": "1V9uXw1gT02gPkPEPwlIvO",
          "RelatedDefinitions": [
            {
              "type": "IfcPropertySetTemplate",
              "GlobalId": "12aLVZVcv5rgaTnLltBLnd",
              "Name": "Location",
              "TemplateType": "PSET_OCCURRENCEDRIVEN",
              "ApplicableEntity": "IfcSpatialStructureElement",
              "HasPropertyTemplates": [
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "1ymLuN8vPF5RF4P6XK_FZH",
                  "Name": "Project_LocationCode",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "34G2EWsZX1_BtdJhGiPbzd",
                  "Name": "Project_Parent_LocationCode",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "29r3CIC1PCPO$6Nig4rMHZ",
                  "Name": "Uniclass_LocationCode",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "3pfbcjXrH0hPIvvT4aqUNR",
                  "Name": "Location_ID",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "1dITTjslz1XP3BC2w_8NEs",
                  "Name": "Project_LocationDescription",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                }
              ]
            },
            {
              "type": "IfcPropertySetTemplate",
              "GlobalId": "1lQqf4HwjC39J3cNGKe2hl",
              "Name": "Asset",
              "TemplateType": "PSET_OCCURRENCEDRIVEN",
              "ApplicableEntity": "IfcElement,IfcSystem",
              "HasPropertyTemplates": [
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "2Y_Jhjgh5DNhT3xdCgImT8",
                  "Name": "Asset_ID",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "0Yev3wh$rDpQcrYWiOyxUl",
                  "Name": "Project_AssetCode",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "1vNtVROzbF5eYn42ZtYyam",
                  "Name": "Project_Parent_AssetCode",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "0rfq8vx9n6gByNOqe2oAEt",
                  "Name": "Uniclass_AssetCode",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "href": "1ymLuN8vPF5RF4P6XK_FZH"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "2B75DEezL0kQcI6E0mT$iR",
                  "Name": "Asset_Description",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "05dQRSKDfCPPiaDLP5Hql$",
                  "Name": "DisciplineCode",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "2v22J7cJ1Axh4dmEY90uR3",
                  "Name": "SubDiscCode",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcIdentifier"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "3pmODlgYP1$QD5mbRxAFSo",
                  "Name": "Asset_Status",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcLabel"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "0OC6ewtzn6yh2tb77f9yOq",
                  "Name": "Asset_Owner",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcLabel"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "12QUin7SD0YO_r_$YCwTQO",
                  "Name": "Asset_Operator",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcLabel"
                },
                {
                  "type": "IfcSimplePropertyTemplate",
                  "GlobalId": "2X7ozp8wr6ehHIXjw4$5V0",
                  "Name": "Asset_Maintainer",
                  "TemplateType": "P_SINGLEVALUE",
                  "PrimaryMeasureType": "IfcLabel"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
```

{% hint style="info" %}
If you have improvement suggestions for this process please do get in touch.
{% endhint %}


# Rhino to IFC Example

Example on Transferring Rhino Objects to IFC within Rhino

## Rhino to IFC Simple Building Example

The below outlines the steps in order to use this process to set-up a simple building transfer as shown in the image below.

{% hint style="info" %}
Download the .3dm Rhino file for this example [here](https://drive.google.com/file/d/1Knaw3RakUtjcu8MxKqREW9vq80WFAJq5/view?usp=sharing).
{% endhint %}

The geometry has been created in Rhino from a variety of scripts and generic modelling. The building will be broken into 4 levels and the elements will be assigned to each. A triangular mesh also defines the existing topography of the land.

![Simple Rhino Building](/files/yx9yCk83Y9puZ6KG9YJ8)

### Generating the Layer Hierarchy

The first step is to create a Rhino Layer Hierarchy that applies to your project. Follow the steps here along with the image below:

1.0 Create a Root Layer for the **Project**.

2.0 Create a new Sub-Layer defining the Project **Site**.

{% hint style="info" %}
Assign the site topography mesh directly to the Site layer. This will ensure the topography will be assigned in the correct location on export.
{% endhint %}

3.0 Create a new Sub-Layer under the Site Layer defining the **Building**.

4.0 Create new Sub-Layers under the Building Layer to define each **Building Storey**.

{% hint style="warning" %}
For a small building such as this, it may not be 100% necessary to provide building stories, simplifying the layer hierarchy. The products/elements could all be defined underneath the Building layer itself.
{% endhint %}

![Generating the Rhino Layer System](/files/u50SaAxLPB1IeKXlsCGa)

5.0 Now that you have generated the primary hierarchy of the building you can start to defined the object which will be associated with each Story. The below shows an example on how to do this:

![Defining Object Layers](/files/nlKp4YFNthUfN22sAHK9)

Each 'Type' should be defined as a separate layer and all the associated objects or 'instances' of these be stored within this layer. Taking the Foundation level as an example, a separate layer has been defined for both the 700 diameter pad foundation and the 500 diameter pad foundations. Each instance of the type is contained within the layer.

The Tripod foundation frames will be defined as IFC Assemblies (a joined collection of elements - as this will be a welded frame which sits on the foundations). For each *IfcAssembly* a separate local layer hierarchy should be defined and associated objects assigned to those layers. Similarly, the same can be completed with stairs which are built up of multiple elements such as treads and stringers as shown under the Ground Level Layer.

### Assigning IFC Information using ggRhinoIFC Layers

Once you have defined the object into a layer hierarchy you can use ggRhinoIFC Layers to define how the objects are to classified into the IFC file which will be exported.

#### Setting Project Information

The root or highest most layer should be defined with the classification of IfcProject as shown below. The name of the project will be taken from the Layer Name itself.

![](/files/ler7qj9ZptXBPKpWD0e0)

No Objects need to be defined within this layer. It is simply used to set-up the hierarchy of the project.

Once you have set the appropriate layer to the class of IfcProject there are a couple of different options that can be provided to the IFC project. For example, you can add a **Profile Library** to be used with the Project. This is an .ifc file definition which contains a library of profile definitions which can be applied to ifc classes which typically have extrusion representations such as *IfcMember*, *IfcBeam* and *IfcColumn*.

A Project Template can also be defined which can save you time in generating the layer hierarchy from scratch each time.

#### Set Site Information

Assign the second layer in the hierarchy to the *IfcSite* as shown in the picture below. Ensure that the topography mesh is assigned to the corresponding layer in Rhino. Typically this layer should be named Site.

![Assigning the IfcSite Classification](/files/La1UnKKqDyHfqpKKr7ZJ)

The *IfcSite* context options allow you to set a position of the site by either Manually setting a plane by *SetPlacementPlane* or selecting an already defined Rhino Construction Plane. You can also set the site Latitude, Longitude and Elevation of the site from here.

![](/files/rQgC25jLVRSKros3CnIm)

{% hint style="warning" %}
Model positioning is poorly agreed and inconsistent across a number of software application implementations so always ensure you have a way of checking that your model is correct on export. If you are having issues with this please contact us for guidance.
{% endhint %}

#### **Set Building Information**

Once the site information has been set. Set the next layer to the classification of *IfcBuilding* as shown below. The building Name will be taken from the name of the corresponding layer.

![Assign IfcBuilding to Layer](/files/Dp71MlJdE6i9qFKVbIjf)

Again, you can set additional information such as the placement plane of the building and other description information. You should not need to have any geometric elements stored within this layer.

**Set Level Information**

For each of the levels I can use the right click context menu to assign the the children layers to that level. Right click to view the context menu set the layer classification to *IfcBuildingStorey*. The Storey name will be taken form the layer name itself.

![Assigning a layer to an IfcBuildingStorey](/files/jAbgWMvMasO9T086w5wF)

Once you have set each Level layer to the appropriate classification you can again right click on the level layer and assign the elevation for each level as shown below. You can use *Set Children Layers* on the building level layer to set all layers to the *IfcStorey* Classification.

![Setting level elevation](/files/IvAmTRTVl8oJmd1ST2E5)

{% hint style="info" %}
You may also want to assign the level by a placement plane as shown above.
{% endhint %}

#### **Set Assembly Information**

Sitting on top of the foundations will be a welded brace frame which will support primary beams. This frame is built up of a number of *IfcColumn* and *IfcMember*, which we will include in an *IfcElementAssembly*.

To define an assembly select the Parent layer of the assembly and assign it the appropriate assembly classification. You should not have any objects within the Assembly layer itself.

![Assigning an IfcElementAssembly](/files/Kys7nJVUkXjVHT8NZwlZ)

Once you have assigned the *IfcElementAssembly* you can assign the elements in the children layers. In this instance assign the 3 legs of the tripod to an 100CHS Column Layer and nominate that layer as an *IfcColumn*. Nominate the 2 connecting plates of the tripod in an *IfcMember.Plate* classification.

At current each different assembly should be defined in its own layer system. Therefore, complete the above for the two other Tripods.

{% hint style="info" %}
If all the elements in the children layers are of a similar class you can bulk nominate all of these at the same time by selecting the *Set Children Layers* and then selecting the desired ifc classification.
{% endhint %}

**Set Typical Element Information**

The last step is to assign class information to elements contained within the different type layers for each level. This can take a little time depending on the size of the model and the number of different types. Below is an example of how the Ground Level Layer has been set up in this example. All of these classifications can be selected under **Ifc Classification > IfcElement > IfcBuildingElement** in the context menu.

![Assign IfcElements to a Level](/files/VECRfoEjpcoBokS8iST5)

You will notice that the stair has been broken down into a separate hierarchy (similar to the IfcAssembly) as there is more then one element that is defining the stair. This could also be done for the railing or even the different components for windows and doors but for simplicity they have been.

{% hint style="info" %}
If no classification has been defined for a layer within the hierarchy the exporter will export the objects contained in that layer as general elements of no specific.
{% endhint %}

When an element is selected as an element \*\*\*\*(i.e *IfcColumn*, *IfcMember*, *IfcBeam* etc.) which can be represented as an extrusion you can manually assign which profile within the Profile Library (defined at the project level) will be applied. We are not using the profile definition string in this example.

![Assigning a profile string to an element](/files/6Uo3OQZX3l27sqny4FxA)

**Set Layers to Ignore**

In this instance there are two layers in which I do not want to include in the IFC file, Default and WORKING. In practice these layers by default would not be included in the export as they are not contained within the hierarchy underneath the root Project layer. You can also set layers within the root layer hierarchy to IGNORE and these will not be exported.

### **Exporting to .ifc**

Once you have set the information to the geometry you can export the IFC file by navigating to the defined project line in the RhinoIFC Layers panel. Right click on the root project layer and select **ExportToFile**.

![](/files/kGCcANcOjXExKWEYIaJj)

The typical RhinoIFC Export options should appear and you can select the options you wish for your export. For explanation on export options please see here.

{% content-ref url="/pages/-LkbFijUxvseozkqfuSe" %}
[Rhino IFC Export](/rhino-grasshopper/ifc/ifc-for-rhino/ifc-export)
{% endcontent-ref %}

Once you have exported to Ifc try and import the ifc file into another application for viewing.




---

[Next Page](/llms-full.txt/1)

