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.
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.
Great work, as usual, Jon!
ReplyDelete