Showing posts with label Grasshopper. Show all posts
Showing posts with label Grasshopper. Show all posts

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.

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.

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.


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.
http://architectureau.com/articles/shrine-of-remembrance/


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.

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.
https://github.com/jmirtsch/GeometryGym
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.

Truss

ShellAndBeam

SuspensionBridge



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.

Thanks,
Jon

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.

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.
http://www.geometrygym.com/downloads

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.

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).

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.

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.