Corridor Volume Calculations: Quantity Takeoffs
Creating a quantity takeoff report can be a confusing process for a beginner, but it really
isn’t as complicated as it first appears. I will attempt to break down the process into the
key components and explain the various options and pitfalls present in each.
First, let’s define a quantity takeoff. A quantity takeoff, or quantity takeoff report, is
simply a volume report for a set of x-sections generated from a corridor model. Volumes
are calculated using the average end area method (with an option for curve correction).
In order to produce the quantity takeoff report, the following elements must be present in
1) A valid corridor model containing:
a. Corridor shapes or surfaces (part of the corridor model)
2) A sample line group containing two or more sample lines
a. For Earthwork calculations, an existing ground surface must be both
present in the model and be sampled by the sample lines in the same
sample line group as is being used for the corridor object.
3) Quantity Takeoff Criteria
4) A report “style sheet”
I will go over each of these items in detail with the exception of the last item, the ‘style
sheet’. For now, we will simply stick with the style sheets supplied with a default
installation of Civil 3d.
After briefly describing the basic elements necessary to produce a quantity takeoff report,
I will go through the actual steps necessary to produce this report in a real (more or less)
Corridor Model, shapes, and surfaces:
A corridor model consists of several component objects.
First, an alignment must be defined for centerline. A profile, or vertical alignment, must
then be defined for that alignment. The combination of the two objects forms a Baseline.
Baselines are used to locate the sections, constructed from the assembly objects, in space.
An assembly object, which is a collection of subassembly objects, must be created and
must contain at least one subassembly in order to produce a model. A subassembly is in
essence a piece of the roadway such as a lane, shoulder, curb, etc. Subassemblies will be
critical in creating quantity takeoffs, so I will spend a little time on these objects.
A subassembly object consists of a collection of points, links, and shapes. A point is
simply an endpoint of a link. A link corresponds to a design surface and is a straight line
between two points. A shape is the area bound by three or more links. All three object
types may be assigned codes. Also, subassemblies may target other objects such as
surfaces, alignments, and profiles to determine a portion of their geometry.
Subassemblies with similar attributes, such as lanes and shoulders, should use a
consistent set of codes for the constituent points, links, and shapes. These codes allow
points to be connected in the corridor model to form feature lines, links to be used to
define surfaces, and ultimately, shapes can be used by quantity takeoffs to calculate
volumes. The formation of feature lines is automatic in the corridor model. Surfaces
must be manually defined and explicitly defined based on one or more link codes.
Shapes don’t really get used until you are ready to generate a quantity takeoff report.
Once a corridor model has been created by defining a Baseline, inserting the proper
assembly along that baseline (or along a portion of it – a concept referred to as a
‘Region’, which is beyond the scope of this document), and setting the target objects for
the subassembly parameters as required, you can create a corridor surface. Both the links
and the points created by the subassemblies are used, although the use for the points may
not be obvious at first. A corridor surface first created, and is then defined based on the
desired link codes. After the corridor surface has been defined, you must add an outside
boundary for the surface based on the corridor’s feature lines (this is where the points
come into play – they were used to generate the feature lines). The outside boundary will
prevent the surface from being modeled in concave sections of the corridor model (i.e.
regions where degenerate triangles are built that bridge concave edges of the model).
One other thing to note about corridor surfaces is that they behave essentially the same as
a regular surface. They are triangulated using Delaunay triangulation and are bound by
the same constraints a normal surface has. For example, you cannot include link codes
that overlap vertically in your sections. If you do, you will have introduced ambiguity
with respect to the elevation of the surface within the overlapping region, and the
resulting surface will be somewhat unpredictable in this region. It is for exactly this
reason that multiple codes are usually used for links that may become part of more than
Sample Line Groups:
A sample line group is simply a collection of sample lines.
A sample line is a line segment that is used to sample, or section, a corridor model. A
sample line can sample multiple data sources, both surfaces and corridors. The resulting
sampled data is used to produce a x-section view, and for our purposes, a quantity takeoff
Corridor surfaces will appear in the data sources grid control within the sample line
group/sample line definition. Corridor shapes are automatically sampled based on the
corridor being used as a data source. Regular surface may also be sampled – this is how
the Existing Ground surface data gets into the x-sections.
In order to produce a quantity takeoff report that gives earthwork, or cut/fill volumes, you
must sample the existing ground surface in the same sample line group you will be using
to produce the quantity takeoff report.
Quantity Takeoff Criteria:
The Quantity takeoff criteria object defines what materials are present in the design, and
how they are represented in the x-sections (i.e. either as shapes or as areas between two
or more surfaces). The shape and surface names used in the criteria are not the actual
shape/surface names from the x-sections…they are placeholders. The actual x-section
data gets mapped to these placeholders at the time the report is generated.
When defining materials, generally speaking it is best to use Shapes for “Structure”
materials, and surfaces to define earthwork materials (i.e. cut/fill, etc). You can use
surfaces to define structure materials, but this will require you to create a corridor surface
for each layer of the design, plus a corresponding outer boundary for the layer. Without
the boundary, the degenerate triangles present in the surface along the concave edges may
adversely affect volume calculations.
I’ve created a project to demonstrate exactly how to put this process into use. Anyone
familiar with CAiCE will probably recognize this as the SR22 project often used for
training and testing. The existing ground surface, alignment, and the design profile were
imported into a new drawing (based on the Imperial by Style template) from the CAiCE
project using LandXML.
The assembly is simple. It is symmetrical about the baseline and consists of the
following subassemblies, inserted in this order, on each side:
The subassemblies are inserted using the default parameters. This results in a simple 4
lane roadway with shoulders and catch slopes and no median. The lane/shoulder
subassemblies have 2 pavement layers, a base layer, and a subbase layer. Each of the
layers is defined by both coded links and coded shapes.
Once the assembly object was created, I used it to create a simple corridor along the
baseline defined by the alignment and profile imported from the CAiCE project. When
mapping the logical names in the corridor properties, I only set the object names for the
target surfaces for the DaylightGeneral subassembly. The other subassemblies allowed
for logical name mapping, but for the purposes of this exercise, the mapping was not
The next step was to create a corridor surface for calculating earthwork volumes. The
surface should be created along the bottom-most links for the design. With the default
codes assigned to the links, this was accomplished by defining the surface using the links
with the “Datum” code. I called this surface “Grade.” I also created a “Top” surface that
can later be used for visualization or construction staging purposes. It should be noted
that the “Top” surface is meaningless for volumetric calculations and should not be used
for such. The corridor surface definitions are shown in the screenshot below:
After creating both of these surfaces, I created outside boundaries for each along the
“Daylight” feature lines. The boundary is located along the extents of the valid surface
data and effectively masks the degenerate surface information created along the concave
edges of the model.
Once the corridor surface necessary for calculating the earthwork volumes had been
created, the next step was to create a sample line group (and the requisite sample lines).
The sample line group was set up to sample the corridor surfaces and the “EXIST”
At this point, all that is missing is an appropriate quantity takeoff criteria object. This
was defined from scratch…a material was created for each layer, and separate materials
were used for cut and fill for the earthwork. The earthwork materials are defined as
existing above and below two respective surfaces. The structure quantities (pavement,
base, subbase) are defined using shapes. Again, this circumvents the need for creating
corridor surfaces (and the associated boundaries) for every layer. This keeps the process
as simple as possible and avoids performance issues that can arise from having too many
surfaces defined for a particular corridor. The quantity takeoff criteria used is shown
The surfaces used to define the “Excavation” material are similar to what is used in the
“Imported Borrow” material, although the “condition” fields are exactly opposite (Below
EXIST and Above Grade). Note that all of the “Structure” quantities are defined using
shapes, and the “Cut” and “Fill” quantities use bounding surfaces. This object can also
be used to define expansion factors for the materials that will automatically be included
in an earthwork report. I have left the factors all set to 1.000.
For CAiCE users, this object is akin to an earthwork table, but there are several
remarkable differences. First, in CAiCE, you must define your material layers based on
surfaces (i.e. x-section link feature codes) – there is no concept of a ‘shape’ in CAiCE x-
sections. Second, the actual surface names are not used here…the surfaces defined in this
table are placeholders. When creating the quantity takeoff report, the actual corridor or
DTM surface names are mapped to the placeholder surfaces defined in this table. Third,
there is a major difference in the process used to handle earthwork and structure volumes.
In CAiCE, the earthwork and structure quantity calculations are best split into two
separate reports based on two separate earthwork tables. This is because of the
potentially complex interaction between the existing ground surface and the design
surfaces and the fact that material areas are not allowed to overlap in CAiCE in the same
Now that the quantity takeoff criteria has been defined, a quantity takeoff report can be
generated using one of the default style sheets provided with Civil 3D. The style sheets
are used to define the format of the report. How they do this is beyond the scope of this
document. For now, we will limit the discussion to two of the three style sheets installed
with Civil 3d.
The first style sheet, and the most appropriate one for this application, is the Select
Material style sheet. This produces a volume report broken down by material name. The
report contains all materials at each sampled station, the total area for that material in the
x-section, the incremental volume between the current and previous stations, and the
cumulative volume up to that station. To generate the report, make sure that this style
sheet is selected, and select the quantity takeoff criteria object set up for use with this
design (note that quantity takeoff criteria should be generic for many different designs
with similar x-sections with the similar material layers). Once this has been done, all that
is left to do is to map the x-section shapes and surfaces to the placeholder objects defined
in the quantity takeoff criteria. See the screenshot below for this mapping:
Note that the EXIST and Grade surfaces called for in the quantity takeoff criteria must be
defined for each material separately. For this design, the surfaces are the same for each
material, so the “<Click here to set all>” option may be used. Also note that the corridor
surfaces and shapes follow the naming convention <Corridor Name><space><Corridor
Surface Name> and <Corridor Name><space><Shape Name>, respectively.
There is an option for curve correction in here as well. Exactly how this functions is
beyond the scope of this document, but basically this allows you to correct the volume
calculations to account for the curvature of the alignment. This becomes necessary when
the areas being used to calculate the volumes are asymmetrical about the baseline
alignment and are located along a curved section of the alignment. The more eccentric
the area is with respect to the baseline, the more the volume will be affected by the curve
in the alignment.
There is also an option to export the data to XML…this simply creates an XML
document with the calculated quantity data. It is not necessary to use this option when
creating a report.
The report generated from the above criteria and style sheet looks like this:
Area Type Area Inc.Vol. Cum.Vol.
Sq.ft. Cu.ft. Cu.ft.
Asph - Bot Layer 5.31 NA NA
Asph - Top Layer 5.31 NA NA
Base 21.31 NA NA
Excavation 0.00 NA NA
Imported Borrow 922.03 NA NA
SubBase 72.98 NA NA
Asph - Bot Layer 5.31 4.92 4.92
Asph - Top Layer 5.31 4.92 4.92
Base 21.31 19.73 19.73
Excavation 0.00 0.00 0.00
Imported Borrow 814.61 804.00 804.00
SubBase 72.98 67.58 67.58
Asph - Bot Layer 5.31 4.92 9.84
Asph - Top Layer 5.31 4.92 9.84
Base 21.31 19.73 39.47
Excavation 0.00 0.00 0.00
Imported Borrow 724.06 712.34 1516.34
SubBase 72.98 67.58 135.15
Note that both the earthwork materials, “Imported Borrow” and “Excavation” are
included in the same report as the structural section quantities.
Now, let’s take a look at a report generated using the “Earthworks” style sheet:
Cum. Cum. Cum.
Cut Cut Reusable Fill Fill Cum.
Cut Reusable Net
Station Area Volume Volume Area Volume Fill Vol.
Vol. Vol. Vol.
(Sq.ft.) (Cu.ft.) (Cu.ft.) (Sq.ft.) (Cu.ft.) (Cu.ft.)
(Cu.ft.) (Cu.ft.) (Cu.ft.)
160+00.000 0.00 0.00 0.00 922.03 0.00 0.00 0.00 0.00 0.00
160+25.000 0.00 0.00 0.00 814.61 804.00 0.00 0.00 804.00 -804.00
160+50.000 0.00 0.00 0.00 724.06 712.34 0.00 0.00 1516.34
Note that the numbers agree with the “Imported Borrow” material quantities above. At
this point in the design there is no cut material to compare against. If there were, the
volume reported by the “Earthworks” report would agree with the algebraic sum of the
“Imported Borrow” and “Excavation” quantities in the first report. These two materials
are defined between the same two surfaces, which are also the same surfaces used to
generate the second report. The difference is that in the second report, Cut and Fill are
considered the same material, so the volume is the algebraic sum of the two.