Grasshopper - Tekla Structural Designer Live Link
Note. This article is applicable upto and including Tekla Structural Designer 2019i. If you are using Tekla Structural Designer 2020 then please refer to the article here
Introduction
The Grasshopper-Tekla Structural Designer (GH-TSD) live link enables algorithmic modelling for Tekla Structural Designer (TSD) using Rhino (64-bit)/Grasshopper. The link is a set of Grasshopper components that can create and update objects live in TSD.
The Grasshopper-Tekla Structural Designer link currently supports the UK (Eurocode) Headcode only.
Prerequisites
You need to have Rhino (download) and Tekla Structural Designer (version 2019i or later) installed on the same machine. TSD 2019i SP2 and earlier versions must be run as an administrator to interact with the Grasshopper-TSD link. TSD 2019i SP3 does not require administrator privileges.
Grasshopper is included in the Rhino 6 install. If you're using Rhino 5, you need to install Grasshopper separately (download).
You can try out the full version of Rhino for free for 90 days. The Grasshopper add-on is free of charge.
Setup
If you've already installed any version of the link and are doing an update or re-install, see the update section further down.
- Download the zip with the required files (GH-TSD.gha, TSD_Steel_Example.gh, TSD_Concrete_Example.gh) from Tekla Warehouse.
- Make sure you download a package targeting the (installed) version of Tekla Structural Designer you'd like to work with.
- Run Tekla Structural Designer (2019i SP2 and earlier - run as administrator) and create a new document.
- Run Grasshopper within Rhino (64-bit) and drag GH-TSD.gha onto the canvas to install the components. A new component tab labeled TSD [version] should appear.
- If the TSD tab doesn’t show up, the component file might be blocked as it’s downloaded from the internet. To unblock the file:
- In Grasshopper, click File > Special Folders > Components Folder
- Right-click GH-TSD.gha and click Properties
- Under the General tab, click on the Unblock button, and click OK. (If you don’t see an Unblock button, the file is not blocked.)
- Restart Rhino (64-bit)/Grasshopper. The TSD tab should now be visible in Grasshopper.
- If the TSD tab doesn’t show up, the component file might be blocked as it’s downloaded from the internet. To unblock the file:
- In Grasshopper, click File > Special Folders > Components Folder
- Close Grasshopper and Rhino, and replace the GH-TSD.gha in the Components Folder with the new file
- Launch Grasshopper again
- If the TSD tab doesn't show up, you need to unblock it as described in the previous section
Working with the link
Getting started - example files
Once the GH-TSD link is installed, you are ready to try the example files.
For best results, TSD should be started before Grasshopper.
Starting with both TSD & Grasshopper closed:
- Run TSD (version 2019i or later) as an administrator and create a new document
- Run Rhino (64-bit) and ensure the units are set to m to match the example file units
- Run Grasshopper
- Open one of the example files (Concrete_Multi_Storey.gh or Steel_Multi_Storey.gh)
- Connect the input geometry to the Columns, Slab Items or Wall Panels components:
-
Image
- TSD will display preview graphics while changes are exported from Grasshopper:
-
Image
-
- TSD will update the model after the last export from Grasshopper:
-
Image
-
- You can now connect other components, or change the input parameters and see those changes reflected live in TSD
-
General notes
- Make sure you run TSD as an administrator, and open a (new) document before running Rhino/Grasshopper or inserting components. The components generate and modify objects live in TSD. Components will show warnings when TSD cannot be reached.
- The TSD components convert native Rhino/Grasshopper Geometry objects such as lines & polylines to structural objects such as beams, columns and walls in TSD. It is good modelling practice to get your script producing a suitable configuration in Grasshopper, before adding and connecting TSD components.
- If there are multiple (compatible) instances of TSD running, the GH-TSD link will create geometry in the instance that was opened first.
- It is best practice to work with only one running instance of TSD, only one running instance of Grasshopper, and a single Grasshopper script. If multiple scripts containing TSD components are open, it is necessary to recompute the solution after switching from one script to another.
- Removing components from the canvas, or removing their inputs, removes the generated objects from the TSD document.
- The link uses the units of the currently open Rhino Document for the geometrical inputs.
- The link uses the units of the currently open TSD Document for all other inputs (Force, Area, Inertia etc.)
- To cut the link between a Grasshopper component and the TSD object it has generated, right-click the component and select Bake to TSD. This will leave the object as-is in TSD, and a copy of the object will be generated upon further modifications of the component input.
Advanced Topics
Setting option parameters
Many TSD components have parameters which are not of the basic Grasshopper types, e.g. strings, numbers, bools.
For example, the Slab Item component has an input parameter for Diaphragm Option:
There are a number of ways that you as a user can specify such option parameters. The simplest is to set the value directly on the component, by right-clicking the parameter and choosing from the provided list:
Alternatively, there are a number of option components included with the GH-TSD link:
These allow you to specify a single value for each option, which can then be used on multiple components:
The final alternative is to define such options using a text panel. The provided text must match the name of the option exactly:
Continuing sessions
The GH-TSD link allows you to parametrically create objects in TSD from Grasshopper, save both files, reopen those files at a later time, and continue working with the parametric link.
To do this:
- Finish your modelling in Grasshopper and allow TSD to finish updating the model
- Save the Grasshopper model
- Save the TSD model
When you want to continue your workflow:
- Run TSD
- Open the TSD model
- Run Grasshopper
- Open the Grasshopper script
At this point, changes made in your Grasshopper script should be reflected in TSD as updates of the existing model, rather than as creation of new objects.
This approach can be particularly useful if you want to model some non-parametric objects directly in TSD, or want to create unsupported objects, e.g. combinations or envelopes, and have those persist between sessions.
Troubleshooting
Warning messages on components
If TSD cannot be reached, the GH-TSD link will add warning bubbles to TSD components:
Should you see these messages, check that:
- A compatible version (2019i or later) of TSD is running
- TSD was started with administrator privileges
- There is a document in TSD
Resolving instances where TSD does not respond to changes in Grasshopper
Should you find that TSD does not respond to a change you have made in Grasshopper, and warnings are not visible on components, the following may be tried:- Recompute the solution. Right-click the Grasshopper canvas and select recompute
- Disconnect a TSD component from its input geometry, and reconnect it
- Close the Grasshopper document (Ctrl+W) and reopen it
- This is required if you have changed any model settings in TSD, such as units, headcode or region.
Components in the GH-TSD link
Steel
- Steel Beam
Image
- Creates a single-span steel beam along the provided line
- Steel Column
Image
- Creates a steel column along the provided line. The column in TSD is automatically split into stacks between levels (levels are added automatically in TSD for Slab Items created from Grasshopper). The column line provided in Grasshopper should represent the whole column including all stacks.
- Steel Brace
Image
- Creates a steel brace along the provided line
Concrete
- Concrete Beam
Image
- Creates a single-span concrete beam along the provided line
- Concrete Column
Image
- Creates a concrete column along the provided line. The column in TSD is automatically split into stacks between levels (levels are added automatically in TSD for Slab Items created from Grasshopper). The column line provided in Grasshopper should represent the whole column including all stacks.
- Concrete Wall
Image
- Creates a concrete wall with the provided boundary (curve). The wall in TSD is automatically split into panels based on incoming geometry such as members and slabs. The wall boundary should represent the whole wall including all panels. The input curve must be a valid, planar, non-horizontal polyline with 4 segments.
- Wall Releases
Image
- Specify the release conditions at the top and bottom of Concrete Walls. Choose from Fixed, Pinned or Continuous (incoming members pinned). This option can be set directly on the Concrete Wall component by right clicking the parameter.
Panels
- Slab Item
Image
- Creates a Slab Item with the provided boundary (curve). The input curve must be a valid, planar polyline with at least 3 segments.
- Roof Panel
Image
- Creates a Roof Panel with the provided boundary (curve). The input curve must be a valid, planar polyline with at least 3 segments.
- Wall Panel
Image
- Creates a Wall Panel with the provided boundary (curve). The input curve must be a valid, planar polyline with at least 3 segments.
- Decomposition Target
Image
- Specify the “Decompose to” option on Wall Panels. Choose from Nodes, Members, or Rigid diaphragms. This option can be set directly on the Wall Panel component by right clicking the parameter.
- Diaphragm Option
Image
- Specify the Diaphragm Option on Slab Items. Choose from None, Semi-Rigid or Rigid. This option can be set directly on the Slab Item component by right clicking the parameter.
- Roof Type
Image
- Specify the Roof Type on Roof Panels. Choose from a list of headcode dependent values. This option can be set directly on the Roof Panel component by right clicking the parameter.
- Slab Item Type
Image
- Specify the Slab Item Type on Slab Items. Choose from Composite Slab, Flat Slab or Slab on Beams. This option can be set directly on the Slab Item component by right clicking the parameter.
Miscellaneous
- Supports
Image
- Creates a support at the provided point. Fixity of the support can be set by wiring boolean params to the support condition inputs
Properties
- Sections Filter
Image
- Find sections matching provided filter criteria. This component outputs a list of all sections matching the input filters, and allows you to choose a section from that filtered list.
- Right click the Selected Section output parameter to choose a section from the filtered list:
Image
- Right click the component to change the Section Geometry and Section Group:
Image
- The section geometries and groups are populated from TSD based on the region and headcode.
- Steel Grade
Image
- Specify a Steel Grade for use on steel components. The list is populated from TSD based on the headcode.
- Concrete Class
Image
- Specify a Concrete Class for use on concrete components and the Slab Item component. The list is populated from TSD based on the headcode.
- Member Alignment
Image
- Specify Member Alignment (snapping and offsets) for use with Steel Beams, Steel Columns, Steel Braces, Concrete Beams and Concrete Columns.
- Load Direction
Image
- Specify the direction of loads, for use with the Member Point Load and Area Load components. This option can be set directly on the Member Point Load and Area Load components by right clicking the parameter.
Member Loads
- Member Point Load
Image
- Creates a point load on a Member (Steel Beam, Steel Column, Concrete Beam or Concrete Column). Loads must be included in a loadcase for them to be added to TSD.
Area Loads
- Area Load
Image
- Create a whole panel area load on a Panel (Concrete Wall, Slab Item, Roof Panel or Wall Panel). Loads must be included in a loadcase for them to be added to TSD.
Loading
- Loadcase
Image
- Creates a loadcase with the provided name, member loads and panel loads.
- Loadcase Type
Image
- Specify the type of loadcases, for use with the Loadcase component. This option can be set directly on the Loadcase component by right clicking the parameter.