Tuesday, 25 November 2014

Publishing Geometry Gym Samples to GitHub

I've been asked many times about a manual for the Geometry Gym plugins, particularly Grasshopper to Revit.  I've hesitated a few times.  The plugins are still evolving fairly rapidly and I've been reluctant to spend time on something that might quickly be irrelevant.

I also find this post by David quite relevant.  And there's also the question about what format help documentation should be in and how it could be contributed to by a wider user group.

My opinion has been that the best format for user guidance should be example scripts (which is why I've populated my blog with lots of short examples.  But this can be hard to search and find, and maintaining lots of files takes some effort.

I've recently been using Git (and in particular GitHub) more and more when working with others on projects (and for my own code management).  So I'm going to try hosting an example script of the Grasshopper to Revit functionality there.

If I save it as a .ghx (which is xml) that means it can be versioned and tracked, branched and a wider group of users can participate in it (even if it's just subscribing to updates).  I do intend to also note upcoming features etc in the definitions.

I've posted it here.
If you're not so familiar with GIT, then using the github windows application should make things much easier.

Initially it's just Grasshopper to Revit, but I do plan to add other examples such as the various structural analysis software.  I look forward to hearing feedback and suggestions from those that try it.

Thursday, 13 November 2014

Karamba to GSA and Robot

I've advanced on the first version of the Karamba exporter, and been testing it with Oasys GSA and Autodesk Robot (which were the most popular early requests).  If you'd like to test this with other software, let me know.

Here's an explanation and demonstration.

And here's some Karamba files to test it on.




I'm still to implement releases and other attributes, but if you need them please let me know and I'll prioritize the development of them.

Tuesday, 11 November 2014

Karamba Exporter to GSA, Robot, SAP2000, Sofistik etc

I'm seeking out Karamba users (and potential users) for a new workflow for this grasshopper plugin.  For anyone that doesn't know Karamba, it's a structural analysis plugin for Grasshopper.  GeometryGym has developed various plugins to allow generation of structural analysis data within Grasshopper, but then has the overhead of having to export the data out of Grasshopper to the external software, and then import back the results.

Karamba works as a solver entirely within Grasshopper, and should perform faster as a result.  But more traditional software has advantages of being proven and trusted, and often project requirements mandate particular software or certifications for detailed design.  At present, many users are generating the Karamba model for preliminary design, but then rebuilding the model using Geometry Gym equivalent components to export the model out for refined analysis or advanced assessment.

I've been discussing with the Karamba developer Clemens (and advancing on) a utility to extract the Karamba Structural Analysis model so that it could be verified or advanced in alternative commercial structural analysis software.  I know that Karamba can presently export to RSTAB, but I'm working on enabling this further for a wider range of software.  The exporter for Karamba would save users on generating, maintaining and coordinating multiple components if desired to use the data downstream.
At least initially the primary options are the software that I have developed plugins for.  This includes Oasys GSA, Autodesk Robot, SAP2000, Sofistik, Spacegass, Strand7/Straus7 and hopefully shortly SCIA.  The way this exporter would work also means that any structural analysis software recognizing the structural analysis aspects of IFC could also be utilized.

This would permit verification of the model results, and often projects have mandates on using specific (often certified) software for detailed design calculations.
If you're interested in participating in the early testing and advancing of this feature, please get in touch.

Also refer to this forum post for discussion and details.


Wednesday, 5 November 2014

Making Grasshopper to Revit Easier

I was very fortunate last week to be able to attend the McNeel event for Rhino Resellers and Developers.  It was an amazing event and fantastic to be able to meet in person so many of the Rhino3d community in person for the first time.  It was also great to see many others that I have met before again.  I'd like to publically thank McNeel Europe for arranging such a wonderful meeting, and can only hope it happens again in the near future.

I took the opportunity during this very brief venture back to Europe to meet with a couple of clients (apologies to those that I missed) and the feedback had one common thread.  The IFC functionality for OpenBIM export from Grasshopper has great functionality, but was confusing to new (and experienced) users as to how to put together the components.

Given that the vast majority of the users are transferring Grasshopper to Revit, I've decided to develop a new front end for the plugin using Revit phrases, terms, conventions and relationships.  This should make it a lot more intuitive for new and experienced users alike.  In the back, it's still doing the same as the existing components.  It's just I can condense 2 or 3 IFC components into 1 specific revit version, and a lot of the "optional" or additional features of IFC that don't really relate to Revit can be masked.

Here's a screen capture of the initial components I've got working in the past 3 days.  A lot more should quickly follow.

If you'd like to be involved in the early testing, or request particular functionality, then please get in touch.  Any feedback welcome.  Initially these components will be included into the existing IFC plugin, but I plan to spin it out into it's own file some time soon.

It should be noted that the IFC generated can still potentially be used with other software (although I advise to use IFC4 for it's new features and this has barely been implemented by anyone).  I will also consider other application specific components if there is sufficient demand.

One other strong theme of the meeting was Rhino for Mac, which will be available "soon".  After the session by Steve Baer about developing plugins for Rhino Mac, we sat and tested with a compiled version of the IFC importer.  It loaded and the commands were available (but not quite executing with some user input not collected) but we can be confident it might be something users can start testing very "soon" (even if not officially supported initially).

Friday, 17 October 2014

Getting Geometry into Revit

I've been having a few requests recently about getting Rhino/Grasshopper geometry into Revit, and haven't really posted many examples of what is (and isn't) possible so thought I'd add some new examples to the blog.

Some of this functionality has been available a while, but I've refined it recently so update rhino and revit plugins from http://www.geometrygym.com/downloads

With the release of 2015, Revit has enabled some more generic solid generating functionality.
At the moment it enables plane faceted objects (with straight edges) and extrusions.  I've been putting forward requests for further improvements (including masking of internal edges with co-planar faces adjacent) and if more users do so, the faster we'll see this materialize.

Grasshopper is a fantastic tool for projects such as sports stadia, so here's a slightly simplistic example of generating some seating tiers.  You can use the IfcFacetedBrep shape representation with a categorization of an IfcSlab object (as a floor).  Here's an image of the resulting Revit import.  Note that it's not really possible to edit the object downstream (although I am working on improvements for updating the model).

It would also be really great to be able to fix walls to the underside of the objects.  To facilitate the ability to do something similar, it is possible to generate a revit extruded roof (subject to various constraints on what revit can do with this).  You'll find an example of this on the inner ledge.  Just note when using a stepped shape, you need to be careful that revit doesn't have thick roof types loaded in the project/template (but you need at least one).  Revit has a bug that crashes if the roof is generated with a proportionally thick type.  You can test with this blank project (download from here).  Here's the Grasshopper file (Rhino document units should be mm) and here's the resulting IFC file.

So this works for faceted objects with plane faces and straight edges.  If your shapes don't meet this criteria, one of the few options remaining for the time being is to import a SAT (or DWG) into a generic model family.  My tools can automate this process, allowing automation of categorization and assignment of parameters/properties.

Here's an example file to demonstrate this.  Rhino  Grasshopper (Grasshopper model with new Revit Components)  Note you can right click on the ggBake component and set the .SAT generation of IfcRepresentationMaps.  Also make sure you're using IFC4 if nurbs are applicable.  An IfcRepresentationMap is similar to a block in Rhino or a family symbol in Revit, ie a master geometry that is defined in the project/model as transformed instances.  Here's the resulting IFC file.

If you have suggestions for improvements, please let me know (enabling more categorization is on my todo list).  The more that also contact Autodesk asking for more and more functionality to generate geometric objects the more likely we'll see earlier implementations of improvements.

Wednesday, 8 October 2014

Mediaconstruct event in Paris

I'm heading back to Europe for the 2014 Rhino Meeting later this month, and as part of this brief trip will visit Paris.

Mediaconstruct and RhinoForYou have arranged for a presentation of the OpenBIM workflows (including Rhino, Grasshopper, Revit, Tekla, Navisworks, Archicad and various structural analysis software etc etc) that I have been developing.

It's going to be held Thursday the 23rd October at 9:30am at Salle Victor Baltard, CSTB, 4 avenue du Recteur Poincar√©, 75016 Paris   (Map)

More details here. http://www.rhino4you.com/1/jon_mirtschin_a_paris_1744320.html

If you're interested in IFC4 or Grasshopper BIM, would be great to see you there.

Wednesday, 17 September 2014

Revit Shaft Openings

I was reminded by a user request today of a feature I added to the Grasshopper IFC plugin to generate shaft openings in Revit.

Note this is one of the few areas where IFC doesn't really define an equivalent to Revit, where an opening can cut any object that intersects it's location.  So the IFC this generates is not compliant with the schema, and won't be recognized by any other IFC software other than my revit importer.

Here's a sample file and image to demonstrate the use of it.

Friday, 22 August 2014

Parametric IFC

This example is a little crude, but hopefully it starts to demonstrate how powerful IFC might be if it was implemented to it's existing capability.

Here's a video demonstration which was part of my presentation at the Revit Technology Conference earlier in the year in Melbourne.  Sorry for the audio quality.  It demonstrates round tripping a revit family through IFC, preserving types and dimensional constraints.  At this point in time I've only implemented specific attributes for this prototype, but certainly I am keen to advance this much further if the demand is there.

The potential is huge.  Revit content could be converted intelligently into content for ArchiCAD, Digital Project, AECOSIM etc etc and vice versa.  Content could potentially be downgraded for specific versions of software.

If you've suggestions or feedback, I look forward to hearing it.  You can download the Revit plugin from http://www.geometrygym.com/downloads  Here's the Revit Family and resulting IFC file.

Friday, 18 July 2014

Building Smart International Award

Any GeomGym users out there using the IFC tools (and of course anyone using OpenBIM) are encouraged to enter into this award scheme from Building Smart International.
More details at http://www.buildingsmart.org/bsi-award-2014

Thursday, 10 April 2014

gbXML for Rhino/Grasshopper

It's nice to be able to announce a new plugin I've been developing for Rhino v5 and Grasshopper to import/export Green Building XML ( gbXML) files.  Lots of aspects to implement and improve on, but I've advanced to a state where more public feedback and suggestions will help inform and shape this tool.

In rhino, the functionality is initially to import gbXML.  The identified data is arranged into a hierarchical layer with color contouring by zones and construction types.  There's also a tree viewer to inspect the gbXML entities and relationships.  If you select a node in the tree viewer, the associated rhino object will be selected.  Try rhino commands ggImportgbXML and gggbXMLTreeView

In Grasshopper, there are components to generate gbXML data in accordance with the schema.  Like the IFC plugin, this can be a bit intimidating to start, but should quite quickly become familiar.  To write out to file, for this plugin you select the gbXML generating component and bake this with conventional Grasshopper Bake icon.  Here's a sample grasshopper file generating some walls and openings.

As well as generating gbXML data, it is possible to interrogate, amend (and modify) existing gbXML files generated from other software.  The modifying components are hidden at this stage.  Grasshopper primarily duplicates data (with appropriate modifications) rather than modifying existing.  This makes data expiry (such as undo) quite difficult to implement which I still need to consider.  If you wish to access let me know.  Sample grasshopper file.

Thanks to Michal Dengusiak who has been instrumental in testing (and shaping) the tools thus far.  He's been testing the resulting data in TAS, who have also been generous in validating the generated gbXML and advising on technical aspects.  I look forward to getting feedback from other users interested in this.

Sunday, 9 February 2014

BIMDayOut IFC4: The Shape of Things to Come

The BIM Day Out in Perth last year was a fantastic event, attracting presenters and attendees of a wide spectrum within the AEC industry.

Having been caught in the rain and cold (not really expected in Perth) earlier that week, my voice nearly disappeared (apologies, but the audio captured isn't too bad).

The presentation above primarily demonstrates the utilization of OpenBIM IFC to turn Grasshopper into BIM authoring software (and then receiving and utilizing the models in other software such as Revit or Tekla).

It aims to motivate software users (of all BIM enabled software) to demand more of the IFC implementation of their software, and hopefully shows a capability of IFC to convey intelligent models capable to use downstream in other software.

Congratulations and thanks to BIM Day Out committee for their work in arranging BIM Day Out, looking forward to many more of these events in the near future.

Monday, 18 November 2013

IFC exchange of Curtain Panels

An area that's been on the back burner for longer than I'd like, and that is the exchange of curtain panel plates from Grasshopper to Revit (etc etc).  Some potential clients evaluating the tools for this purpose led me to implementing some ideas and strategies for this.

Note that this isn't means to rationalize or divide surfaces into panels (there are other plugins such as paneling tools for this) but as a means to generate the curtain panel plates in Revit having already conducted the paneling process.

Update to the latest plugins for Rhino and Revit IFC from http://www.geometrygym.com/downloads to test these.

I've implemented a means to represent the panels as surface objects (not extruded to thickness).  If the perimeter is planar, and has 3, 4 or 5 edges linear edges, then the Revit plugin will initiate an adaptive component family that generates an equivalent object.  Material needs to be manually altered in the family if appropriate.

Here's a sample GH definition creating a random array of planar panels and here's the generated IFC file.

I've also been looking at means to generate non-planar panels.  If the panel is an loft from one end curve to the other, then I've implemented a means to again generate a revit equivalent.

Here's a sample gh definition and here's the resulting IFC file.

I'm also investigating a means to create a non-planar panel with 5 edges.  I'd also really like to able to define master "families" of the same shape panels, and then propogate instances in Revit.  But the Revit API seems to be lacking fairly fundamental functionality to do this.

If you've requests, suggestions or questions, don't hesitate to get in touch.

Thursday, 17 October 2013

Navisworks 4D IFC

At the BIMDayOut event earlier this year (great event, hope it runs again next year) I presented some 4D IFC workflows from Grasshopper to Constructivity (still the only other software I know of reading and writing IFC4).  It was really encouraging to be able to show a virtual construction sequence in Constructivity but I found the software had issues with large scale geometry and strict requirements for the way data is defined.

What I've been working on now is an IFC import enhancement for Navisworks Manage 2014.

At this point in time, you can't create products in Navisworks from the API, but if you import the IFC using the native importer (IFC2x3 only), then you can run my IFC enhancer (plugin can be downloaded from http://www.geometrygym.com/downloads ) which can generate the timeliner tasks and identify the ifc products by their unique identifiers.

Grasshopper Definition  IFC file

I hope to improve further the sequencing calculations and add cost data.  If you have requests or suggestions, let me know.  I will also consider developing a similar utility for VICO or other software if the demand is there.

Thursday, 10 October 2013


We were lucky to return back to London recently for my brother's wedding.  Being August and summer, it was a great time for a wedding but not the ideal time to try and meet lots of existing and potential users of the Geometry Gym tools.  I did manage a few meetings and Simply Rhino organized 4 computer lab sessions for those interested to not only view but try hands on application of the tools (This worked quite well and is something I'll look to repeat if I'm visiting other cities).

I was asked a few times about model exchange Grasshopper to AECOsim and it's something I've made a start on testing.  As per all BIM software, they do have IFC coordination import/export, but I've made a start on using the ISM as a basis of generating structural model data from IFC (grasshopper generated or not) into AECOsim and various other software interacting with ISM.

Here's some prototype models.  Curved members are coming quite well into AECOsim.
I tried my klein building slabs and they preview well in ISM viewer, but causes some errors when importing the ISM into AECOsim (Bentley will hopefully advise soon).

If you're interested in testing this work flow, please get in touch.  Initially this will be structural based but I am keen to enable other disciplines and data if demand is there (ISM has provided a fast means of getting started with a strong overlap of IFC structural data).   Of course Bentley have Generative Components as a very similar tool to Grasshopper, but freedom to exchange models across platforms can enable very powerful work flows.

Wednesday, 9 October 2013

Parametric IFC

There's been a few private and public discussions about Parametric IFC and IFC for Content.  As a prelude refer to http://mdradvies.blogspot.nl/2013/10/ifc-for-content.html and perhaps we need a twitter hash tag?
Manufacturers and suppliers are caught in a difficult situation at the moment about generating BIM data and leveraging the best value (and success) in doing so.

There is obviously a cost in preparation and there is little choice at the moment but to either generate pick which BIM software that native content can be created for or generate IFC as neutral data.  Budget, time and expertise constraints make it highly unlikely anyone will author native content for all BIM software (and is a lot of duplicated effort).  Current BIM software capability with IFC is presently leads to a lot of frustration and poor performance, but I don't think it has to be that way and will try to convey that with this blog post.

Let's start with the cistern family that Martijn refers too.  You can download this as an IFC file or Revit Family from http://www.nationalbimlibrary.com/generic/exposed-cistern
Martijn comments that the IFC file has 2640 lines of IFC to define it (actually the version I just downloaded has 2118).  The authors at National BIM Library have used the faceted brep  shape representation to define the geometry which is pretty typical of IFC files to date.  The geometry is effectively meshed into planar faces.  When you do this, you loose the parametric and intelligent aspects of the geometry (ie, if I want to now make the flush pipe change diameter, it's a near impossible task to relocate all the vertex accurately into the new positions.  Perhaps some manufacturers/suppliers prefer this as it means the content is "protected" but it does come at a cost.

I haven't sought permission to "edit" this file (if someone has a problem, let me know), but I substituted the geometry for extruded area solids and swept disk solids which retain parametric geometry.  You can download this IFC file here.  By replacing the shape representations with more intelligent and accurate shape representations I reduced the file to 357 lines of IFC of which a lot are property values.  If you've had bloated IFC files gigabytes in size, a lot of this can be attributed to meshed hand rails and the like (Please request to your BIM  software developers to implement and utilize swept disk solids).  I actually did simply the shape of the cistern a little, not because IFC isn't capable, but because certification requirements of IFC software do not require the implementation of IfcExtrudedAreaSolidTapered which would more accurately and efficiently the tapered cistern.  This would have added about 30 more lines to the IFC file (and I can post if requested).

Now, here's where using IFC gets frustrating.  We have this more intelligent and accurate IFC file, and it doesn't work very well in trying to use it.  I tried all the IFC software I have to hand, Revit, Archicad, Tekla Bimsight, DDS Viewer, Solibri, Constructivity and all of them displayed non or only the cistern part of the geometry.  I put this file through the Building Smart verification tool which indicates only inherited errors (that didn't prevent the original file being used).  The fact none opened the file suggests it might be a problem with the file and I will be most grateful to anyone that can identify this (maybe it's my curve parameterization, I'm aware that my IFC is not yet perfect).  You can of course test the file with my rhino3d importer. http://www.geometrygym.com/downloads

Now if you wanted to change the geometric diameter of the pipe, you could open the ifc file in a text editor like Notepad, and set line
#3674= IFCSWEPTDISKSOLID(#3675,15.0,$,0.0,94.0000000000002);
to something like
#3674= IFCSWEPTDISKSOLID(#3675,40.0,$,0.0,94.0000000000002);

Download the revised file here.  In one quick step I changed the 2nd field for radius from 15mm (30mm diam) to 40mm (80mm diameter).

Now, what we really want to do is drive content as we can in Revit (and I understand, GDL in Archicad) from parameters.

An IFC pipe segment (or type) can have a  property value stored in the common property set for "Nominal Diameter"  What would be nice is to change this value (akin to changing a parameter on the family in Revit) and have the geometry and any calculated values update to this change.
IFC as presently defined does not have this capability, but there is a very interesting proposed extension for IFC to do just that. http://www.buildingsmart-tech.org/future-extensions/ifc-future-extensions/project-proposals/pa-1-parametric  I don't know any software that has implemented it (really users are going to have to demand it) and I thought I'd implement file exporting to demonstrate it.

Download the IFC file here.

So if you read the IFC, you see I've bound the property single value to the circle hollow profile def radius, with a formula to adjust by a factor of 0.5 (to adjust from diameter to radius).  It would be possible to define formula relationships and the like (akin to Revit and to my knowledge GDL) and have them converted from the IFC file into the native equivalents.  (Grasshopper definition if you want to test, the components are hidden from the menu at this stage).

So, if the industry wants to generate more intelligent model content, and use it in a wider variety of software and contexts, it would seem a good idea to get on and implement (and improve) this extension.  Note also this extension can provide provision for constraint relationships.

To quickly address the comment from Martijn about "IFC is meant for Projects), this is perception rather than technical intention (Refer definition of IfcProject here). IFC4 does improve this situation, where a project can declare "types" without populating an instance of this in space.

I state all the time, IFC isn't perfect.  But it is capable of a lot more than implementation demonstrates at this point in time.  And before we can really work on improving it, we really need to be able to test and utilize what it is already capable of to identify improvements and shortfalls.  I look forward to discussing further.

Sunday, 11 August 2013

Oasys Webinar - Linking GSA With Rhino and Grasshopper

Thanks to Oasys for the invitation to help present a webinar on COM execution of GSA and how I've applied this to develop the Grasshopper/Rhino to GSA interactions.

Here's the recording in case you missed it.  If you'd like to see a follow up with explanation of more detailed models, get in touch with myself or Oasys.

Here's the GH definition.  I realized that setting orientation to a point is pretty simple in GSA, setting it to the normal of a defining surface isn't so easy so I've modified for this.  I also made the points internal to the gh definition (rather than linking to a rhino document).

Tuesday, 9 July 2013

GeomGym IFC import to VisualARQ (via Grasshopper)

At the request of RhinoForYou, I've been prototyping an IFC import to VisualARQ using their recently released Grasshopper Components (and of course the Geometry Gym GH components).

I know Asuni are working on adding more components including to generate styles (until then, the user must manually create and assign in Grasshopper) but the evidence of Grasshopper being a fantastic environment for interop is again evident.

Here's a demonstration and description:

The grasshopper definition used (update to latest version of IFC plugin and you need VisualARQ components) can be downloaded here.  I'm seeking permission to post the IFC file in this demonstration.

I'm working on adding beams, columns and other objects that can be created in GH by VisualARQ.  Don't hesitate to get in contact if you have suggestions, requests or observations.

Monday, 10 June 2013

More D's for Grasshopper BIM

Recently I've been working on enabling more dimensions to Grasshopper BIM, primarily Planning and Costing.  I've just posted an installer (http://www.geometrygym.com/downloads ) that's capable of generating the attached program example (which is just like a Gantt chart just in Grasshopper format).

Grasshopper 0.9.0056 Definition Grasshopper 0.9.0014 Definition IFC4 created
This example creates a residential project construction program.  It demonstrates nesting tasks inside others, nominated precedence dependency (including lag time and start-finish or start-start type relationships) and nominating task duration.  It's also possible to assign task to work calendars defining working times  or exceptions (such as holidays or rostered days off).

At the moment there's not components to provide feedback such as collated/aggregated scheduled finish time etc, but this is certainly something I'll pursue.  Of a higher importance is probably to develop an importer for existing management software such as Microsoft Project (or other suggestions made by users) so that gantt charts (in a more typical/recognizable format) and reports can be generated there.

I've also started work on costing and resourcing metrics which I'll be posting soon.  I think what would also be impressive/useful with this is assigning products to tasks and creating a virtual build construction sequence within Grasshopper (or other software).

And remember this is all being managed within the IFC OpenBIM framework, so if you already use software capable of importing the model data, it's a really powerful opportunity.  At present I'm only generating IFC4 models as there are significant improvements in this area (but also means significant differences from IFC2x3) but if existing software only using IFC2x3 can be used I'll look at enabling "equivalent" IFC2x3 where possible.

Look forward to hearing suggestions and requests.

Thursday, 23 May 2013

OpenBIM Scripting : Python IFC

Goswin posted to the Grasshopper forum a week or so ago about the possibility of scripting IFC data from Python (Rhino Python to be exact).  I hadn't had much of a chance to try Python to date, but I've tested GH Python today (Rhino python should work just the same).

You can download the sample GH def here.

Note there is also the possibility of using my c# libraries (from C#, VB.Net, Python or other compatible languages) outside of the Rhino/GH environment.  Get in touch if you would like to learn more.  Also not everything is enabled, but I can quickly do so.  Grasshopper is really a graphical programming language, so what is available there is certainly easy to provide in the API.

Wednesday, 27 February 2013

The End of Babel

We had two very successful OpenBIM evenings in Melbourne last week, at SIAL (RMIT) and Arup.  The first was recorded (although I'm going to re-record mine) and hopefully we can post soon.

Matt Rumbelow of Revitall did a fantastic job of handling most of the organization, and it was great to see him show this video to promote and explain IFC (from nearly 20 years ago). Many thanks to Stephen Hamil for posting this for us all to access.

It was great to meet Dr Thomas Liebich in person (after quite a few emails).  One of the improvements in IFC4 that I wasn't aware of (or had implemented) prior to his presentation was a new tessellated shape representation optimized with objective of smaller file sizes.  This is particularly useful given how many IFC files are generated with this primitive (useful enough for coordination or visualization) shape representation leading to bloated file sizes.

I've now implemented it, and here is a comparison.
This mesh sphere (with 4900 faces) is generated in IFC2x3 (file) and IFC4 (file).  IFC2x3 generated a file of 750kB and IFC4 214kB, an improvement of around 70%.  When amplified over many objects (acknowledging real files contain other data influencing overall size improvement) this will still have a significant effect.  If you want to test the generation of these models, the gh def is here.  Note you right click on the ssiBake component to toggle IFC2x3 or IFC4.

Tuesday, 29 January 2013

Melbourne OpenBIM Event

SIAL (Spatial information Architecture Laboratory) at RMIT University in Melbourne have been very generous to host an OpenBIM event on the evening of Monday the 18th February.  

It's a great privilege to announce that Dr Thomas Liebich is also in Melbourne at this time.  Thomas is the leader of the IFC Development team for Building Smart International based in Germany, and also a director of AEC3.

Thomas will present on the IFC standard (past, current and future) including the imminent release of IFC4 as an ISO standard.

I will also present on OpenBIM workflows and the research/development I've done in the past 3 years.  This will include insights into project application of generative BIM workflows from Grasshopper to Revit and Tekla.  I will also be discussing why current IFC implementations by BIM software vendors have only utilized IFC to a fraction of it's capability and potential.   I will also demonstrate benefits design teams can realize from collaboration of model sharing using IFC including Fabrication, Analysis and Design ( Structural, Energy, Egress, Building Regulation compliance), Facility Management etc.

Please rsvp if you'd like to attend to jonm@geometrygym.com or contact me for more details.  We plan to start presentations at 6pm, but will be there from 5:30pm at the multi-purpose room of the Design Hub (Level 1).
Design Hub
RMIT University
150 Victoria Street (Corner of Swanston & Victoria Street)
Melbourne VIC 3001

Note there will be a second event hosted at Arup on the Wednesday evening.  More details to be posted shortly.

Friday, 18 January 2013

IFC - What It Is and Why You Should Care?

IFC - What It Is and Why You Should Care?

Christopher Zoog of HOK presented this great explanation to the New York City Revit User Group earlier this week.  HOK are certainly pushing and pursuing IFC in a number of impressive ways into their workflows, including pressure on software providers (such as myself).  They are not alone, but this provides some great insights into what is possible and what will be.

Thanks to Ryan Shultz for recording and enabling sharing.

Thursday, 27 September 2012

Grasshopper to Vasari

Thanks to Lilli Smith (and her Autodesk Colleagues) for arranging a very interesting Vasari Webinar discussing some of the different developments to link Grasshopper to Vasari.

The panelists were myself demonstrating the OpenBIM approach using IFC4, Hiroshi Jacobs presenting Chameleon, Tim Meador demonstrating HummingBird and Nathan Miller showing his OpenNurbs importer.

If you missed it, you can watch it here:
Or the individual playlists are here.

I'm sure this is the start of the discussions, so keep an eye on the Vasari and Grasshopper forums.

Tuesday, 18 September 2012

IFC Importer for VASARI

Vasari Beta1 was released a couple of weeks ago, and last week the SDK that I set about adjusting my Revit IFC importing code for.

I've just uploaded the first public installer, http://www.geometrygym.com/downloads

Here's an example model to start testing.
Grasshopper Definition   IFC File

You can nominate site longitude and latitude and also building storey levels.  Conceptual masses can also be nominated, this example uses a loft/sectioned spine.

There's lots more improvements and features to add, let me know what you'd like to see and I'll try to prioritize it.

Saturday, 11 August 2012

GH to Archicad (OpenBIM IFC)

With the new release of Archicad v16, it permits me the opportunity to download and test improvements made to IFC support.  This is still in progress, and initially I was a little disappointed, but revisiting a single test case for Constructive Solid Geometry (CSG) or Solid Element Operation as it might be known to Archicad users leads me to confidence and optimism about IFC exchange with Archicad.

So here's the test case that has me excited.  I posted nearly 2 years ago about most software reverting to "coordination" IFC models, primarily faceted breps (meshed surfaces).  Possibly this is acceptable for visualization and clash detection (but not efficiently) but if you want smart models that can be enhanced and edited down stream, IFC is derived from STEP and capable of many advanced and accurate shape representations.  This is also explained in my Technical Paper from last year.

So in two years I've still had no success in other software understanding the CSG steps that can define a gothic arch roof, until now.  I was thrilled to see Archicad v16 import this accurately, which might enable some really exciting project work flows from Grasshopper.  Perspective view doesn't seem to render anything, but isometric does (maybe someone can explain why).

Here's the IFC file if you want to test yourself, and here's the Grasshopper Definition.

The first test I ran also worked quite well.  Archicad doesn't have nurbs (at least yet), so I converted the nurbs curves for the Klein Building slabs into polycurves.  IFC file, Grasshopper Def

Now for some tests with scope for improvement. I tried to import an IFC file with swept beams.  It was pleasing to see the straight beam generate accurate edit handles, but none of the curved beams worked.  IFC4 does not appear to developed, so useful improvements such as cardinal points are not accessible.  IFC file, Grasshopper Def

And the final test for the time being, the waffle structure.  Slabs come in fine, seems to be an orientation issue for the walls.  Geometry looks accurate otherwise.  IFC file, Grasshopper Def

I'm hoping to do some more tests very soon.  If you've comments, suggestions or questions, I look forward to hearing them.

Tuesday, 19 June 2012

Tekla exchange Grasshopper/Rhino

The Geometry Gym Grasshopper/Rhino plugin to generate and import Tekla model data will be presented by RhinoForYou and Decode at the France Tekla User Days in Paris and Toulouse.

Decode will be explaining the use of the connector to generate fabrication data from Grasshopper for the impressive Canop√©e des Halles de Paris project.  Hopefully I can post details on this here soon for those unable to attend.

I recorded a couple of youTube videos to further explain graphical programming in Grasshopper for Tekla users, and outline fabrication model attributes presently available including assemblies, welds, bolts and cut parts and planes. (I will gladly accept requests for more)

Wembley Arch Grasshopper File  Twisting Tower Grasshopper File

Wednesday, 13 June 2012

IFC inclusive of Analytical Model

I'm pleased to have the opportunity to implement something I've discussed with quite a few Architectural offices in the past.  Coordination and duplication of models is a really time consuming aspect of working in a Design Team.  And despite the best efforts to date, success has been limited in sharing or using a single model for cross purposes.  Say an architecture office has prepared a great 3d model of a project, and then asked the Structural Engineer to analyze it and provide advice.

Structural Analysis models are quite fussy, and are only an approximation (to some extent) of the physical entities it represents.  An analytical model requires clean "junctions" or in effect ends of members tied into "nodes"  to not have unsupported parts that don't participate in the frame stiffness.  The physical reality has junctions where members are "cut" apart from the junction, or offset locations (say purlins sitting on top of a joist) and a BIM model should represent the physical situation as accurately as possible.  Because a structural analysis model is an approximation, care is not usually take to "precisely" replicate element position.  So the Structural engineering team leading the modelling process is also quite often not successful.

The advancement in software such as Revit (release 2012) had particular emphasis on an intelligent analytical representation trying to detect the physical situation.  I've been planning on implementing something similar, and now have a commercial user prepared to embrace this model transfer.  Note there are other aspects such as responsibility and other legalities that mean team work and close working relationships are essential to this process.

If engineering makes you a little squirmish, look away now.  This isn't really for the faint hearted.  But it has the potential to save hours and hours of duplicated effort or coordination if used successfully.  I can't wave a wand and make technical requirements of a model disappear, but I (and other software developers) can make them as easy as possible to incorporate into the process.

The attached model is a simple and crude truss.  The vertical member is physically modelled short of the chords.  The IFC components that define the analytical model are input with a "sphere radius" to search for other members terminating in this region.  An eccentricity or end offset is created joining the member to the other elements in the analytical model.  Mathematical stability and intended behaviour without explicitly having to identify the end offsets, demonstrated here in SAP2000 import.

The IFC model contains physical and analytical representations.  I hope that the "OpenBIM" structural analysis software soon recognizes this aspect of IFC.  To enable the Structural Engineering office to open the IFC model, I've developed an importer for SAP2000 (I'm happy to do similar for any of the other structural analysis software I've developed links to).  Attributes including constraints, releases, loads, material and profiles can all be conveyed.

This is just the beginning, lots more to implement on this process.  Note IFC4 has some subtle improvements that means I'm primarily targeting this version of IFC.
To try yourself, update plugin from http://www.geometrygym.com/downloads
Here's the Grasshopper model, and IFC file.  If you're interested in a Structural Analysis importer (Such as to SAP2000), please get in touch.

Wednesday, 6 June 2012

Curved Beams Grasshopper to Revit

It's been a little while since the last update, but I have been working on some subtle and not so subtle improvements.

The primary new feature is the ability to generate and import to Revit beams with curvature (arc and splines).  This includes preservation of cardinal points.  For the time being it works with IFC4, I will enable IFC2x3 initially with mid cardinal point.  At present the axis curve must be planar, but if you need non-planar I'll take a look at it.

If you look carefully at the image (or try for yourself the models), then you'll see Revit alters the end details at the junction.  These elements using the IfcSurfaceCurveSweptAreaSolid shape representation, which is totally under utilized in my opinion.  I've seen some client models where IFC is not practical to use due to bloated file size from faceted brep shape representations of these parts.

Here's the Grasshopper file, and here's the IFC file.

Monday, 28 May 2012

Generative Adaptive Component

Adapative components has been one of the common threads amongst those pursuing model transfer from Grasshopper to Revit (refer here).  So not wanting to miss out, I decided to start to start implementing this (an extension of the blog post from Nathan Millers great blog The Proving Ground).

I've enabled generation of the adaptive component itself from Grasshopper (where as to date the others have provided means of locating existing adaptive components).  This model demonstrates that IFC can exchange topology (or connectivity) of elements including vertex and edges of faces, as well as parametric locations (such as position on curve).  Note then that manually editing (or inserting) of the adaptive component, these relationships are retained.

Here's the Grasshopper model, and here's the IFC file.

One of the common criticisms of IFC is that it's a "lowest common denominator" model format, so you can't exchange parametrics or model specific attributes and have to revert to APIs.  This only has to be demonstrated in one circumstance to hold true, but doesn't mean it to be true in all circumstances.  I hope that some of the recent work I've shown demonstrates that IFC is capable of pretty advanced model transfer.  I read an interesting tweet quote from a recent BIM conference that said "If you can't get IFC to work maybe your vendor doesn't want it too", and it is important for software vendors to request and demand improvements to the IFC format for areas they have identified as a short coming.  

One of the IFC short comings I worked around in this example is how to nominate the Adapative Point locations for instance insertion.  I decided at the moment to apply the type (family) to the instance, and use a polyline shape representation to convey the point locations.  Of course a possible desired improvement for IFC might be a more specific description of this type of entity, and I'm sure there are many more that can help make this format be used more successfully.

Friday, 18 May 2012

Grasshopper to Vasari (via Revit for the time being)

I've started developing more aspects of conceptual mass family development primarily extruded form.  Others will follow ASAP like blends (http://thebuildingcoder.typepad.com/blog/2009/07/revit-form-creation-api.html is a good reference for forms that can be created from the API and some of the restrictions on the defining geometry).  I'd like to highlight and publicly thank Jeremy for the excellent resource his blog provides, it's been instrumental in me getting my addon up and running.

I also implemented an aggregation of buildings associated to a site as a conceptual family.  This then opens up an easier model transfer to Vasari.  Note I have started trying to implement a revit addon to generate conceptual IFC files directly, but some technical details (ie a crash I am yet to resolve) in initiating the import is preventing thus far.

So, here's the process for the time being.  Bake the IFC file from this Grasshopper definition (or download ifc file here).  Then import the IFC into Revit using the GeomGym addon.  This will create a revit conceptual family in the same folder as the model (or download here).  You can then import this into Vasari and run analysis such as the virtual wind tunnel.

Look forward to hearing suggestions and requests for improvements.

EDIT 21st September 2012  Note now there is a Vasari addon for Beta1 that directly imports IFC files.  Note the above example generates an individual mass family element for each building (there is not means to generate an inplace family object from Revit API).  Here's a Grasshopper file where there is a single site family and here's the resulting IFC file (but this isn't as fast to generate as I might expect so patience will help).