CADD Monkey Favicon
Stage storage volumes are a common request from clients and engineers. Rather than using Civil 3D’s stage storage function we use a more dynamic and accurate technique here that is easily replicable and verifiable. Like anything, the more you do it the quicker it becomes and the less you’ll need to revisit this post!


Step 1 – Basin surface

Starting with the basin surface you want to query, in this case a mine pit shell, find a contour near where it looks like water would spill out over if filled to the brim. ‘ID’ this contour with OSNAPs to get an approximate Z value for the next step. 


Mine Pit Shell


Step 2 – Level surface

Draw a rectangular polyline around the basin surface, then in Properties assign this Z value. Create a new surface named “Level” or similar and edit the Surface Style to display Triangles and/or Border only. Add this polyline as Contour to the surface.


Surface style dialogue boxes


Step 3 – Volume surface

Now we are going to generate a polyline that represents the intersection of the Pit shell surface and Level surface. The command ‘CreateSurfaceComposite‘ will do this. Select ‘Level’ as the top surface and ‘Pit shell’ as the bottom surface. This will create a Volume surface. Edit the Surface style so only the major contour is on and the interval is set to a large number such as 25000. Hit OK and then make sure it is set to Rebuild Automatically.


Contour intervals for surface intersection


Step 4 – Extracting the boundary

What you are looking for now is that this boundary line is unbroken, but only just. You are trying to get the maximum level just before water starts spilling out, so keep raising or lowering the Level surface until the volume surface boundary line is unbroken. Then extract this line and apply it as a boundary to the Level surface.


Step 5 – Insert Elevations table

Now we can get into using Civil 3D smarts for our stage storage. From the Annotate tab > Add Tables > Add surface legend table button select the volume surface from step 3. We want an Elevations table, select Dynamic, then click somewhere convenient to insert the table. This should produce an empty table with a few headings. Now we will populate it.


Surface legend table drop-down


Step 6 – Create Elevations Data

In the Volume surface properties select the Analysis tab > Elevations for analysis type. Select ‘Range interval with datum’ and then enter the resolution you want the stage storage to be calculated at. Civil 3D 2018 is limited the 200 rows so I typically enter somewhere between 1-5m.


Surface elevations analysis


Step 7 – Create Volume data

Once you hit OK the table from step 5 will populate. Now we need to get the right information in this table for exporting into a spreadsheet. Edit the table style and make sure there is an Elevation and Volume column. You can also add an Area column if required. Use the + and x buttons found on the right-hand side to add and delete columns. Give each column a title and double-click on the column value box to bring up the contents editor. In Properties drop-down select the data field you’re after then hit the right arrow to add it.


Surface legend table settings dialogue box


Step 8 – Export CSV table

Now your table has all the relevant info we need, explode it twice to get it down to the entity level. Here we need to use an external lisp routine called COT.lsp (click to download). Type Appload then locate this file. At the command line enter COT to run it. Draw a box around the exploded table to create an AutoCAD table, then right click on it, select Export and saved it as a CSV file.


Export AutoCAD table


Step 9 – Organising Excel data

Open Excel and drag in this CSV file. In the top elevation cell type in the RL of the Level surface from step 4. Make sure there is a volume next to it and not a zero. Below that elevation cell, type in the next lower elevation at the correct increment, i.e. 440m top then 338m below that, and double click in that cell’s bottom right corner to populate all cells down automatically.


Excel data


Step 10 – Complete stage storage

Here I like to flip the data so that the cumulative volume increases as you go down the page. Select all cells and in the Data tab > Sort from smallest to largest. To finish the Stage Storage calculation you need to create a new column to the right of the volume column for Cumulative volume. Referring to the image below, in cell C5 type ‘=B5’ then in the cell C6 type ‘=C5+B6’ and double click in that cell’s bottom right corner to populate all cells down automatically. Double check that the final cumulative volume matches the volume Civil 3D calculated in the Volume surface properties from step 3.


Excel stage storage data



That’s it! 10 steps that amount to half an hours’ work or less. Typically the client or engineer will not require a graph but if they do Excel makes it simple with Insert > Charts. 


Stage Storage curves


Good luck! 


CADD Monkey

CADD Monkey Favicon
Before jumping straight in, spend a few minutes to decide on which method you will utilise in your surface modelling.

Simple surfaces just need to be slapped together and used as part of a bigger model, or moved into place without so much as another thought given to it. Others, while simple, may need optimisation or re-modelling further down the track. Others are more complex and need an approach that will give the best result while allowing for easy future changes, whether that be you or a colleague who is unfamiliar with the model.

Let us have a look at the different surface modelling options available in Civil 3D:

Modelling method comparison table

Method Setup time Adjustment time Best use Issues
AutoCAD entities and objects 1 (quickest) 3 (slow) Simple models needing few changes – Not dynamic so can be times consuming to iterate designs

– Care needed to ensure grades and distances are correct

Gradings 2 2 Non-linear dynamic models – Does not always work as you hoped

– Can be buggy and break or cause lock-ups

– Care needed to ensure correct use of Sites

Corridors 3 1 Simple to complex linear and non-linear dynamic models – Takes more time to setup

– Care needed with targets, chainages, link coding

A mixture of the above 4 (Slowest) 2 Complex models – Can be very complex so needs strict naming conventions

AutoCAD entities and objects

A useful method for creating quick and dirty surfaces. These models are only dynamic in the sense that whatever entity you adjust will updated in the surface directly, but nothing else will change. You must adjust each entity separately to keep slopes and offsets, for example. Tip: AutoCAD points will not update if you move them, use zero-length polylines instead.


These get little use in my workflow purely down to being unreliable and prone to lock-ups. Use clean the feature lines to have the least number of vertices possible if the model demands them. Separate multiple gradings  into individual Sites if you do not want them to interact with each other. Warning: Upon editing a grading, infills will disappear at will! Sometimes Gradings work brilliantly and other times you cannot get them to do the simplest thing correctly.


Although there is more involved in getting a Corridor up and running, for models needing constant editing and tweaking they are a real time-saver. They will help stave off greying hair more successfully that with the previous two modelling methods. Once you have been doing them for a while it becomes second nature and you will not notice the effort. It goes like this: Create Alignment > Surface Profile > Design Profile > Assembly > Corridor, then edit targets, chainages, assembly frequency, create surfaces. But that is a for another post. If you must adjust the design a dozen times, simply dragging a few alignment vertices or sub-assembly links that update the entire model will save you time.

A mixture of the above

Often the final model will be a composite composed of a corridor surface and multiple entity-based and sometimes grading surfaces. The trick is to be careful and descriptive with naming all the various surfaces so when it comes to ordering them in the Surface Properties Definition dialogue box so it is clear which is which and in what order they go. There is something satisfying about ticking all the boxes with everything in order and the model miraculously looks correct first go!

A note on boundaries

With all of these modelling techniques it is best to use a surface boundary polyline created by intersecting the surface with the topography or other base surface. Grading to a surface, especially when the feature line has a lot of vertices, can be slow and easily cause a lock-up and loss of work. Using corridor assemblies with links that daylight to a surface also slows things down and only accurately intersects the surface at the specified assembly frequency. Also, the start and end of the corridor can get messy. The only time we use a daylight link in an assembly is when using conditional sub-assemblies that need to know where a surface is in order apply the condition.


When it comes to creating your design surfaces, the above is just a quick rundown of the difference methods available to you. As with everything in Civil 3D there is a lot more depth in each of these options and as you explore them you will gain an instinctive understanding of which to use and when.

Feel free to leave any questions or comments below.

The CADD Monkey.