Read and Parse IFC with Grasshopper


In recent times I have been working a lot with IFC files. Not only as a way to exchange geometry and data with project partners but also because we have been experimenting a lot with building information and data visualization.

So, basically it is possible to create reports with all kind of CAD Programms and IFC Viewers, or even connecting Grasshopper directly with classical CAD Software. However currently all those solutions have their pros and cons and I am actually since ever looking for a way to “natively” open IFC files within Grasshopper or Rhino to extract the Property Sets and Data from the Geometry Elements in the used way how Grasshopper works so that I can easily utilize this information with the power of the whole grasshopper plugin universe.

I am aware that there are plugins like GeometryGym or even the Python OpenShell, however it always took me ages to get the setup right as it was just not very userfriendly and then I did not really achieve what I was looking for.

Simple Example: Opening IFC > Search all the IFC Zones > Selecting all those with the ID Batchrooms > Get the corresponding Data AND Geometric Properties e.g. Volume and a specific Pset Parameter as a list which can then be utilized for whatever I want.

(Advanced Example: Altering Parameters)

So a lot of stuff can be already achieved with the mentioned live connection between CAD and Rhino/GH however performance and usability is also far away from being perfect. Moreover sometimes I just have the IFC and do not want to have it to import first into CAD.

So what I am actually asking is, is there anything existing which you would recommend me or is the situation between GH and IFC just as complicated as I have described it. I am open for any advice and again this is also a call for solutions beyond the usual suspects here.


This is hard, since IFC is a bit complicated. An option is to use VisualARQ to setup an IFC framework in Rhino that Grasshopper can access. It is this pre-arranged relationship between the Geometry, meta-data and Grasshopper that needs to be setup. I am not sure all the geometric information is setup in IFC, so creating an application that can re-construct the Geometry data is part of the process.

This is an evolving process. Of course running Grasshopper with Revit, Archicad, Bricscad or Tekla are all different interpretations of IFC in applications too.

Jon Mirtschin at Geometry Gym is one of the leaders in IFC understanding and may have some ideas.

Scott is right, this isn’t trivial. IFC is a comprehensive data model, that is many things to many people. The documentation and examples could be improved a lot, but finding the solution to a task takes time and effort (or expertise support, that companies such as Geometry Gym can offer).

Grasshopper is a good way to learn and prototype a process, but I’d suggest that code (such as python or .NET) is a superior way to execute this taking advantage of LINQ etc. We’re also developing this on demand (or just in time) so it might be you have requirements that we need to enable an improvement to execute.

I’ve attached a sample gh script that breaks down an IFC file with zones, spaces and extracting an area for instruction areas. You could break it down by stories, then into zones etc if it was preferred.

201006 extract (2.5 MB)

Hope it helps a little, you might need a recent build of the plugin if I used parts that I’ve improved recently (we’re improving functionality such as work breakdown etc).


1 Like

Thanks for your quick replies. I am aware of the complexity that comes along with IFC parsing and that’s way I am thinking and working rather flexible with a bunch of tools when it comes to our current use cases. However thank you for providing me with the example file it might give me some support to better understand the intended workflow of your plugin. Actually we do not have a Geometry Gym license at the momente and I am afraid due to an overall investment stop caused by the recent global events and circumstances this won’t change in the near future, but at least I know now that there are still not much alternatives around when it comes to the IFC/GH workflow. So I guess we will have to stick our head together again to think about the workflow concepts and the technical possibilities. Moreover I have to say that there is no urgent need for a perfect streamlined workflow solution as this is currently more an internal developement project driven by curiousity and the spirit of innovation - and as you said maybe time brings up new feature implementations, solutions and possibilities as well. So, in the meantime I will continue understanding and experimenting which means sooner or later I will probably come back to you again anyhow.