Revit

Concrete quantities in Revit: columns, beams, slabs by level

Concrete quantities in Revit 2027: beam, column and slab schedules by level, a Material Takeoff by grade, and why figures differ from hand takeoff.

  • TS. Nguyễn Mạnh Tuấn
  • 14 min read
Sheet KC-02.1 in Revit 2027: the level 2 structural plan, a 3D view and two quantity schedules for beams and slabs placed on the sheet Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

A cost estimator needs three figures: concrete by element type, concrete by level, and the total for the whole building. Those figures also have to agree with a traditional hand takeoff, or the documents come back.

Concrete quantities in Revit are read straight from the model geometry, so all three figures take minutes. But Revit handles the overlap between beams, slabs and columns in its own way, and that is where the numbers drift away from a hand takeoff. This article walks through fifteen steps in Revit 2027 and explains every source of difference. For the full workflow from modelling to structural drawings, the Institute runs a Revit Structure course.

Where concrete quantities in Revit come from

Every beam, column and slab in Revit carries a Volume parameter: the volume of the solid after it has been cut by its neighbours. A schedule only groups and sums those values, so when the model changes the schedule follows.

General schedule creation is covered in schedules in Revit, and reinforcement in rebar schedules in Revit. This article covers structural concrete only.

Preparing the model

You need a structural model with beams, columns and slabs built in the right categories: Structural Framing for beams, Structural Columns for columns, Floors for slabs. Every element needs a Structural Material that is a concrete material named after its grade. Modelling is covered in beams in Revit and structural floors in Revit.

This article is part of the Institute's Revit Structure series.

Concrete quantity schedule in Revit: beams by level

Step 1 — Check for in-place elements

Before building the schedule, look for elements modelled with Model In-Place. Select a suspicious element; if the ribbon shows Edit In-Place, it is an in-place family.

1 the Edit In-Place button on the contextual tab. 2 Reference Level and Structural Material left empty. 3 Volume still has a value Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

The sample model has five in-place elements in the Structural Framing category, the first of them a sloping roof slab. They have no reference level and no structural material, yet they do have a volume. In the beam schedule they become five rows with no level.

Step 2 — Open Schedule/Quantities

On the View tab, Create panel, click Schedules to open its menu.

The Schedules menu on the View tab, Schedule Quantities first and Material Takeoff third Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

Element schedules use Schedule/Quantities. Material Takeoff is kept for step 11.

Step 3 — Pick Structural Framing and name the schedule

The New Schedule dialog opens. Type Structural Framing into Category name search and the list shrinks to one line.

1 Category name search with the text typed. 2 a single category left. 3 the Name box renamed. 4 the Phase box Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

Name fills in Structural Framing Schedule; rename it so it is easy to find. Set Phase to the construction phase being measured, then click OK.

Step 4 — Find the right Volume field

Schedule Properties opens on the Fields tab. Type Volume into Parameter Name Search.

1 the word Volume typed. 2 three fields containing Volume, the concrete volume field is last Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

Three lines come back, and the first is Estimated Reinforcement Volume, an estimated rebar volume. The field you want is the last one, plain Volume.

Step 5 — Six fields for the beam schedule

Find each of the following fields and move it to the right-hand list.

The Scheduled fields list holding all six fields in column order Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering
FieldColumn in the schedule
Family and TypeBeam family and section
Reference LevelLevel of the beam, used for grouping
Structural MaterialConcrete material, that is the grade
Cut LengthBeam length after trimming at column faces
CountNumber of beams
VolumeConcrete volume

Use Cut Length rather than Length for the length column, because that is the length actually cast.

Step 6 — Group by level on Sorting/Grouping

Go to Sorting/Grouping. Set Sort by to Reference Level, tick Header and Footer, and leave the footer on Title, count, and totals. Set Then by to Family and Type.

1 Sort by level with Header and Footer. 2 Then by section. 3 Grand totals with a custom title. 4 Itemize every instance cleared Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

Tick Grand totals and type a title into Custom grand total title. Clear Itemize every instance so beams on the same level with the same section collapse into one row.

Step 7 — Turn on totals on Formatting

Skip this and the footer only counts beams. On Formatting, select Volume and change No calculation to Calculate totals. Do the same for Cut Length.

In Heading, rename the column to include the unit, for example V concrete (m³). Then click Field Format.

1 the Volume field selected. 2 Use project settings cleared. 3 Unit symbol set to None Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

