Sunday, 27 June 2010

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

The first public alpha for ssiRhinoIFC is available for downloading at http://www.geometrygym.com/downloads  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, http://bimwiki.com/@api/deki/files/79/=NIST_IFC_Sample.zip and http://bimwiki.com/@api/deki/files/80/=Sample_IFC_files.zip 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 http://www.aaschool.ac.uk/VIDEO/lecture.php?ID=1212

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: http://www.simplyrhino.co.uk/about/AA.html

Parametric Structure Models in Grasshopper

The first Geometry Gym plug-in for Grasshopper with Structural model Interaction has just been uploaded.
http:\\www.geometrygym.com/downloads  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 http://www.grasshopper3d.com/photo/album/show?id=2985220:Album:56274



Genetic Algorithm - Naples Metro Station



http://www.bdonline.co.uk/story.asp?sectioncode=453&storycode=3161354&channel=783&c=2#ixzz0khJ86uns
BdOnline has published an article on a project I was involved with assisting Fred Labbe at Expedition.

The computing power required to calculate the generations of solutions was significant, and the project always attracts debate and interest when presented/discussed with other designers.

You can find a pdf of Fred's presentation in the project info at the right hand of the project page at http://www.expedition.uk.com/index.php?pid=141

Thursday, 25 March 2010

Force Density Relaxing Roofs

