Friday, 31 December 2010

IFC Shape Representations

In response to the discussion on IFC Shape Representations on the IFC Linkedin group I decided to implement some further shape representations as examples and to find out other software reading and exporting models utilizing them.  From previous posts and comments, it seems like SCIA engineer might not have too many companions in recognizing and utilizing shapes other than the standard extrusions and faceted breps (which are often approximations).  I'm sure there might be some slight amendments I might make to the tags of the representations (I've implemented them as best I can interpret the informal propositions) but it's difficult to clarify them as examples of these files seem scarce.

Feel free to try and import these models into your BIM software (including viewers), and either comment or email me and we can tally which shape representations can be used with other software.

 A bounded plane surface : Grasshopper Model  IFC Export

 A revolved area solid : Grasshopper Model  IFC Export

A section spine solid : Grasshopper Model  IFC Export
Note that IFC does not explicitly define the surface geometry between the section spine profiles, I've used Rhino loft for the time being.

A swept solid : Grasshopper Model  IFC Export 
(I need to implement IFC curve parameterizations for more curves so this component is hidden for the time being)

Wednesday, 15 December 2010

BIM: Importing IFC to Grasshopper

New features added to Geometry Gym IFC plugin for Grasshopper and Rhino.  You can now import existing IFC data files into Grasshopper (more improvements on visualization coming soon).  There's also specific components for tagging objects as slabs, walls, stairs, beams etc.  Download from 

Example definition for importing IFC data:
Sample IFC data file : testTower.ifc

Priority will be given to new features requested by users, please keep sending them through.

Saturday, 11 December 2010

Fantastic projects utilizing Geometry Gym

Obtaining permission from commercial users (and their clients) is difficult, but it's nice to see some fantastic work published from the University of Innsbruck.  Congratulations to [UTO] and the designers researching and studying there.

Thomas Buseck has recently posted details of his projects at  Very impressive and I look forward to seeing more of your work.

Benjamin Ennemoser has also been combing the various Rhino/Grasshopper plugins to develop the form for his thesis project, details at his blog

It's always great to see the project work assisted by the Geometry Gym tools (thanks to all those who email me images and details), and if you'd like to also see your work raised here, please let me know.

Monday, 29 November 2010

Grasshopper IFC generation New Features

New features for extruding and remapping (arraying) building information models (BIM) in Grasshopper, exporting using IFC.
YouTube demonstration uploaded shortly.

Monday, 15 November 2010

Grasshopper generating IFC Update

Thanks to Scott Davidson for the gothic inspiration and a great example of Grasshopper Generation and the ensuing improvements for exporting from Rhino/Grasshopper to IFC (can be imported by BIM software such as Revit, Archicad, Digital Project, Microstation, Tekla etc etc).

IFC2x4 is anticipated for formal release next year, which includes NURBS representations and should enable Rhino/Grasshopper models to be exported with greater accuracy and with greater ease.  Until then, IFC2x3 does provide means and ways to represent shapes and forms created by nurbs, and this blog post will demonstrate some of them.  Note most software does not recognize or work with all aspects of IFC, so approximations such as the first for faceting the brep may be your only option.

The first shape representation is using a faceted brep, effectively meshing the surface.  Unless your original shape is a faceted brep (with planar faces and straight edges), there will be a loss of detail, but you can control the refinement of the meshing process (introducing more faceted faces).

Grasshopper Definition    Generated IFC Data

Theoretically it's not necessary to approximate the form with a faceted brep if you can generate it using processes and shape representations within the IFC specification.  This includes extrusion and boolean operations which can be used to form this vault.  In practice, it seems very few BIM software and IFC viewers acknowledge or are capable of these operations, so you may be forced to use the faceting approximation.  Please test these models with your favorite IFC software and feel free to post your observations as comments.

Most programs comply with extrusion, here's Archicad importing this model:

Grasshopper Definition    Generated IFC Data

I've struggled to find even an IFC viewer to successfully display this model, but there's no warnings of non-compliance.  The boolean operations should work with a rhino model absolute tolerance set to 0.01

Grasshopper Definition    Generated IFC Data

Please post any comments with software you can or can't open these models with.  If you've any particular shapes you'd like to export that aren't successful, please get in touch and I can help advise.

Instructions for getting started with the IFC plugins are found here.

Monday, 8 November 2010

Grasshopper generating IFC

