Tuesday, January 3, 2012

A Magical Way To Calculate Volumes

Important Note:  All credit for this idea goes to Creg Dieziger of Morrison-Maierle, Inc.

Back in December, I had the honor of spending a week in Manchester with some awesome Autodesk and non-Autodesk folks.  We of course spent a lot of time talking about Civil 3D and out of that came one of the most ingenious ideas I've heard in quite some time.  Creg Dieziger of Morrison-Maierle came up with a really nifty way of including material depths when doing your volume calculations.  It goes something like this:

  1. Create polylines that enclose each type of material that you have.  In the example below, I have light duty pavement in yellow, heavy duty pavement in green, and building basement in red.
  2. Offset each closed shape inward just a little bit (I used 0.01).
  3. Set the elevation of each polyline equal to the depth of that material.  For example, heavy duty pavement that has a depth of 1 foot will be a polyline at elevation = 1.00.  Sound weird?  Stay with me, this is like the part where Mr. Miyagi wants Daniel to wax the car.
  4. Create a surface for each type of material that you have using the polyline as both the breakline and the boundary.  I used a supplementing factor of 10 and a mid-ordinate distance of 0.1 when I did this.
  5. Paste all of the individual material surfaces into one common surface.  I named mine "Material Depths".Step 2 is necessary because of the abrupt elevation change where two materials meet.  Without the offset, they will just blend together at the edges.
  6. Create a TIN volume surface (I called mine FG-Materials) using your "Material Depths" surface as the base surface and your Finished Ground surface as the comparison surface.  The elevations of the resulting surface will be material depth subtracted from FG - Get it!?
  7. Next, create a new surface (I called mine "Adjusted FG") and paste the TIN Volume Surface into it.  Again, weird...this is the part where Daniel has to paint the fence.
  8. Now you can perform a volume comparison between Adjusted FG and EG and you'll get a result that automatically subtracts out the material depths! (this is the part where Daniel sees how it all works.)  The reason for step 7 is that you cannot do a volume comparison with a volume surface - it has to be a "regular" surface.
If you have to read through this more than once, don't feel bad.  I had to read through it about 10 times to make sure it made sense to me.  But...once you get it, it works!  And the beauty of it is that once you create the "Material Depths" surface, you're done...you don't have to create it or adjust it again unless there's a specific design change that warrants it.  You are free to play with the FG elevations to achieve the slope, drainage, and/or volume targets you're trying to achieve.  Just remember to set everything to "Rebuild Automatic".

Try it out and comment on how it worked for you.


  1. This is cool. Removing material depths from FG is a function of C3D that should be more intuitive/straightforward. This is a good work-around.

  2. And, this is the part where Daniel throws the carnauba wax can at that Sensei Miyagi's right ear. I think your post is intended as sarcastic to prod the C3D developers a bit.

  3. Glad you remembered it in such great detail. It went over my head the first time. I thought they were talking about a new feature. It's a more than acceptable work around and pretty obvious once you think about it. Thanks for posting!

  4. I use a similar method to obtain various subsurface strata surfaces e.g. rockhead, clay etc but I have been contempating how to approach this type of problem and this looks like a winner.

    However, the lack of such basic functionality is a major fault of C3D......maybe it'll be fixed by 2022 release....!!!!!

  5. Bloody brilliant! Reminds me of the inverted surface trick in LDT to delineate drainage boundaries.

  6. Just tried this in anger this morning - need to remember to add show boundaries at Stage 5 as the small gaps between different material types (0.01m in my case) did not triangulate at all.

    Apart from that, this method worked like a dream....

  7. Neil, what problems did the missing triangles cause? When I ran this on my test drawing, they didn't seem to matter.

  8. When I viewed the surface in Object Viewer, there were missing areas but show boundaries sorted it out. The main problem was that the non-triangulated areas didn't figure in the volumetric calcs and so the volumes weren't as accurate as they might have been. The volume difference between the correctly formed DTM and the one with missing areas wasn't really significant though. It may have been specific to my data set but its worth checking the final composite to make sure.

    When my model was sorted out I played about by raising the the material thickness surface and recalculated the volumes and then did a manual check and the figures were near enough identical :)

  9. My hope was that the narrow 0.01 slivers wouldn't affect the volume results. I think you have confirmed that. Thanks for looking at this so closely!

  10. If the proposed and existing surfaces are relatively flat then the 0.01 unit slivers would be negligible and if the proposed surface is on the side of a steepish hillside then the slivers may become more significant. I suppose the slivers could be made 0.001 units which would indeed give negligible volume errors in all but the most extreme cases.

    As I said though, viewing in 3D and adding show boundaries as required removes the slivers.

  11. Unless you wanted to have individual surfaces for each material type (so you could raise lower each one if the construction thickness altered), then presumably it would be a bit easier to simply create a composite surface comprising the offset breaklines and draw an outer boundary if required??

  12. Please guys, keep this blog going...I am new to Civil 3D and want to learn all that I can. I want to try this but not yet, I have so much more I am learning....

  13. Kudos! Thank you for sharing!

  14. Just tested this out and it is absolutely brilliant. Thank you for posting this!!!

  15. I'm trying to work through this method but struggling to determine something. The building on my model is easily done but the car park has varying levels on the perimeter and on internal break lines. How can I create a separate car park surface say 450mmm lower than the FG?
    Thanks in anticipation, Stu

  16. Separate?
    Make a new surface, paste in the FG, then lower it. Is that what you mean?

  17. Thanks for sharing...! I think This blog is very interesting, I hope you feel same like me about my link @ ball volume calculator
    know more

  18. I know this is an older post but I just came upon it and am having issues. For some reason when I make the TIN volume surface with materials and the fg, it is only using the materials area and not the full fg area. This site is just a large gravel pad and i am trying to subtract out the gravel thickness

    1. Your 'material depths' surface needs to cover the complete site (or the whole of the area you are working on).

      If you make a large surface and a smaller surface and then do a volume surface between them, it will never be as big as the large one. It will only be as big as the smaller surface.

  19. This comment has been removed by the author.

  20. Very Slick. Thanks for posting.