Arthur Mamou-Mani posted on the Grasshopper forum (http://www.grasshopper3d.com/forum/topics/tensile-membrane?commentId=2985220:Comment:54158 ) about tensile membranes and Rhino plug-ins that can compute shapes and forms.

I thought the problem looked interesting, and thought I'd see what I could achieve with the new mesh minimal surface tools I've been improving in StructDrawRhino.

You need the latest version of BullAnt (http://www.geometrygym.com/downloads ) and a license file, but you can try this for yourself.
Note, if you altering the inputs such as the control curves, I'd recommend disabling the Grasshopper meshing component temporarily, and then reconnecting it when you want to recompute.

Rhino Model
Grasshopper Definition             

What you find in the basic definition, is that the isolated mesh restraint points produce a very pointed roof, in reality we wish to strength the links along the ridge line.

Here's a revised definition that produces a more desirable result
Strengthened Ridge Line Grasshopper Definition 

Note that the image shows the mesh baked, which helps identify the isocurves or underlying mesh.  Toggling the preview update input can give some insight into how the algorithm is working, at the expense of a slower result.

Sunday, 21 March 2010

Costa Minimal Surface

Force Density (Using the Mesh Vertex Repel command)


Grasshopper Definition     

This definition calls on the ggForceDensity Relax functionality to compute a minimal surface discovered by Costa.  This command doesn't compute minimal surfaces for all mesh, but at least seems to give a reasonable impression for Costa Minimal Surface.

Here's a generic model to also test it.

Grasshopper Definition     

Note, that unless you have a quick computer (or a lot of patience), it's probably worth disconnecting at the Mesh component (or disabling) and previewing the surface if you wish to adjust the sliders for variations.

Arc Poly Curve Extrusion boundary Minimal Surface

Grasshopper Definition

There is also capability to restrain mesh vertex to nominated points, curves and surfaces.  Some examples demonstrating this will be posted soon.

Tuesday, 16 March 2010

Cell Filleting a Curve Network



Files :
Rhino Model  
Grasshopper Model   -  Previous  Grasshopper Model


Files : 

Note that you will need an approved, valid license file for these commands to work.  The BullAnt plug-in can be downloaded from http://www.geometrygym.com/downloads 

If you find any unexpected results in your own models, please let me know and I will review them.

Monday, 8 March 2010

BullAnt GrassHopper Geodesic Dome


This example file demonstrates calling on the BullAnt Geodesic dome function from within Grasshopper, as well as sweeping structural profiles including member orientation. Try for yourself, but you'll need a valid license (or free trial license) file to do so.
Previous Versions

Monday, 22 February 2010

BullAnt utilised in Grasshopper (2012 Main Stadium)

Try for yourself accessing catalogue sections and user defined library of profile curves to be swept parametrically in Grasshopper.

For present, the function is accessed as a c# or vb.net component, and links to a profile section table embedded into a parent Rhino document.  If you update a section profile, you must instruct Grasshopper to recalculate (unless a user modification triggers a recalculation).   There's lot's of planned ideas and improvements to make to this, it's just the beginning (Options for not generating member cap surfaces, root radius fillets etc).  If you have any ideas or suggestions, please let me know and I'll try to implement ASAP.  This includes requests for any specific aspects included in the BullAnt plug-in or SSI model exchanging tools.

Ensure you have downloaded the latest version of the BullAnt plugin from http://www.geometrygym.com/downloads for this to work, and you must have a valid approved license file (free trial) installed on your computer.



Grasshopper Model File:  100406 2012 main stadium.gh 
Rhino Parent Model: 2012 Stadium Rhino Model for GH definition

Monday, 8 February 2010

Cape Town Rhino Users Group Meeting



Simply Rhino SA is hosting another Rhino User Group meeting in Cape Town.  Jon Mirtschin of Geometry Gym Ltd. will present on utilising Rhino3d for geometrical modelling primarily for architecture and structure.  Techniques used to model projects such as the 2012 Olympic Velodrome, Infinity Footbridge and Beijing Watercube will be demonstrated. Innovative tools for geometric modelling including geodesic domes, minimal surfaces, mesh relaxing, tessellation and parametric steel frame modelling will also be featured.


If you are interested in this presentation but unable to attend at this time, or are located in another part of South Africa, please contact Jon at jonm@geometrygym.com to discuss the possibility of meeting.


Monday, 4 January 2010

Structure Analysis Model from Curves



Try for yourself the routines to generate structure analysis model from curves and points in Rhino.
Rhino Model from here.

Tessellation Work in Progress



More on this coming soon...
A demonstration of the work in progress for the tessellation commands in the Rhino3d plug-in.  Note I have edited out some pauses waiting for computation to complete.  The more computing power you have, the better this will perform so please be patient.  Rhino v5 recommended.  More performance improvements coming soon and more tessellations.



Thursday, 24 December 2009

BullAnt Contouring Colors



This screen capture quickly demonstrates the BullAnt command ggContour to apply a spectrum color range to subLayers of active layer. By typing the command, you can nominate to apply it to Rhino objects in a model (based on sequence of creation/modification or selection depending on how you pick the objects). Download the plug-in from http://www.geometrygym.com

Wednesday, 23 December 2009

Orienting Structure to Rhino Surfaces

Here's an example/tutorial for you to follow to use the plug-in to calculate member orientation angles based on the defining surface normal or nearest point.



To try this yourself, here is the Rhino file: Rhino Ellipse



Now the same basic procedure will work presently with 3 analysis packages, GSA, Sofistik (shown) and SAP2000. Strand7 and others coming shortly.
Here's the analysis models:
GSA
Sofistik (Note LOCA 0 is assumed for the moment.)
SAP2000

More instructions coming soon....

Monday, 21 December 2009

Controlling GSA from a Rhino Plug-in

There's been a few requests for help with controlling Ansys from Grasshopper or Rhino on the Rhino newsgroup or Grasshopper forum lately, and in my discussions with them, it's generally been agreed that for a skeletal frame, it's likely to be easier and quicker to use a frame analysis program like GSA to do the exercise. (Possibly influenced by my limited experience with Ansys, which is an amazingly capable but complex analysis program).

GSA have a free version for any academics or students, refer http://www.oasys-software.com/information/universities/educational_licences.shtml

And to assist with getting started, I created a small Rhino Plug-in project that generates a GSA model from scratch and runs an analysis.

Download source code : rhinoControlGSA.zip

If you have GSA running, you can supervise and interact with the program after execution. If GSA is not running, it will run as a background process.

If you're looking for the GWA data on the rhino model objects created using the SSI tools, try using the command GetUserText (or the user string attributes in the Rhino SDK). I'll improve the event watcher shortly so that GWA node coordinates are updated when a node is moved.

This is just the start of interaction with Rhino, there's another level of using the Plug-in code as a library. Feel free to get in touch if you wish to learn more.

Tuesday, 1 December 2009

Weaire-Phelan intersecting a surface



I responded to a request for help on the Grasshopper forum with regards to generating Weire-Phelan polygons intersecting with a surface. I've recorded the screen capture below showing the difference as you halve the size of the polygons which I think is quite interesting. If you wish to try for yourself, the Rhino file can also be downloaded below, could be interesting to see how other shapes look (and to generate the intersecting curves using the command in the BullAnt plug-in)


Associated Rhino File

Sunday, 1 November 2009

British Museum Great Court Roof using StructDrawRhino

Another stunning, innovative structure that has inspired similar projects since.  It's a favorite space of mine, especially on a bright sunny day when the shadows and reflections are mesmerising.



Here's some papers, blog posts and links I found to determine how Happolds and Fosters designed this amazing roof.

http://opus.bath.ac.uk/14111/1/ChrisDeakin2001.pdf
http://www.enhsa.net/downloads/publi/con2004/102_Williams.pdf
http://people.bath.ac.uk/abscjkw/

So, now you can try to do something similar yourself using the structural plug-ins for Rhino.  My routines and commands don't follow exactly the description from the paper, but they allow something similar to be created.



To try this for yourself, the input Rhino file can be downloaded from here

I'm currently coding up algorithms for more powerful force density routines to include dynamic relaxation, but in the interim you can try the sdrMeshRepelVertex command to relax a rigid mesh outline with discontinuitys at nodes/vertices for continuing edges.  I used the sdrZigZagCurves command to divide the initial radial lines to generate the starting Grid.

From the starting flat grid, we can use the plug-in command sdrMeshProjectVerts to project the mesh vertices onto the mathematical surface.

Then we start the mesh relaxing process.  The command  sdrMeshRepelVerts uses force density to repel mesh vertex away from their neighbours.  Naked/Free edges/vertex will be restrained.  The more loops or iterations you allow, the better the result you will get.  Note that you can nominate a target surface that will vertically project the vertex back onto the surface (if you don't, the mesh will naturally flatten).  I found the best result was by nominating the balance force option for a number of iterations, and then to run a few loops of the target equal length for edges.

You can then extract the medge edges to curves using the sdrMeshDupEdges command.  By applying a structural profile (I assumed a much larger hollow profile than that used), the plug-in will automatically sweep the centreline curves.



There is also a number of routines in development for form finding and finding minimal surfaces.  Blog posts with worked examples will shortly follow, but if you look at sdrMinShapeMesh function you can try it for your self.  The other sdrMesh.... routines allow manipulation of mesh generated in Rhino to transform it to arrangements more appropriate for analysis/solving.

If you've any requests, ideas or suggestions for these routines (or need more help or other examples), don't hesitate to get in touch.

Monday, 12 October 2009

Infinity Bridge - Supreme Award for Structural Engineering Excellence




We're so thrilled at Expedition, for structural engineering this award excels amongst the best for peer recognition for design excellence.  Infinity Bridge won the 2009 IStructE Supreme Award for Structural Engineering Excellence, to crown it's recognition as the 2009 IStructE Award for Pedestrian Bridges.

Infinity Bridge was competing against over 100 global entries in 11 categories from stadia to public buildings to bridges to private houses.

And this project is a supreme example of the Structural Drawing Tools being developed for Rhino.  The arches of the bridge were form found to minimize flexural stress whilst the bridge is free standing, so no pure mathematical curves define the girder set out.  Setting out this structure in traditional 2d methods would have been painstaking and inefficient.  Current 3d structure modelling software appeared to lack key features to easily generate and manipulate this free flowing curved structure.  So we innovated and generated our own tools for our Rhino3D model, that was the principal means of defining the key bridge geometry (which tapered along it's length as well as in section).

Effectively an early version of the current plug-ins, we created tools where a primary spreadsheet generated model creation for both Rhino and Structural Analysis in GSA, ensuring coordination between assessment model and documented structure model.

Thursday, 1 October 2009

Extruding along Rhino Curves



A question raised on the Grasshopper forum for examples/instructions for extruding structural profiles along grasshopper curves prompted me to post a screen capture to you-tube demonstrating the capabilities of the Structural Drawing plug-in.

I thought I'd post the hypar grasshopper file here for those wishing to test it for themselves.

Note that it demonstrates how properties can now be assigned to layers, and that any curve added or modified on that layer will have an updated sweep. For some reason the event watcher doesn't presently identify when the grasshopper bake command finishes, hopefully I'll have this resolved soon.

Monday, 21 September 2009

Oasys GSA v8.4

Some GSA plug-in users might have been testing Oasys GSA v8.4 beta for some time, others might have downloaded the public release last week (http://www.oasys-software.com/products/structural/gsa/downloads.shtml ) and others might do so shortly.

If you are in any of these groups, you'll hopefully be happy to hear that the Rhino plug-in can already exchange structural data happily with both versions (note there were significant GWA changes I've dealt with). And GSA v8.4 brings some neat new graphic exchange in relation to object colours etc. Always check the wiki (http://ssi.wikidot.com/downloads ) for the latest version.

There's still work to be done, but in progress it's already up and running. Note if you need to update v8.4 model coordinates, you can right click on the export node button and opt for v8.4 format.



In about a week when I'll look to switch the default plug-in to be v8.4 compatible, but you'll still be able to use v8.3 if you're not upgrading. You can edit the export button (by shift-right click) and change the text to make left click export to v8.4

Thursday, 10 September 2009

3D Printing and Rapid Prototyping

David Allgayer has posted an interesting article to the Expedition Blog. 3D printing or rapid prototyping from Structural Analysis models was one of the early principles of writing the structural plug-ins for Rhino (back in the day when it was in Rhinoscript).

I've heard (and repeated) that the day will come when you won't go to a hardware store to buy a replacement shower hook, if one breaks you'll simply load the model on your computer and print a new one to hang on the rod.

The Economist Technology Quarterly Review article can be found here

Monday, 24 August 2009

BullAnt takes on the WaterCube



So here's my take on to model the Watercube, a stunning stadium if you're ever lucky enough to see it in person.

Download the basic Rhino file from here.

It would have been brilliant to work on a structure such as this. The design team included Arup, PTW Architects, CSCEC and CCDI



There's reports on how the geometry was derived here and here that form the basis of my demonstration.

Thursday, 20 August 2009

Interpreting Structural Models with Curved and Tapered Members

The theory and formulation behind structural analysis algorithms and solvers are based on theory of straight elements with constant cross-section.



This means that models representing structural elements curved or tapered in nature are "meshed" or broken into straight segments with a representative cross section property. To my knowledge, any analysis program featuring "curved or tapered members" is simply automating this process behind the scenes.



This results in a side effect that when exporting the structural model to CAD format, that this approximation although fine for the structural assessment, results in jagged and problematic geometry when sharing the model with other designers/clients that don't appreciate this process. (Ie, remarks such as "I like that design but I'd like it without the steps"). For curved elements the segments result in underlap/overlap of the cross section, which is a weak spot if you wished to directly 3d print/prototype the geometry. To date this has generally needed manual remodelling of the structure.

Whilst I believe the better process is to model the curved/tapered structure in CAD and then derive your structural analysis model from this, it's possible to automatically interpret the segmented data (although if precise results are required, you should carefully check the interpretation).

The SSI Rhino plug-in will check each section name for "tagged" descriptions that instruct the plug-in how to "interpret" that cross section. This post looks at the -rhl tag that instructs the plug-in to loft the cross sections.

Download this GWA file representing the summit of the Eiffel tower Download.



Now to create the Mast, simply type -rhl in beam properties 20,21 and 22. The plugin will act on the loft instruction and "join" any sequential elements that have "the same property (or 1 section property either side." The plug-in will fit a curve through the the sequential element nodes, and then orient the cross section curve for each element on this curve at the point closest to the mid-point of the element.
If properties differ by 1 at the ends of the element, the cross-section curve is extrapolated at the start and end of the curve. By adding the "-rhl" tag to property 13, the curved support element for the mast will also be lofted.




Try importing the model into Rhino before and after making the changes, and note the difference. If you haven't had it work as per these images, try downloading this file and check what is different in the section properties. Download

Note that the default iso-curves shown for the nurbs surface are the cross-section shape determined location and orientation.

Monday, 17 August 2009

User Defined Profile Libraries

I've just uploaded a new version of the Structural Drawing Plug-in with plenty of improvements. I'm preparing to post a detailed tutorial showing how these new tools could be implemented to model the Beijing Water Cube, so watch this space.

The plug-in can now use profile libraries defined by the user. These are simply created by creating (or copying) rhino files into the plug-in sub-folder at C:\Documents and Settings\USER\Application Data\GeometryGym\UserProfiles\ or C:\Users\USER\Application Data\GeometryGym\UserProfiles\  (Note folder may be hidden, and is now reported on the Manage Tab of the main StructDrawRhino dialog). There's an example file there showing some numbers and letters as example profiles (you'll find them now listed in the selection drop down boxes). You can create as many collections of profiles as you like, and they will be grouped by filename (First Selection Box), layer name (Second Selection Box) and object name (Third selection box). The profiles must be located in the model YZ plane, and the origin is used as the default insertion point. A curve can be used to define a simple singular profile, or if it has voids, add it as a planar surface.



The files should allow easily to share and collate your profiles, let me know if you have any suggestions for improvements. Note that if you later rename either the file, layer or object, it will have to be reassigned. Another quick tip, the profiles are now assigned by dragging the first button over your model view (instead of clicking the button as per the previous release).

Wednesday, 29 July 2009

Generating Structure in Rhino

Here's the first public version and demonstration applying structure to curves in Rhino using the Rhino BullAnt plug-in. More to follow shortly.



Movie file for those without access to YouTube: AVI File

And here's the files to try yourself.
Note that hollow sections won't be hollow if centreline isn't straight (for the moment), and element orientation will be incorporated soon.

Mini-Gherkin Grasshopper Rhino File for Mini-Gherkin