The Format dialog follows the project settings by default: cubic metres, two decimal places, and an m³ symbol after every value. Clear Use project settings and set Unit symbol to None so each cell holds a bare number; step 15 explains why. Click OK twice.

Step 8 — Read the beam schedule by level

Beam concrete schedule grouped by level: five rows with no level at the top, four blocks 1F to 4F and a grand total Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

The sample model gives: level 1F 14 beams, 4.74 m³; 2F 16 beams, 3.92 m³; 3F 17 beams, 3.49 m³; 4F 24 beams, 5.11 m³. The whole schedule sums to 76 elements and 21.02 m³. The block with no level at the top is the five in-place elements from step 1, 3.76 m³ in total. The estimator has to check that block and assign it to the right item.

Columns, slabs and structural walls

Step 9 — Repeat for columns with Base Level

Repeat steps 2 to 7 with the Structural Columns category. Columns have no Reference Level; the field for grouping by level is Base Level.

Column concrete schedule grouped by Base Level: one block per level by section, 30 columns and 7.49 cubic metres in total Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

The sample model's column schedule: 30 columns, 7.49 m³. A column belongs to the level of its base, so a column running from level 1 to level 2 sits in the 1F block.

Step 10 — Filter structural slabs on the Filter tab

For slabs, use the Floors category, group by Level, and total both Area and Volume. The category also holds architectural finish floors, so it needs a filter.

Filter tab of the slab schedule: Filter by set to the Structural field, equals, Yes Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

Add the Structural field on Fields, then on Filter set Structural equals Yes. The tab has eight condition rows joined by And.

The sample model's slab schedule gives 11 slabs and 23.38 m³, and all 11 are marked Structural, including the 1.68 m³ blinding layer. So this filter removes finish floors but cannot separate blinding concrete; Material Takeoff does that in step 12. The Area column rounds to whole square metres by default, so reset its Field Format to two decimals if you need areas.

Structural walls work the same way with the Walls category. That category has no Structural field but has Structural Usage, which is the one to filter on.

Material Takeoff: splitting quantities by concrete grade

Element schedules tell you how much goes into beams and how much into columns. When the estimator asks "how much B20 concrete in the whole building", the answer is a Material Takeoff.

Step 11 — Create a multi-category Material Takeoff

Go back to View › Schedules and choose Material Takeoff. In New Material Takeoff, pick <Multi-Category> at the top of the list.

1 the Multi-Category line at the top of the list. 2 the Name box filled in Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

That line is hidden while the search box contains text; clear Category name search and it comes back.

Step 12 — Add Material: Name and Material: Volume

On Fields, add Material: Name, Material: Volume and Category. On Sorting/Grouping, group by Material: Name then by Category; on Formatting, set Calculate totals for Material: Volume.

Material Takeoff grouped by material: the B20 concrete group split into floors, columns, foundations and framing; blinding concrete in its own group Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

The @P21=BetongB20 group in the sample model: floors 21.70 m³, columns 7.49 m³, foundations 8.74 m³, framing 21.02 m³, 58.94 m³ in total. Blinding concrete @Po-BTLot is 1.68 m³ in a group of its own, just as an estimate separates it. The column and framing figures match the schedules from steps 8 and 9 to two decimals.

Autodesk's Material Takeoff Schedules page notes that Revit approximates when computing the volume of individual material layers, so small discrepancies can appear under some join conditions.

Step 13 — Keep only concrete on the Filter tab

The unfiltered takeoff also lists roof tiles, aluminium and paint. On Filter, set Material: Name contains followed by the part shared by the names of your concrete materials.

Filtering the sample model on BetongB leaves exactly the B20 group with 58.94 m³. With a shared naming convention for materials, one filter row covers every grade.

Revit quantity takeoff versus hand takeoff

Revit never counts the concrete shared by two elements twice; it belongs to whichever element "wins" where the two solids join.

Step 14 — Check one beam against a hand takeoff

Select a beam on the plan and read the Dimensions group in Properties.

Beam DY2.1 selected on the level 2 plan, Properties showing System Length, Cut Length and Volume Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

Beam DY2.1, section 220x400, on grid B of the sample model has System Length 14,465 mm, Cut Length 14,370 mm and Volume 0.859 m³. A hand takeoff of section times axis length gives 0.22 × 0.40 × 14.465 = 1.273 m³, almost half as much again as Revit.

The difference has three parts:

