Back to the BIM & IFC blog
Tools & comparisons · 2026-10-16 · 9 min
Quantity Takeoff from an IFC Model, in the Browser: Net, Gross and the Elements That Have No Quantities
An IFC usually carries its own quantities — NetSideArea, GrossVolume, Length — but adding them up naively counts every wall twice and hides the elements that have none. How to take off a selection so the total is one you can price, and how to tell when it is not.
Quantity Takeoff from an IFC Model, in the Browser: Net, Gross and the Elements That Have No Quantities — IFC Viewer Online article cover
Somebody asks "how many square metres of partition are on level 2?" and the model is right there. Most IFC exports already carry the answer: every wall, slab and beam can hold an IfcElementQuantity with its lengths, areas, volumes and weights, written by the authoring tool at export. The problem is not getting a number. It is getting a number that is neither double-counted nor silently incomplete.
Key takeaways
- Select what you want to count — by click, by box, by type or by storey — and run the takeoff from the Measure panel.
- One value per element per kind, net before gross: NetSideArea beats GrossSideArea, NetVolume beats GrossVolume. The column tells you which was used.
- Coverage is part of the answer. "28/40" next to a volume means twelve elements are missing from the total.
- Group by IFC class, by type or by storey, then copy the table into a spreadsheet or download it as CSV.
- The quantities are the model's. If they are wrong, the takeoff is faithfully wrong — validate the model first.
Try it: take off a real model
Opens a sample IFC with the Measure panel. Select a few elements (or a whole storey from the tree) and press "Take off" in the panel.

Open the interactive IFC viewer
Where the quantities in an IFC come from
Quantities are not computed by the viewer from the triangles. They are written into the file by the authoring tool, as property-set-like objects called IfcElementQuantity, usually named after the standard base quantity sets: Qto_WallBaseQuantities, Qto_SlabBaseQuantities, Qto_BeamBaseQuantities and so on [ifc-qto]. Revit, Archicad, Tekla and Allplan all export them, but usually only when an export option such as "Export base quantities" is ticked.
That has two consequences. The numbers follow the authoring tool's own rules — openings deducted or not, layers joined or not — which is usually what you want. And a model exported without that option has no quantities at all, however good its geometry looks.
| Element | Typical quantities | Which one the takeoff uses |
|---|
| Wall | Length, Height, Width, NetSideArea, GrossSideArea, NetVolume, GrossVolume | Length; NetSideArea; NetVolume |
| Slab | Width, Perimeter, NetArea, GrossArea, NetVolume, GrossVolume | Perimeter; NetArea; NetVolume |
| Beam / column | Length, CrossSectionArea, OuterSurfaceArea, NetVolume, NetWeight | Length; OuterSurfaceArea; NetVolume; NetWeight |
| Duct / pipe segment | Length, OuterSurfaceArea, GrossWeight | Length; OuterSurfaceArea; GrossWeight |
| Door / window | Width, Height, Area | Area (and the count) |
The double-counting trap
A wall with NetSideArea 10 m² and GrossSideArea 12 m² is one wall with 10 m² of finish, not 22 m². Yet "sum every quantity of type Area" — what a quick script or a generic property export does — gives 22. On a floor of partitions the total is roughly doubled, and the error is invisible because each individual number is right.
The rule the takeoff follows is simple and stated in the table: each element contributes one value per kind (count, length, area, volume, weight), taken from a priority list that puts net before gross. Hover a total to see which quantity names it came from; when an estimator prices gross, the CSV says so per row.
Coverage: the number next to the number
The most expensive takeoff error is not a wrong value. It is a missing one. Twelve walls exported from a linked model without base quantities simply do not appear in a sum, and nothing about the total looks suspicious.
So every total carries its coverage. A small asterisk marks a column where not every element in the group had the quantity, the tooltip says "28 of 40 elements have it", and a line under the table counts the elements that carry no quantities at all. The CSV exports coverage as its own column, so the person who receives the file sees it too.
- Coverage 40/40 — the total is the model's full answer for that group.
- Coverage below the count — some elements have the quantity, some do not. Usually a mixed export (two tools, two settings).
- No quantities at all — re-export with base quantities on, or measure those elements by hand with the area and distance tools.
Grouping: class, type or storey
The same selection reads differently depending on the question. By IFC class answers "how much wall, slab and beam?"; by type answers "how many metres of W-200 versus W-100?", which is what a bill of quantities is priced on; by storey answers "what is on level 2?", which is how a site sequences work. Switch the grouping and the table and the CSV follow.
Selecting the right elements is half the job. Pick by type or storey from the model tree, or by class from a search. When the classes themselves are wrong — walls exported as IfcBuildingElementProxy — the grouping exposes it immediately; common IFC model errors explains why that happens and how to fix it in the export.
From the table to the estimate
- Validate first. A model with wrong units or proxies everywhere gives a precise-looking, wrong table.
- Select the scope — a storey, a type, a package — and run the takeoff.
- Check coverage. Anything below full gets a decision: re-export, measure by hand, or note the exclusion.
- Copy (it pastes as columns in Excel or Sheets) or download the CSV. In locales that write decimals with a comma, the CSV uses a semicolon so the numbers open as numbers.
- Apply your measurement rules, waste and prices in the estimating tool. The model quantity is the start of the bill, not the bill.
Quantity Takeoff from an IFC Model, in the Browser: Net, Gross and the Elements That Have No Quantities