Tuesday 5 March 2019

Faceted Brep Conversion for IFC

In Ifc2x3 data exchange, only a primitive model is required as the vast majority of implementations are developed with the use case of coordination in mind.   If a shape representation isn't an extrusion, then commonly it's meshed into faceted faces with 3 or 4 edges.  I'd really like to see revolutions used more commonly as the impact on many file sizes would be dramatic.

But a faceted brep can have any number of edges, and nominate internal bounds for openings.
Refer to this image and this description

We've been recently working pretty hard on ensuring that we can generate compact and efficient faceted breps from the accurate physical nurbs geometry in Rhino/Grasshopper so that a Building Information Model can also be provided within the IFC2x3 model schema.  We've decimated file sizes from the order of 200MB (when using the rhino mesher) to 30MB.  If IFC4 models could be used, there is an even more efficient polygonal faced representation or advanced breps could define the objects as IfcAdvancedBrep with nurbs faces and trims that could be roundtripped to Rhino.

Here's a grasshopper test case of the conversion.  You can access this if you update to the latest ggRhinoIFC plugins from the downloads page at www.geometrygym.com/

If you test on your own models and have any feedback, would be great to hear it.

Monday 11 February 2019

IFC4 : AECOSIM to Revit

I've been supporting some client and project workflows with an emphasis on translating Bentley AECOSIM models into Revit, particularly for some of the big Infrastructure projects under development and construction in Australia.

It's taken some time, and some trial and error approaches.  But the process now is really encouraging, and I'm seeking more users and test cases to try this approach.  Note that the development is being undertaken as "Just In Time", so that I'm not promising that it's perfect yet.  But I can say that if you try this approach and find issues, if you can share samples (I can advise how to isolate required elements) then I can use that to improve the tooling.

Here's some test files if you want to test for yourself.

Download the latest ggRevitIFC importers from the downloads page at www.geometrygym.com to test this workflow.

I've created a sample infrastructure tunnel model in AECOSIM.

I've then tried to approaches to export to IFC.  Ifc2x3 (which in the vast majority of cases has been implemented for coordination use cases, and uses a primitive faceted model which is typically adequate for coordination.  If you try to import or link this ifc2x3 file, you get faceted creases all over the objects, which isn't acceptable to most Revit uses.  The objects also typically behave as "second class" in terms of visibility and sectioning etc.  It would be nice if Revit would mask the creases as many ifc viewers do.

I also exported as IFC4 with the AECOSIM technology preview enabled for NURBS and advanced breps.  This allows each element geometry to be defined trimmed surfaces.  With my sample model, this actually generates an IFC4 model that works well with my importer for Revit, but I have seen on project models that in many more sophisticated shapes, this isn't the case and we will take some suggestions for improvements back to Bentley.  But big tick here already for Bentley as I believe they are really close.

But I've also enabled a hybrid approach.  You can export an IFC2x3 faceted file (note the file size is 1.7MB compared with an ifc4 file of size 0.3MB).  You can also script the creation of a STEP file for each element, and then if the filename ends with the AECOSIM elementID and is located in the same folder as the IFC2x3 file, the Geometry Gym Revit IFC importer will detect these and use these (where possible) to define the shape definition for Revit.  You can also "revise" the IFC2x3 file to IFC4 with the shapes adopted from the STEP files with an alternative button highlighted in the image below.

Note that AECOSIM uses features such as elliptical trims and cylindrical surfaces when it generates STEP that doesn't always seem to be the case in IFC, and this is a request that Bentley will hopefully consider as an improvement.  These work better with Revit import as Revit doesn't have as comprehensive NURBs capability it seems in comparison with other applications.

Please try with the sample files.  If you 'd like to discuss or learn more, please get in touch.

Wednesday 14 March 2018

2018 Upcoming Events

Here's some upcoming events I'll be attending in the next few weeks.  If you are there and would like to speak in person, please get in touch if you would like to arrange in advance a time.

Building Smart International Summit, 26th to 29th March Paris

BIM World Paris 28th and 29th March
I'll be helping at the RhinoForYou stand 563 during this event.

Shape to Fabrication 24th to 25th April, London

BILT ANZ 24th to 26th May, Brisbane,

Monday 20 March 2017

BIM World 2017

I'm looking forward to attending BIM World next week in Paris at the invitation of RhinoForYou.  Some details below if you are attending and wish to speak with us.

