Quantity Take-off from IFC Models: A Practical Guide for Contractors
Where quantities live inside an IFC file, why they are often missing or wrong, and how to turn a model into a bill of quantities in your own cost codes (Excel, BC3 / Presto or your ERP) that you can re-run on every revision.
Short answer: an IFC model can give you reliable quantities when three things are true: elements carry base quantities (Qto_* sets) or clean geometry, each element can be mapped to a cost code with rules, and the process is automated so it re-runs on every revision instead of being redone by hand. The rest of this guide explains each step and the pitfalls that make take-off from BIM fail.
Where quantities live in an IFC file
IFC stores quantities in element quantity sets (IfcElementQuantity), attached to each element through IfcRelDefinesByProperties. buildingSMART standardises the base sets, so the same names appear whichever tool exported the model:
| Element | Quantity set | Typical quantities |
|---|---|---|
| Wall | Qto_WallBaseQuantities | Length, Height, Width, GrossSideArea, NetSideArea, NetVolume |
| Slab | Qto_SlabBaseQuantities | Width (thickness), Perimeter, GrossArea, NetArea, NetVolume |
| Column / beam | Qto_ColumnBaseQuantities, Qto_BeamBaseQuantities | Length, CrossSectionArea, NetVolume, NetWeight |
| Door / window | Qto_DoorBaseQuantities, Qto_WindowBaseQuantities | Width, Height, Area |
| Space | Qto_SpaceBaseQuantities | NetFloorArea, GrossFloorArea, NetVolume |
Gross values ignore openings and net values subtract them, which is exactly the difference between measurement rules. Pick the one your contract measurement standard asks for.
Why IFC quantities are often missing or wrong
- The export option was off. Revit, Archicad and most authoring tools only write base quantities when "Export base quantities" (or equivalent) is ticked.
- Custom sets instead of standard ones. Some models put areas in a company set such as
Pset_Company_Quantities, or only in the type, not in the instance. - Modelling, not exporting, is the problem. A slab modelled through a wall, a wall split by level or a beam drawn twice produces wrong quantities however good the exporter is.
- Units. IFC declares its units in
IfcUnitAssignment. A model in millimetres exports lengths in millimetres unless the reader converts them.
A good take-off tool checks all of this before it counts anything: it flags elements without quantities, falls back to geometry when needed and reports the units it found.
Mapping elements to your cost codes
Contractors do not price "IfcWall": they price “brick partition 11.5 cm, plastered both sides” under a specific code in their price database. The mapping is the real work, and it should be done with rules, not by hand:
IFC class = IfcWallANDType name contains 11.5ANDPset_WallCommon.IsExternal = false→ codeE07TL010, measured byNetSideAreain m².IFC class = IfcSlabANDPredefinedType = FLOORANDMaterial contains HA-25→ codeE05HLA010, measured byNetVolumein m³.
Written once, the rules apply to every revision of the model and to the next project with the same standards. You can prototype rule sets visually in the free JidokaBIM IFC viewer: the same AND / OR / NOT conditions colour the elements each rule would measure, so gaps and overlaps are obvious before anything is priced.
Exporting the bill of quantities
Once every element has a code and a measured quantity, the export is the easy part:
- Excel for quick reviews and for teams that price in spreadsheets.
- BC3 (FIEBDC-3), the standard exchange format in Spain, imported directly by Presto, Arquímedes and most Spanish estimating software.
- Your ERP through its import format or API, keyed by the element's IFC
GlobalIdso changes can be traced.
Re-running on every revision
The real saving is not the first take-off but the tenth. When take-off is automated, a new model revision produces a diff: which elements appeared, disappeared or changed quantity, and the effect on each cost code. That is what lets an estimating team answer “how much did this revision cost?” in minutes instead of days.
Checklist before you trust IFC quantities
- Base quantities exported (
Qto_*sets present on the main classes). - Units checked and converted.
- No duplicated or overlapping elements in the classes you measure.
- Every measured element matched by exactly one cost-code rule (unmatched and double-matched elements reported).
- Results compared against a manual measurement on one representative zone.
Need it in your own format?
JidokaBIM builds quantity take-off tools for construction companies that read IFC or Revit, apply your cost-code rules and export to Excel, BC3 / Presto or your ERP, with a revision-to-revision diff. Each project has a fixed price and is delivered with its source code.