algorithmic modeling for Rhino

A discussion thread for posting questions and examples relating to Analysis model generation in Grasshoper to Oasys GSA.

Wouter Brok raised the question here about how to generate an element capable of tension resistance only.

Tie elements are available in GSA to emulate cables and tensile rods.  They can be generated in the Geometry Gym plugin be assigning the Beam type in the Beam Attributes component.  Model attached.

Note this will force the GSA solver to use a non linear solver to enforce this.  If you're confident your loading scenarios will only induce tensile forces, you can still use the static solver by setting a bar element (and then verifying manually no compression force exists).

Views: 8499


Replies to This Discussion

Hello again,

had to start a new reply chain, seems we filled up the old one :)

We've now moved on from Serpentine pavilion (thanks for all the help with that, we learned a ton!) to the results of our master thesis, a small wooden pavilion, designed parametrically and modified/optimised using results from GSA.

Since we are currently investigating bars and surfaces in the structure, we have new questions:

In the BeamAttribute component you can set the beam type to bar or beam. What effect does this have, does it affect/override the beam releases?

Second question is about joining surfaces. We are trying to create a folded plate structure with shells. How can we connect two surfaces along their shared linear edge? And assign that edge with a shear capacity? (In the attached file we've approximated the plates with a triangulated bar structure. )


Agnes & Lukas


Great to hear.

Bars are capable of axial actions only (tension and compression).  There are also ties (tension only) and struts (compression only).  Note the gh plugin is really just an alternate user interface to gsa, you'll find technical help/descriptions in it's help system.  Certainly changing the type to Bar overrides any user defined releases.

The gsa solver must make special allowance for node "stability" when the elements connected are all bars (for rotation).  If you're circumstance when you change type to Beams, your end releases are applied to axial and shear at all ends (note you can change the "close model" input on the solver component to false so you can see the analysis error).  I think I previously discussed with Oasys about the COM interface sending back the "log" so I could display it in Grasshopper.  Elements with axial and shear releases both ends are unrestrained, so it's causing the solver error.  If you say released Fx and Fy at both ends it might work (I didn't test), certainly at one end only it should.

There's a hidden component (I can't remember if it's completed or not, i think so but not extensively tested) that can generate "tied interfaces" along edges of meshes to link nodes.  Try dragging and dropping this string below onto the gh canvas.


The trouble with rhino meshing is that polysurface edges can only have two adjacent faces, so getting coincident nodes along shared "edges" of surfaces is near impossible.

I do have some routines for "meshing" surfaces with simple geometry (ie 3 or 4 edged faces).  This takes a distance setting and forces vertex spacing to respect this along edges, so tied interfaces wouldn't be necessary.  If this is of interest, I'll see if I can provide it (or have done so) for the plugin.  Let me know deadline/time frames you have for using this.

Look forward to hearing from you,



great! We're currently playing around with the both the new component and the previous  "mesh convert finite element" component, & have some basic questions (ref "130606 connection test 2"):

- with the previous one, we are already getting some kind of stress plot. What is the difference between this previous component and the new/hidden one?

- for the enclosed example, we are not quite getting the new component to work completely (though we are getting some displacement results). What can we be missing?

- what is the logic of the resulting connection? Can we define the degrees of freedom of the resulting tied edge? And can we define the surfaces' movement relative to each other, as in beam releases?

- do you mean that it is hard, in rhino, to mesh together 3 surfaces that meet in one line? As seen in the file of the final structure (hexagon cylinder 2 rh & gh), our surfaces are indeed simple & four-edged, but meet 3 in one line in several places. 

We are working on it now, and are looking at a timeframe of this week and beginning of next week, when we are producing a scale model of the pavilion. We are only going into fullscale production later this year, though, so we are continually interested, of course!


Agnes & Lukas



I have just started playing with this great plugin and look forwarded to learning much more about it. 
I was wondering if this panel I made using grasshopper can be converted to IFC and imported into revit. Does not matter what it is translated to but a wall would probably work best. 


I'm having trouble finding the Grasshopper operator which allows me to define cable section properties for GSA (not normal section properties)  It's probably there, but I can't find it... Could someone show me which operator i need for this? 


Oasys Webinar : Linking GSA with Grasshopper (including API execution of GSA) 9th August

Will be demonstrating using Grasshopper as a user interface for GSA, as well as explaining how to develop similar external interaction using the COM interface.

Here's the recording of the webinar.

Hi Jon,

We are trying to set up a model for analysis on both global and local scale simultaneously. This to both get a overview of the model but also see how this affects the connections of the elements. 

As a first start we have modeled a three bar structure with a ball (mero) type of connection, simple as possible. The ball is analysed as a mesh and applied with the normal forces generated from the bars in the global model. We have some problem how to define the locked nodes for the connector. How do you lock its position in a correct way? 

Looking forward to the answer :) 



Hi Lukas,

Thanks for posting.  It's a really interesting question.  Is the sphere a solid in real life?  Using FEA with brick (or 3d) elements is most appropriate if it's not thin walled.  Unfortunately GSA doesn't have these (at least yet, maybe one day).

It's interesting you have combined models in one gh def (I assume maybe this was for posting).  I do plan to try and enable different database for each canvas soon.

So, I haven't done so much connection FEA, but my experience we would cut a free body diagram away from the area of interest.  So the I beams coming in would also be meshed as plates (for at least a short extent).  Then one cut plane would be restrained, the determined actions applied to the other free ends and you can get results.

I hope this helps a little,


Hi again! 

Thanks for the reply! Because it is only possible to model shell mesh elements we think of the sphere as hollow. 

The combining of two models in one is actually kind of our goal to this experiment: to, in one model, extract the results from a global form (axial loads etc) and project them onto local connections, in order to dimension those. The nodes (our simple sphere in this case) could for example be the connection in a Mero system, or if you recall the Serpentine, a mesh of an individual element. We hope with this type of modelling to be able to check a varying connection is a few places in a global structure, without having to mesh the whole structure. Does this sound promising at all? :)

Yes as you say we try to model a two-in-one model gh def, global and local. Your suggestion to lock one of the cutplane seams reasonable. In this first def. we simplify this with some approximate nodes, see def. Although we seem to get some strange results, with a really high stress concentration over the locked nodes compared to the load applied nodes.

Do you have any suggestions how this could be explained? Is it something wrong in the gh def?   

Thanks for all the help, really appreciated :)  


Yes, you might very well get high (and not so accurate) stress concentrations at locked nodes or load application points.  This is typically why a free body is cut around the connection, so that these can be disregarded and you get more realistic results at the area of interest.








  • Add Photos
  • View All


  • Add Videos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service