Espace Grande Arche
Paris La Défense
Rhinoforyou stand (219 A)
March 29-30, 2017
9:00am - 6:00pm
Rhinoforyou will be exhibiting at BIM World 2017 in Paris, from March 29 to March 30 (stand 219 A).
Rhinoforyou will be presenting the BIM software solution RhinoArchitecture, an innovative and economically affordable solution that integrates consistently RhinocerosGrasshopper and VisualARQ. Winner of the PTNB 2016 (category "Building envelope"), RhinoArchitecture is the first solution to see the convergence of design and parametric design with BIM.
Rhinoforyou will also be presenting its Geometry Gym connectors (direct or via IFC) for CAD software (Revit, Tekla, Rhino...) and for calculation software.
Experts Francesc Salla, VisualARQ product manager, and Jon Mirtschin from Geometry Gym Ltd. will also be present at the stand.
If you want to get a free registration and save 50 €, send an email to jacques.hababou@rhinoforyou.com

Thursday 14 April 2016

Shape to Fabrication 2016

Shape to Fabrication 2016 is on next week, and I'm really excited about returning to London to attend and present at this event.  There's an amazing line up of speakers and the opportunity to speak with the McNeel staff attending makes this an event not to be missed.  Thanks to Simply Rhino for all the effort to organize this.

It's 7 years ago that I last attended Shape To Fabrication, number 3 at Metropolitan Works in 2009.  I'd been promoting and publicly releasing the Rhino plugin online that I'd been working on in house at Expedition,  known as  SSI (Smart Structural Interpreter Connector to GSA).  Bob McNeel suggested pretty close to the event that I should present them at Shape to Fabrication.

Fred Labbe (my colleague at Expedition) was already a confirmed speaker on the Santa Maria del Pianto Metro canopy, and at late notice he was generous enough to let me share the speaking slot to present the rhino plugins.

This event quickly increased awareness, triggered a launching pad for Geometry Gym as a business.    A meeting for clients with McNeel staff (including Carlos Perez and David Rutten) was arranged soon after by RhinoForYou and soon afterwards I had my first paying client and left Expedition to start full time on the development and support of the plugins.

If you'd like to see what I presented, it was posted to youTube (but with no commentary).  The tools have come a long way and it's great to have the chance to get back to this fantastic event.

Thursday 31 March 2016

Geometry Gym Addons GHforMac

It's great to announce that Mac users can now start using the Geometry Gym plugins in Grasshopper.
At this point in time to access Grasshopper, you need to be running Rhino for Mac WIP, then Grasshopper can be accessed from rhino command ExplicitHistory (the original plugin name from many years ago).

You can download the Geometry Gym installer from http://www.geometrygym.com/downloads
At the moment I've compiled the Bullant and ggRhinoIFC addons, others can be built on demand (noting that many use windows applications programming interfaces that won't work on mac).

Here's a script to test with.  Klein Building.gh All feedback welcome.

Friday 18 March 2016

BIM World 2016

Rhinoforyou will be exhibiting Rhino3d and Grasshopper3d as a BIM tool at the BIM World 2016 in Paris on 6th and 7th April (stand 124). 
Rhinoforyou will demonstrate (and answer questions) about BIM workflows with Rhino v5 and Grasshopper using 3rd party developments by Geometry Gym and VisualARQ amongst others.

Tuesday 1 March 2016

It's back, Scia from Grasshopper

A few years back, I advanced on a Grasshopper plugin to generate SCIA Engineer structural analysis data.  For a few different reasons, this stalled and didn't work as successfully as I would have liked.

Late last year I started work again on the ability to convert Structural Analysis IFC files into SCIA, and now I've enabled the same code into a revived Grasshopper plugin.

It's now available from http://www.geometrygym.com/downloads  At present it can generate beam elements with releases, restraints etc.  I will be looking to enable loads, area elements and other features that users might request so please get in touch.

Here's a sample gh script to start with.

Monday 22 February 2016

OpenBIM just became more Open

The core c# classes developed by Geometry Gym to import and construct IFC (Industry Foundation Classes) have been released as an Open Source project under the MIT license.

The source code is being hosted on GitHub, https://github.com/jmirtsch/GeometryGymIFC
I've uploaded the compiled dll to https://www.nuget.org/packages/GeometryGymIFC/

Note this isn't the entire IFC code base that Geometry Gym has developed, the interfaces to Grasshopper, Revit, Rhino, Navisworks, Tekla and the various structural analysis software remain closed source (for at least the time being) as the revenues provided by these projects support the full time development of this code base.

Example code for using these classes will be posted to this project,
and you can also refer to the Building Smart examples at
https://github.com/BuildingSMART/IfcScript (but a little more work is needed to enable this to directly use the opensource tools).

