Showing posts with label Revit. Show all posts
Showing posts with label Revit. Show all posts

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.

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


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.

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.

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.


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

Thursday, 10 May 2012

IFC Import Revit - Walls

Todays build (http://www.geometrygym.com/downloads) of the Rhino and Revit plugins includes improvements related to wall model exchange.  This includes creation of families where they are not already loaded.

I initially started with testing the wall path curve as a NURBS (spline) curve, but Revit (2012) doesn't seem to permit spline paths so I used my BullAnt component to approximate it with a polycurve of arcs.

For the moment, the wall path curve has to be on the centroid (I'll look to enable face and offset locations) and I'll have to investigate whether I can enable my nurbs to polycurve routine using openNurbs outside of Rhino.

Look forward to hearing feedback and comments.  Openings are one of the items next on my agenda.  Improvements that come to mind include locking top/bottom to levels and I'm sure users can propose many more.
Grasshopper Model,  IFC File

Tuesday, 8 May 2012

GH to Revit, Families & Cardinal Points

I've been implementing many aspects of IFC model data that facilitate the "family" based approach consistent with Revit.

You'll notice many new components for Slabs, Walls, Columns, Beams and framing members to generate a "Type" (equivalent to a family in Revit) and then "standard case" components to generate objects based on that family.

This can include cardinal (or insertion) point locations (such as Top-Mid or bottom right) as this information can be conveyed in IFC4 (make sure you right click on the ssiBake button to enable this).  Here's the example model in the image above.  Plugins should be updated from http://www.geometrygym.com/downloads

If you use IFC2x3 the location of the beams should still be accurate, but a default "mid" insertion point will be used.

Next on the agenda (other than improving and expanding on the above) are aspects such as curtain walls, grids and grid relative locations.  If you've particular requests or suggestions, I look forward to hearing them.

Tuesday, 24 April 2012

NURBS GH to Revit

Another example model for you to test (Inspired by Tim Meador's post on the Grasshopper Forum).  I've been enabling nurbs profile/perimeter exchange using the IFC2x4 format (status Candidate Release, anticipated to be approved late this year).



Here's the example Grasshopper model, and the IFC file.  You need to right click on the SSIBake component and check the IFC2x4 option. This should be sticky then for the model (I need to check why it sometimes reverts when reopening the model).

Note I'm yet to find other viewers/software that can interact with this version of IFC, so for the time being it's only useful for my Rhino/Revit developments.  I'm still implementing other aspects of IFC2x4 (which might still have subtle changes), so be careful as exported file might not always open in the future.  I'm presently implementing advanced breps, that should permit much smaller IFC file sizes (and avoid the implications of meshing objects).  Look forward to hearing comments and suggestions.

Friday, 13 April 2012

GeomGym Revit Addon importing IFC

Here's some sample models and an explanation/demonstration of the work I'm advancing to import IFC models into Revit.



You can test for yourself.  Here's the grasshopper files used in the demonstration and some example IFC output..  You need to download the latest plugins from http://www.geometrygym.com/downloads

Note I've only been working on the Revit addon over a period of 3 months compared to 22 months for the Rhino plugin (although I can reuse 80 to 90% of the same code) so I still need to enable many aspects of IFC file importing.  But I will prioritize any example models and requests that come from users, so please don't hesitate to ask.  I look forward to hearing from you.

Wednesday, 22 February 2012

Rhino/Grasshopper MEP Piping

The question arose on the Rhino forum today about exporting pipe objects into Rhino.  Refer here

I'm interested to see how Revit MEP handles IFC files (other than faceted brep/mesh) shape representations, as it can make the file much more compact and efficient.  Fitting such as elbows/bends can cause large problems if these "coordination" shape representations are used.



Here's my example model that you can download as Grasshopper model or IFC file to test yourself.  I look forward to hearing the results.

Friday, 27 January 2012

Revit IFC Plugin by Geometry Gym

I've recently been advancing development on a tool/workflow that's really needed to use Grasshopper to somewhere near it's full potential for Architecture/Engineering.  And that's to export the model into other BIM software with strengths and functionality that are not always evident or easily accessible in Rhino.

I started developing my IFC (neutral BIM format Industry Foundation Class) plugin (within Rhino/Grasshopper software) with the intent of enabling generation of BIM attributes and relationships to the already powerful geometric tool that is Rhino/Grasshopper, and then utilizing this in other BIM software without having to model everything again from scratch, and then maintaining/coordinating multiple models.

I touched a little about the current use of IFC as a model exchange in my technical paper last year.  Presently to be IFC certified (and there is a current drive to improve on this) you effectively need to import/export IFC models for coordination.  This can be done (with accuracy but certainly not efficiency) utilizing only two shape representations, linear extrusions and meshed/faceted breps.

This has led to a chicken/egg scenario, where BIM software vendors haven't imported advanced (and more efficient) shape representations (IFC is based on STEP model specification) because other vendors haven't exported them, and vice versa.

So whilst there is a long list of Software that interacts with IFC, it's really difficult (and I've discussed this with a number of big and small design firms in the past year or two) to use this "bridge" as it's intended.

Autodesk Revit is a very popular tool for Architects/Engineers to document and detail their projects.  However testing of means to import models using neutral BIM formats (primarily IFC and SDNF) hasn't resulted in much to boast about and utilize.  SDNF can generate native beam elements but can take hours (without succeeding) to import a pratical size roof model.  The Autodesk IFC plugin import generates reference objects, useful for coordination, drawing and even schedules, but as soon as you wish to edit or manipulate the objects, you nearly need to model it again (as families aren't utilized and aspects such as analytical representations not created).

So, with a few Geometry Gym users looking for a work flow to get Grasshopper models into Revit, I've been looking for improved ways to do this using the Revit SDK.  I started looking at direct model interaction, but for technical and practical reasons have decided a neutral bridge is the best way to do this.  Most of my c# IFC code is reusable (with some interaction changes) as a Revit plugin (this is my first plugin outside of the Rhino/Grasshopper environment), and I've today posted an example import of a steel frame roof (British Museum Great Court Roof) using my own IFC engine.



There's lots of improvements and work to do, but I'm confident with time I can create a powerful IFC engine within Revit (as I've already achieved within Rhino/Grasshopper).  The priorities for improvements are being driven by real project use of this tool (let me know if you have your own use for it) and will include curved members, orientations and synchronization options.  If you look closely at the image you'll see Revit has still tried to be clever with the bevel/miter at element connections, hopefully I can find a way to disable this (as an option) as I believe its significantly part of a slow import process.  Other objects including slabs, walls, MEP, etc etc will also be quickly added to the toolset.

It will be interesting to encounter the other hurdles and pitfalls in front of this development, but stay tuned to the blog for public release of this tool and examples of it's use.  Feel free to get in touch to learn more (and influence it's development) in the interim.