Get volume between elements

Hi, I have a bunch of 5mm thick floors modeled with all sorts of falls on top of some other floors with some falls. Is it possible to get the volume between the two floors using dynamo?

1 Like

If I understood correctly, it is reduced to a slopped floor over another slopped floor. Can you draw a solid (or floor) with the height of the first layer of slopped floor and minus the first slopped floor? That would give you the volume between those two.

The 5mm thick floor on top has to many slopes going on. Would take quite awhile to achieve

Haha, sorry, I wasn’t suggesting you to do it manually, get the all those slopped ones in Dynamo and minus the container, that would give you the volume difference, right?

I’m sorry I don’t follow. Bit lost what your saying and how it would get the void volume between. Section shown bellow.

Revit 2019
Test Project_Screed.rvt (2.1 MB)

Sorry vanman, I didn’t explained myself well. Also, I realized I have oversimplified a bit after seeing your file!. Well, new approach:

  1. Collect all edges of your sloped floors which you want to know the volume under.
  2. Extrude them vertically and intersect them with the lower floor faces.
  3. Get the base face and top faces that closes the surface and convert them into a solid.
  4. Join them and get the volume of this new solid.

Thank you, will give that a go soon. Hoping I can find all the right nodes

I was trying to get the biggest surface face area from each solid and then extrude the curves but it froze my revit. Not sure if i set up the extrude curves node wrong


Any chance you have a Revit 2018 version?

Hi Kenny, here’s a 2017 you can upgrade

Test Project_Screed.rvt (2.1 MB)

Why not use Revit’s topography Cut/Fill calculation here?
Haven’t opened your file @vanman but may get a chance tomorrow.

Built this workflow based on a generic test floor.
Floor to Topo for Cut Fill.dyn (35.7 KB)

  1. Extract floor surfaces and filter by plane normal intersection to get the top faces.
  2. Project the lower surface perimeter curves onto the upper (if the upper is bigger, or if this is not the case reverse)
  3. Extract the perimeter curves for the lower surface.
  4. Find and prune all start and end points of the curves for both surfaces to get control points.
  5. Use control points to make topography.
  6. Change the phase of the lower surface to existing and then select the upper surface to see the parameter values for Cut/Fill.

Ingenious. Thanks Ewan. I thought of using a topo but never throught of dynamo creating the topo for me to save time. Ill give it a bash.

1 Like

Theres multiple floors so used select model elements and a few remove null nodes. Runs to the Topography by points node but get the error below.


For that error it looks like you will have to prune duplicates based on X and Y. The normal prune duplicates node uses Z as well so you will need to do it another way.

1 Like