PartHow Revit handles it
Beam end framing into a columnTrimmed at the column face, so Cut Length is 95 mm shorter than System Length
Beam depth inside the 120 mm slabCounted in the slab; the beam keeps only the part below it, 0.22 × 0.28 × 14.37 = 0.885 m³
Intersections with columns along the beamThe small remainder, about 0.026 m³

Columns behave the same way: column C2.2, 220x400 and 3,900 mm long, gives 0.343 m³ by hand, while Revit reports 0.322 m³ because the part inside beams and slab is counted in those elements.

To change which element wins, use Modify › Geometry › Join › Switch Join Order: click the first element, then the second.

The Join menu on the Geometry panel open with three items, Switch Join Order last; Properties showing the volume of a column Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

Switching the join between beam DY2.1 and slab S120 on level 2 gives: beam up from 0.859 to 1.148 m³; slab down from 5.903 to 5.576 m³, slab area down from 49.19 to 46.47 m². The total of the two barely moves, 6.762 against 6.724 m³. Switching join order only moves quantity from one item to another.

To read the figures correctly, add up the Revit volumes of all elements and compare with a hand total that already deducts the overlaps. If beams and slabs are priced differently, agree first which item owns the overlap, then set the join order in the model to match.

Export quantities from Revit to Excel

Step 15 — Export the schedule to CSV

Open the schedule view and go to File › Export › Reports › Schedule. The save dialog is preset to CSV (delimited); click Save and Revit asks for options.

1 the Schedule appearance group with four checkboxes. 2 the Field delimiter box. 3 the Text qualifier box Photo: Screenshot of Revit 2027, sample model of the Institute of Information Technology in Civil Engineering

Exporting the beam schedule while the volume column still follows the project settings writes each cell as 1.51 m³: the number carries the unit symbol, and Excel reads it as text that cannot be summed. After step 7, the export writes plain 1.51. The file uses a decimal point, so on a machine set to decimal commas check the number columns after opening.

Rebar schedules fall into a thousands-separator trap that makes Excel split columns; the fix is in rebar schedules in Revit. Concrete schedules leave Use digit grouping off by default, so that trap is rarer here.

When the quantity schedule does not add up

SymptomCauseFix
Beam rows with no level and zero lengthIn-place elements in the Structural Framing categoryGive them their own item, or remodel with a real beam family
Volume column disagrees with PropertiesEstimated Reinforcement Volume picked, the first result for VolumeSwitch to the Volume field at the bottom of the list
Footer shows only a countNo Calculate totals on FormattingSelect Volume, change No calculation to Calculate totals
Slab schedule larger than the estimateFinish floors or blinding includedFilter Structural equals Yes; separate blinding with Material Takeoff
Volume column cannot be summed after CSV exportm³ symbol attached to every valueField Format: clear Use project settings, set Unit symbol to None
Beam and slab totals differ between two peopleDifferent join order in the two modelsCompare combined totals, then agree on Switch Join Order
Demolished elements in the scheduleSchedule Phase Filter set to Show AllSet Phase Filter and Phase to the stage being measured

Four common misconceptions

What people sayWhat Revit 2027 actually does
Revit double-counts the beam inside the slabNo; the overlap belongs to one of the two elements by join order
A Revit figure below the hand takeoff means missing elementsUsually the overlap has simply moved to the neighbouring element
Totals by grade mean adding several schedules by handA multi-category Material Takeoff groups by material in one schedule
Switching join order corrupts the concrete totalThe total barely changes; only the split between items moves

In short, how accurate concrete quantities in Revit are depends on the model: the right categories, assigned materials, and a join order that follows the estimating convention.

Frequently asked questions

How do I take off concrete in Revit level by level?

Group by level on Sorting/Grouping: beams by Reference Level, columns by Base Level, slabs by Level. Tick Footer and set Calculate totals for Volume.

How does Material Takeoff differ from Schedule/Quantities?

Schedule/Quantities lists elements, while Material Takeoff lists the materials inside them. For a total by concrete grade across the building, use a Multi-Category Material Takeoff.

Can blinding concrete be separated from slab concrete?

Yes, if the blinding layer has its own material. In the sample model the blinding uses a separate material, so the Material Takeoff puts it in its own 1.68 m³ group.

About the author

TS. Nguyễn Mạnh Tuấn — BIM lecturer at the Institute of Information Technology in Civil Engineering, Hanoi University of Civil Engineering