Create a Water Solid with Spring Nodes

Revit does not have any built-in tools for modeling water, though I have previously shown how you can Model Water with Topo. But this method is more of a workaround and it does not work particularly well in section.

Now with Dynamo geometry tools and a couple of nodes from Spring Nodes, you can create a solid water element that perfectly follows your Topography.

This definition is based off a method I first saw on Revit Dynamite and Ammo, Cutting Objects to Topography. It requires several inputs. First, an extended boundary of the water area (a simplified boundary that is larger than the water). You also need to specify the water elevation and extended water depth (again, a value greater than the depth of the water).


When working with large and complex Toposurfaces, you might need to split the surface to create the water solid. I had a few issues trying to create this water. The Geometry.Split node should return two solids; if it only returns one, try working with a smaller surface.

Here is the result in Revit:


Because Topo is a mesh, a water solid that is cut with Topo will also have triangulated edges. This is visible in plan if the water has any transparency.


If this is a big issue, you could try converting your Toposurface to a NurbsSurface before splitting the water solid. But the water will not perfectly follow the Topo in section.

You can also create water geometry along architectural surfaces, such as walls.


It just requires a few more nodes:


And finally, even though the family will not give you a volume parameter for the solid, you can easily find the volume by creating a Material Takeoff schedule


5 thoughts on “Create a Water Solid with Spring Nodes

  1. Could you put on the distribution of the code and the project of
    I have not, despite the attempts succeeded.

  2. Dynamo code works. No error messages, but FamilyInstance.ByGeometry node values are “[0] null ‘and’ [1] null ‘

    I have drawn the outline of the water area with Model line below the terrain, but the creation of water is not working.

    Sorry for my bad English tongue, I hope that you understand.
    Can you send the picture? .. It would clarify the matter.

  3. I am also running into the issue that FamilyInstance.ByGeometry returns [0] null ‘and’ [1] null… using DirectShape.ByGeometry works though…

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s