My team designs big stuff, with complex geometry. For a
while now (since well before my time with the team; I’ve been here for a year
and a half) we’ve been using Grasshopper 3D to define our geometry –
beams, columns, trusses, struts, etc – with some pretty cool results.
Geometry definition of the Al Wakrah stadium roof, Qatar, produced in Grasshopper by AECOM Sports in London.
Alright, it’s all well and good to parametrically define
some funky geometry – and maybe impress some architects along the way – but
that’s just the first step. Let’s look at structural engineering in terms of The Three D’s: Define, Design, Draw.
What we’ve done so far is just step 1, Define.
The second D, Design,
requires the use of a three dimensional finite element analysis package, in our
case Nemetschek’s Scia Engineer. Previously, we did one of two things to
go from Define to Design: we either used Scia’s spreadsheet input by outputting
our parametric members and nodes from Grasshopper into an xls document, opening
Excel, copying the whole lot and pasting it into Scia; or we baked our geometry
from Grasshopper into Rhino, output a dwg from Rhino, then imported it into
Scia.
Both of these methods can be rather clumsy, lead to rounding
errors, have some major drawbacks (e.g. the spreadsheet method can’t import
curved members at all), and, most importantly, are long-winded. Thus whenever
you make a change to the geometry it takes a long time (by parametric design
standards) to rebuild the geometry in your analysis model. You then need to
redefine all of the member and node parameters, such as element releases,
supports, cross-section information, and loads.
Enter Panda, our
in-house Grasshopper tool which takes geometry of any kind and converts it into
Scia’s native XML format, ready for import directly into Scia. When set up
properly, we can import an entire model, open it up in Scia, and press Run,
without having to set up any additional parameters from within the Scia
interface. The model will already include everything we need to analyse the
structure and run Scia’s automatic steel design functionality.
Below are some screenshots of the Grasshopper script,
including a zoom-in of our Model Creator component. As you can see, everything
from cross section, load cases & combinations, applied forces, hinges,
supports and design parameters (buckling lengths and restraints) are already
defined before we even open Scia. The “Pandarator” – the component to the right
of the Model Creator – is the final step; it writes out the complete XML file,
ready for import into Scia.
So how do you do this yourself? Well, it’s all about
learning about Scia’s native XML format and how to generate the files, and then
automating the process. You can start by exporting an XML file from Scia,
looking at how it works, and adapting the code for your own scripts.
Or if you just want to get a quick geometry model into Scia,
as part of this blog post we’re releasing Panda
Lite – a free Grasshopper component we’ve created to generate a Scia XML
file from a set of lines and arcs. Simply plug the curves into it, set an xml
filename, start a new model in Scia, and go to File->Update->XML. It’s
that easy!
And what about the third D, Draw? Well, that’s the second part of the Panda suite: our link
from Grasshopper to Revit, with Autodesk’s Dynamo as an intermediary.
But that’s the topic of a future Blog entry to be posted by my esteemed
colleague, MBMB (a.k.a. Matt Byrton).
End User Agreement*
End User Agreement*