Here's the first demonstration and example files for generating IFC from Grasshopper using the Geometry Gym plugin.  This is just the beginning.  IFC can be read by popular software such as ArchiCAD, Digital Project, Revit, Tekla etc etc.  Download the plugin from

Please try for yourself, and report all ideas, suggestions and problems.

Here's the Rhino file for the tower massing:  Rhino Model
Here's the Grasshopper definition:  Grasshopper Definition

Monday, 25 October 2010

Autodesk Robot Geometry from Grasshopper

More explanations and descriptions coming soon.  I'm in the process of developing creation of Robot Geometrical objects within the parametric Grasshopper environment.  Presently this includes polyline base revolutions panels and cladding panels.  I expect further development of aspects such as poly curves (with arcs) and extrusions to be added.  Please report any suggestions, observations and ideas and they will implemented with priority.

Polyline Revolution
Rhino model
Grasshopper Definition

Cladding Panels

Friday, 15 October 2010

Update to Rhino/Grasshopper plugin to SAP2000

The Rhino/Grasshopper plug-in generating and exchanging data with SAP2000 has been upgraded and now includes the option to "bake" the data directly from Grasshopper to SAP using the OAPI COM interface. No longer needed to save and import a text data file.

If you rebake variations, you might observe historic nodes being left in the model, I am still awaiting advice from CSI on an issue with deleting unattached points. There's more improvements that will quickly be implemented, if you've ideas or suggestions, please send them through.

You can download the 3 pin truss models : Rhino and Grasshoper
The basic mesh and restraint model:  Grasshopper

Friday, 17 September 2010

Network Patch

A stunning example of checkerboard patch, the Pavillion Serpentine Gallery (Photo by Sylvain Deleu ) prompted David Lister to ask how to achieve this in Grasshopper.  The algorithm is a variation to the curve network filleting routines in BullAnt, so I've just uploaded a new build with it included.

Rhino Model available from here.
Grasshopper definition available from here.

Wednesday, 8 September 2010

Tessellation - Approximating a Form

An example of using the recent addition of Tessellation to the BullAnt Grasshopper plug-in to define a shape or form.  Mario Vergara recently posted to the Grasshopper forum about using L-systems to generate a shape or form.  Whilst the attached example doesn't utilize this, there is no reason why the base form could not be generated in a plug-in like Rabbit and then used as input to the BullAnt tessellation.  Improvements on the agenda include curve definitions for the intersection path.  Please send through other ideas and suggestions.  Be patient with the algorithm, it should run faster in Rhino v5.

You can download the Grasshopper / Rhino file from here.

Wednesday, 1 September 2010

Grasshopper Curve Force Density (Great Court Roof Revisited)

First thing to state, I plan to revisit the topology (connectivity) of the curve network to get a better result, so please come back soon and check if it's updated.

I've been adding curve network force density tools into the Grasshopper BullAnt plug-in.  There's progress on using the Great Court Roof as an example.

You can download the Rhino file here and the Grasshopper definition here.

Also possibly of interest is a "reverse" force density where it iterates through the network nodes and repels the neighbouring nodes rather that move the current node, which can be used in some circumstances to produce equal length curves.  Here's one example, although it seems there's lots of scenarios where it's not so successful. I've put a slider on the iteration so you can see it converge on an answer, and it's producing two adjacent loop results so you can compare.

Rhino file here and Grasshopper file here.

Digital Design Workshop Johannesburg

A fantastic event held last month, arranged by Hugh Fraser and supported by PG Group, it was a fantastic opportunity to meet South African Architects and Designers keen to learn more about Grasshopper3d and Digital Design and Fabrication. Kristof Crolla and Jeroen van Ameijde led the workshop, I provided additional advice and assistance with technical aspects and Grasshopper modelling.

It's worth watching this entertaining summary by Hugh which is the next best thing to having been there:

Leon Krige (who exhibits a lot of his fantastic photos, check out ) took a few of the photos shown below.

We were all disappointed the glass could not be cut in time, but still some great results were achieved and we all learnt a lot.  The format of splitting into small groups, building prototypes of ideas and stage design competitions to reduce down to three final projects was a great format.

If you get down to Main Street quickly enough, you can still find the mdf sculpture in the sewer drain (but rain will be here soon) and possibly the other projects in Main Street Life.

Some of the work shop participants in Main Street Life foyer under one of our final three projects.

Leon has managed to make the sewer look relatively attractive, but it's hard to convey the smell on the internet.

The third of the projects which is yet to be realized in real life.

Hopefully this is the first of a many of these types of events. If you're interested, please don't hesitate to get in touch.

