Revit/Dynamo volume calculation of water in a tank


I have a problem on one of my project, and you probably can help me to figure out a solution :

I have a tank (let’s simplify it as a cylinder geometry), this tank will be full of water.

This tank has also various equipments like filters, and some structures elements like walls and columns.

I want to know the volume that the water will occupy in this tank. So basically it is < Full water volume - Equipments volume - Walls and columns volume >.

I can do it on Revit, creating a new volume representing the water and cutting every elements in it, but I have to do it manually, by clicking on every elements. The problem is that these tanks are huge with many many elements in it.

Do you have an idea to solve my problem? Using Dynamo? Or can I do it on Revit?

I need to identify and substract the volume of every elements inside my volume of water.

I tried using Naviswork with a clash detection, but sadly Naviswork is not giving me the volume of elements clashing.

So if any of you has an idea, i’ll be glad to hear it

Thank you


something like this?


A Room in native Revit may also work - just make sure the equipment is room bounding.

Hello, yes that’s the idea.

The problem is the number of “other objects”. There’s too many of them to list them in Dynamo or to click on them on Revit manually.

I’m looking for a way to select them all at once to substract their volume but grouping them is not working for that purpose.

A Room volume calculation in native Revit will take into account Equipements? Interesting, i will look into it thank you

Many objects, like pipes, cannot be room bounding, so I don’t think it works, at least not always.

I would simply go in a 3d view, hide everything except the “other objects” and then use Select Model Elements to get them.

Depending on the complexity of the model, yes. One of the last projects I worked on used this method to correctly size an on site water storage tank.

If your geometry is overly complex:

  1. Ensure all equipment has an accurately calculated ‘volume’ parameter, and has the Room Calculation point enabled. Do this manually, or better yet use the manufacturer info - the number of geometry conversions will make it prone to error.
  2. Get the ‘tank’ room in Dynamo.
  3. Get all elements of the category your equipment is on in Dynamo.
  4. Filter that by if their room is the tank room.
  5. Pull the volume parameter from the included equipment and sum it.
  6. Get the volume of the tank room.
  7. Subtract the equipment volume (5) from the tank volume (6).
1 Like

Just need to make sure each piece of equipment is solid though - the “volume” of a piece of equipment that is 10ft x10ft x 10ft for use in this algorithm needs to be 1000 cubic ft - but if it’s a 10x10x10 box with 1/2" thick walls, then the volume from Revit and Dynamo will only be 12.44 cubic ft - technically correct - but in this case i think what is needed is “displaced volume”, not solid volume. That’s going to be a little tougher to achieve for custom equipment families.