Calling conceptual massing experts - closed splines & import instances



I have a simple design problem that I’m struggling to do in Dynamo/Revit. The idea is to create some ‘structural tubes’ which is a diagrid based on a NURBS surface. The base surface is then offset to create a void which passes through floors. This is all relatively easy to do via Grasshopper (refer below).














The problems of replicating this in Dynamo are as follows:

  • The ring beams are closed NURBS curves. Dynamo is able to calculate the intersection of mass and floors, that is, generate the NURBS curve. But then I can't do anything with it because the Revit API doesn't support closed splines. Is there a way to add geometry to the spline?
  • I tried Ryhnamo to bring in the mass - which actually only brought in the top and bottom surface. But the problem is that in order to create a void form you need to use an in-place generic model. An in-place mass will fail. Both a conceptual mass family and generic model family will also fail. Even if the import instance is exploded and turned into Revit geometry. The only method that works is an in-place generic model which is exploded, set to a void and the cut geometry tool used. As I understand it, you currently cannot create in-place components due to Revit API limitations. Is this correct? Does this mean that the only way to do it is manually?
Below are the Revit results. On the left, an in-place generic model set to void. In the center the mass from Rhynamo (plus the diagrid adaptive components). On the right, the import instance, exploded and set to void which is unable to cut the floor slabs.

Any ideas on how Dynamo can be used to automate this very manual process?





If you can explode your ImportInstance object into a form object and then convert that into a void inside the family environment, then you can definitely cut all the floors with a bit of api scripting:





Hi Dimitar

Interesting solution. Which family template are you using - conceptual mass or generic model? When I try to use Rhynamo to bring in the breps, the loft section is dropping out. (The top ellipse is rotated and then the loft generated to create a twisting form). Ryhnamo says there is a brep but it doesn’t display correctly.

Also, if I try to explode (manually) the import instance disappears. The only way I could get it to explode correctly was via an in-place mass in the project environment. Not sure why I can search within Dynamo and find a ‘Geometry.Explode’ only for an error to appear saying that the function doesn’t exist???


Void error


Hey Paul,

I used the generic model family with the “Cut with Voids when Loaded” option enabled. I can’t provide much help on the Rhino interoperability but usually for this to work, you have to loft your sections into a single closed solid, import that and then explode it from the Revit UI.