Friday, 20 August 2010

Tessellation in Grasshopper (Beijing Watercube revisited)

I've started enabling the tessellation (polygon packing) routines in Grasshopper, and the Bejing Watercube is such a great example of using this geometry I thought I'd post the grasshopper version.
Rhino file from here.
Grasshopper definition here.

I've also started implementing some spline variable cell filleting, I'm still looking at options for generating best results.  An improvement on constant radius results.

Thursday, 5 August 2010

Three pin Truss

An assignment was set recently at UC Berkeley to model a three pin truss utilized at the previous Eurostar Terminal at Waterloo, London.

A question on how to generate this arrangement was posted on the Grasshopper forum, and I think it is a fantastic example of structure that should be modelled in Grasshopper to achieve the best design possible.

The assignment due date has passed (I hope), so I think it's safe to post how I would use the Geometry Gym plug-ins to model this structure.  This includes a new BullAnt Truss component, that allows you to select the nature of the truss connectivity (at present, Pratt, Warren, Vierendeel and Brown) between two chord curves.  Other truss types are available upon request.

GSA screen Capture

Download AVI from here

Robot screen Capture

Download AVI from here

And the files so you can try for yourself:

Rhino Model (Required for all Grasshopper Definitions)

Grasshopper definition for BullAnt
Grasshopper definition for Oasys GSA
Grasshopper definition for Autodesk Robot
Grasshopper definition for SAP
Grasshopper definition for SDNF (Steel detailing neutral format can be exchanged to BIM software such as Tekla and Digital Project)
Grasshopper definition for Strand7/Straus7
Grasshopper definition for Sofistik

Other software models coming soon, please request to accelerate.

Monday, 2 August 2010


Wieland Schmidt recently posted two stunning renders of sculpture produced utlizing Geometry Gym StructDrawRhino routines in Grasshopper3d.  The components for geodesic domes, cell filleting and mesh inflation were used.  Fantastic work Wieland, thanks for sharing and would be nice to see them created in the real world.

Thursday, 29 July 2010

Generate Finite Element model in Rhino and exporting back Stress Results

I've had a number of requests lately about analyzing Rhino/Grasshopper mesh and using the mesh results back in Rhino/Grasshopper.  Thanks to Tom of [UTO] for this particular example, which was mesh created in Grasshopper using WeaverBird.

The video above demonstrates this using GSA (which is free for Students).
The rhinocommand ssiGSAMeshtoGWA translates a Rhino mesh into GWA data which can be pasted in the gateway. The mesh remains unchanged, although the routine will triangulate quad faces that are not within GSA planar tolerance.

Node Restraints, finite element properties and loads are quickly applied in GSA, and the model analayzed for results. The results can be exported to a text file, which can then be loaded back into Rhino. The number and nature of these results can be controlled in the GSA export process, and this can be saved into the GSA model as saved output to be recalled later. ssiGSALoadResults command can be used to open this results file and false-colour the mesh. Note the model data must be active in either the Rhino (or Grasshopper) plug-in (thus I imported the model data back).

There's improvements to be implemented in the near future, including other results and importing into a Grasshopper component.

Here's the files so you can try for yourself:
Rhino Mesh Model
GSA Model

19th August 2010
Some further discussions and experiments with finding vector fields on the Grasshopper forum  for the model have prompted me to append this blog post.

I've added some additional functionality to ssiRhinoGSA (v0.8.0037 and newer) to allow using the command ssiGSALoadResults command to interpret Principal stress data results.  An export such as this results.txt
can be read, I used a scale factor of 2e-8 and unsigned magnitude to generate the lines representing the principal stress vector field.  You can then set these lines in Grasshopper and convert to vectors as shown in this Grasshopper model.

Tuesday, 20 July 2010

Sofistik CableNet from Grasshopper

Progress of Sofistik model generation from Grasshopper3d. You can now nominate lowest acceptable beam and node generation, apply beam properties such as releases, offsets as well as node restraints. Lots more coming

youTube screen capture or download better quality AVI from here

Tuesday, 6 July 2010

Grasshopper3d to Autodesk Robot - CableNet