Documentation is sparse, but you can reference Building Smart material online such as  http://www.buildingsmart-tech.org/ifc/IFC4/Add1/html/

Prior to deciding to open source, I studied the capability and state of existing dotnet projects I could find.
Some key advantages I believe this project will offer above these include:
MIT License (Permissive license permitting use of code for many purposes)
Simultaneous of multiple schemas such as Ifc2x3, Ifc4 and Ifc5 (infrastructure)
Pure dotnet library.
Easily extensible for developing custom classes and custom interfaces with other software.
Advanced constructors for classes to permit easier generation of Ifc files (other projects require explicit setting of every relationship requiring more intimate understanding of the IFC framework).

The motivation for this move to opensource the code is support of the Uniform Object Library, and I have also discussed the possibility of using the tools for other open and closed source developments with others.

Note also there are two initial variations of the classes to reference.  The core code has no dependencies and reference, and an extension to this with references to RhinoCommon (OpenNurbs) geometry.  The RhinoCommon flavour is still work in progress with more code to be ported into the opensource project.

If you are interested in utilizing this project, please don't hesitate to get in touch to discuss any aspect of this.  Also if you have suggestions for improvements, or wish to contribute, this is greatly appreciated.

Sunday 27 September 2015

Geometry Gym Mac Plugins

It's a historic day, I've added a RhinoMac download area to the website, http://www.geometrygym.com/downloads

I believe these are the first plugins developed for RhinoMac, and it's an exciting new era.

Initially the two plugins available are BullAnt, and ggRhinoIFC (to import and export IFC files).

You need to install the WIP (Work in Progress) build of RhinoMac, you can download from here:

Commands will then be available starting with gg (no toolbars yet).  You can open/import IFC files from the file menu.  You can run rhino command ggZZLicenseRequest to activate an evaluation license for the plugins.

Note that there are still improvements on the way (including features in RhinoMac) such as property panels .  I also plan to release mac versions of other utilities.  A lot of the other plugins I've developed for Rhino Windows probably aren't required on MAC as they link to Windows software.  Exceptions are the gbXML plugin and if you wish to see a build of another, then let me know.

I look forward to hearing feedback and suggestions.

Monday 23 March 2015

Paris BIM World 2015

Rhinoforyou will be exhibiting VisualARQ at the BIM World 2015 in Paris on 25th and 26th March (Stand 31 - MEDIACONSTRUCT). 
Rhinoforyou will demonstrate (and answer questions) about BIM workflows with Rhino v5 and Grasshopper using 3rd party developments by Geometry Gym and VisualARQ amongst others.

Tuesday 16 December 2014

The Poppy - Shrine of Remembrance Melbourne

Here's a stunning success of the Grasshopper to Analysis/BIM workflows with the assistance of the Geometry Gym tools.

John Noel of Irwin Consult in Melbourne emailed me earlier today with some images of a stunning feature recently added to the Melbourne Shrine of Remembrance.

Here's some images by John Gollings which are featured on the Irwin website and this article.

I look forward to visiting this in my pending return to Victoria.  You can read more about the details of this project at the  ARM Architecture website and Irwin Consult website.  Grasshopper, GSA and Revit were involved in the design and documentation of this stunning feature.

Congratulations to all involved.  If you've work that's published/built and it involved the Geometry Gym tools, please let me know and I will be glad to promote it on the blog.

Wednesday 10 December 2014

IfcScript Introduction

It's an honour to have the work I've done as an early adopter of IFC4 recognized by Building Smart International.

With the library of c# code that I have for importing and exporting IFC4, I've been working on a project for Building Smart to generate sample IFC4 files.  These are small unit tests that highlight a particular aspect (or comparison) of the schema, concentrating on new features and aspects of IFC4.  This includes shape representations such as nurbs and triangulated face sets, cardinal points, reinforcing and new standard case classes.  Now that the bulk of the project has been set, it should be easy to add many more.

Here's an introduction to the project.

It's using my c# library as a means to generate and export the IFC files, but the scripting aspect of it is opensource on github, you can access it here.  https://github.com/BuildingSMART/IfcScript

What's nice with the scripting approach to generating the examples is that examples can be kept in a consistent style, with common changes swept through them.  The scripts can also be built across different schema (including IFC2x3, IFC4 and IFC4 addendum 1) although I still need to enable some exceptions to be thrown when invalid classes are called on.

It's been a good opportunity to polish my library as an API, and it also serves as some good examples of how to use my c# library as an API.

If you'd like to get involved or test this, please don't hesitate to contact me.  And if you have more requests/suggestions for further examples, then do let Building Smart or myself know.

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.