Progress on the Geometry Gym Rhino3d/Grasshopper3d to generate and exchange Autodesk Robot data is going well, above is a screen capture demonstrating parametric exploration of a cablenet roof (I've used beam profiles so they can be seen in the video).

You can realize great benefits to determining an efficient cable scheme by parametrically exploring the spacing, depth and easily measuring quantity, cable end fittings etc.

In a near release the node restraint generation in Grasshopper will also be added to the Robot Model, and on the agenda in the short term is to add ability to generate loads, hinges and lists within the Grasshopper definition.

To try yourself, download the plug-in from
The Rhino model with saved profile/view can be downloaded here: Rhino Model
And the Grasshopper definitions : (Other programs coming shortly)

Saturday, 3 July 2010

Exporting Grasshopper to Digital Project/Tekla/BIM

Recently I've been concentrating on development of neutral BIM file formats, with the primary goal of enabling parametric modelling of structure in Grasshopper and then exporting those models into other modelling software such as Digital Project, Tekla, BIM software and other design software.

One of the biggest frustrations I've experienced, and a large reason why I've undertaken an opportunity to develop Rhino Plug-ins is to reduce duplicated modelling work and the associated time and cost in coordinating models.  On a given project, each of the design consultants (ie architects, structural engineers, services engineers,  contractors and project managers etc etc) will build digital models of the project to analyze, review and communicate their work.  Even within the same office, there might be multiple models created (and more importantly maintained and altered as the project changes).  The ambition and philosohy of BIM is ideal to improve efficiency and productivity, but I'm not expecting this to be a new idea to anyone reading this post.

So, to parametrically generate BIM information from parametric modelling software such as Grasshopper is an amazingly powerful tool and workflow.  Already available for use and testing of this workflow is the Geometry Gym SDNF plug-in (available from ), which is capable of skeletal or steel frame model exchange.  I've attached an example geodesic dome model for interested users to test and try this work flow.  Soon to follow will be IFC (Industry Foundation Class) attribute generation which will allow further information such as walls, slabs, doors, windows etc, and hopefully it goes a long way further than that.

Make sure you also download the StructDrawRhino plug-in for the Geodesic component, and you will need the free trial license to activate these Grasshopper components (follow the prompts).

Here's the Grasshopper definition and Rhino model with the SDNF property table saved in it: Rhino Model Grasshopper Definition
You can vary the inputs of the geodesic dome if you wish, and you can parametrically modify the beam profile using the property table accessible from the second button on the SDNF toolbar (use the spanner button to update the profile with that selected in the pull down menus).  When happy, bake the Steel Beams into the Rhino document to activate them (they are virtual whilst in preview mode) in the SDNF database.  If you alter the grasshopper definition and re-bake, the plug-in will try to detect the previous baked elements and delete/replace them.

If you click on the Export SDNF button, you are prompted to generate SDNF ver2 file (I believe Digital Project uses this format) or SDNF ver3 by default.  Then try importing the files into SDNF accepting software.

Note, there are issues to do with different software librarys labelling profiles with different formats, and you can try altering the catalogue definition.  It's possible a means of a mapping table facility may need to be provided in the near future.  If you can give feedback on what does work and what doesn't, I'm most grateful.

Some more examples coming soon, Here's my exports if you wish to try the generated files without the plug-in:

SDNF ver 2    SDNF ver 3

Sunday, 27 June 2010

ssiRhinoIFC Progress - Industry Foundation Class 2x3 - Import and Export

The first public alpha for ssiRhinoIFC is available for downloading at  This allows importing, and some introductory exporting of IFC (Industry Foundation Class) version 2x3 for buildings and structure.

Whilst I'm the first to acknowledge there's a lot of work to be done to cover this comprehensive neutral BIM format, the basis of a very useful tool is already evident.  Working in a consultancy design office, we were often sent primitive DXF/DWG mesh models from steel detailers using software such as Tekla.  More intelligent models such as IFC will provide greater advantages for coordination and checking.

And IFC should also provide a very useful means of import/export to programs such as REVIT. An automated workflow from Grasshopper generation to external BIM software will reduce replicating work and coordination.

Development priority will be given to problems, suggestions, observations and ideas raised by users, so please download the plug-in, get the trial license and start exchanging IFC data with your other programs.

Start your testing by importing some of the example models I've been using, and contain a few model files to test.

And see if the IFC file exported from this Rhino model is compatible with IFC viewers and modifying software you use.  You need StructDrawRhino installed, use the command ssiIFCExport and select the beam centrelines.  You can move the locaction of the curves, apply different properties in the SDR property table etc.

A lot more to come on this in the near future, stay tuned....

Friday, 4 June 2010

David Rutten & Friends (AA London Lecture)

In front of a packed house, David Rutten, Daniel Piker and myself presented our recent work and developments for generative modelling utilizing Grasshopper3d.

You can view the presentation online at

David presented on his latest feature of Grasshopper, Galapagos (a genetic algorithm based solver).  It's fantastic how David can provide such an amazing user interface to the powerful tools he programs (When I was assisting Fred with the Genetic Algorithm solver for Naples, we had no time to program this visual feedback).

Daniel's work with Physics expressed in Kangaroo is amazing, and very popular.  It's going to be very exciting to see how designers utilize this into their design process.

And I presented on the Geometry Gym plug-ins featuring computation geometric design, and the existing and soon to be released BIM aspects of my tools.  It is becoming more and more apparent that if we have the power to generate many options rapidly, we need to ensure our evaluation tools (Such as structural analysis and other consultant design software) needs to be able to generated and evaluated quickly.  And there are massive benefits to minimizing coordination and duplicated model generation if we can transfer a Grasshopper model into BIM programs such as Tekla or REVIT (amongst many).  The Geometry Gym SDNF,  IFC (Industry Foundation Class) and CIS/2 tools are progressing rapidly.

Sunday, 16 May 2010

Mesh Inflation in Grasshopper (ETFE)

Here's the first effort at a solver to inflate meshes (controlled by pressure) in Grasshopper.

More examples and improvements to come (note the double sided pillow is not enabled yet).

Grasshopper definition : inflateMesh

And a second definition to demonstrate applying restraints and inflating solids or polysurfaces:

Grasshopper definition: boxInflation

Sunday, 2 May 2010

2010 SEI Student Structural Design Competition

Congratulations to Ben Sitler on being awarded 2nd place in the 2010 SEI Student Structural Design Competition.

Ben entered the competition on his own, against teams from around the US.  He found the efficient work flow gained from using the Geometry Gym Rhino plug-ins gave him an advantage against teams.

Ben has been kind enough to permit me to show his Gridshell design for Jadwin Hall.  These images are taken from his Thesis, Sitler, Ben. “Integrated Digital Design to Construction Workflow: from a structural engineer’s perspective.” Thesis, Princeton University, Princeton, NJ, 2010. Print.

Monday, 19 April 2010

Grasshopper Gallery

I thought I'd post some images of some great work being posted on the Grasshopper NING.
Unfortunately most commercial projects are kept in house, but it's nice to see these results in the public domain.

Primarily StructDrawRhino has been used in Grasshopper, in partnership with other plug-ins for some.  If you'd like to have your own work displayed, let me know and I'll add it in.

Wieland Schmidt

Chris E (work in progress)

Ivan Kiryakov (Refer blog post Going Green or Ivan's Gallery)

More to come....

Friday, 16 April 2010

Simply Rhino & AA Grasshopper Presentation Event

Simply Rhino & Architectural Association Grasshopper Presentation Event

David Rutten & Friends
to present Grasshopper
at Architectural Association London

12th May 2010 from 1pm to 3pm

Details here:

Parametric Structure Models in Grasshopper

The first Geometry Gym plug-in for Grasshopper with Structural model Interaction has just been uploaded.
http:\\  Versions for GSA, Strand7/Straus7 and Sofistik are available, other modelling interaction will soon follow (ie  SAP, SDNF, Robot etc).  If you want to influence the priority list for release, send me an email with which version you'd like to use.

So, here's a screen capture demonstrating the use of the plug-in, and sending the parametric model out of Rhino into GSA (similar for Strand7, Sofistik and others).

And to try this for yourself, here's the sample models shown and a revisit of the Gherkin.

First Grasshopper Definition to generate structural beams :          GSA Robot SAP2000 Sofistik Strand7

A simplified version of Newcastle Millennium bridge.  I haven't had a chance to add a slider to rotate it yet :-(

Associated Rhino model with properties :  GatesHead Rhino Model
Grasshoppper Definition : GSA Robot SAP2000 Sofistik  Strand7

Revisiting the mini-Gherkin.  Note I'm sure if I get a chance to study Grasshopper Trees and Branches this definition could be simplified a bit.

Associated Rhino model with properties :  Gherkin Rhino Model
Grasshopper Definition : GSA Robot SAP2000 Sofistik Strand7

Saturday, 10 April 2010

Some Green

Ivan Kiryakov has produced some really stunning work with Grasshopper, and it's nice to see him using BullAnt to produce some of these forms and shapes.  I'm referencing some of the photos into this blog entry, but you should check out his album at