Core Concepts

QTO works by attaching structured tag data to Revit elements, then computing quantities from the model geometry and producing BoQ deliverables in formats your downstream tools can consume. Three ideas are worth knowing before you run anything: where the data lives, how tagging cascades from types to instances, and where the catalog of price-list items comes from.

The QTO data model

Extensible Storage (ES) — the authoritative store

Each QTO-tagged element carries an Extensible Storage (ES) entity holding the full tag payload. ES is the authoritative source of truth. If you ever see a discrepancy between ES and the Shared Parameter mirror (described below), ES wins.

Shared Parameters (SP) — mirror for external auditors

The add-in also mirrors a subset of the tag data to Shared Parameters bound to each element. Why mirror? Shared Parameters are visible in Revit's native UI, in schedules, and in IFC export. A third-party auditor who does not have the QTO add-in installed can still read the tag information.

Why dual storage

Dual storage is a deliberate cost: more transactions, more storage, more synchronization risk. It is paid for two specific reasons.

Element tagging states

StateMeaning
UntaggedElement has no QTO data.
Type-taggedElement inherits the tag from its type definition (most common state for series-produced elements).
Element-taggedElement has an explicit tag overriding the type — used for one-offs.
MixedType-tagged elements can be selectively element-overridden.

Type-based propagation

When you tag a type, every instance of that type inherits the tag automatically.

The catalog library

QTO matches Revit elements against entries in a catalog — a database of price-list items (called listini in Italian usage, Bordereau in French, Leistungsverzeichnis in German).

The catalog library is stored locally as a SQLite database. The schema is additive-only — schema migrations are numbered SQL scripts; existing catalogs always remain readable across add-in upgrades.

Future versions of the add-in (V1+) introduce AI-assisted catalog matching (QTOAI) and a shared remote catalog service.

Supported classification standards

QTO is designed for multi-jurisdiction work. The catalog library accepts entries classified under any of the major international standards alongside national price-lists.

Standard Authority Scope Typical use
MasterFormat / UniFormat / OmniClass CSI (US) Work results and elemental classification North American specifications and BoQ
Uniclass 2015 NBS (UK) Faceted, all-sectors UK / ISO 19650 workflows
GAEB DA XML GAEB (DE) Tender and award data DACH-region procurement
BC3 / FIEBDC-3 Spanish industry Decomposed prices Spanish market
BPU + CCTP French standard Unit prices + technical specs French public procurement
IfcCostItem / bSDD buildingSMART OpenBIM cost mapping Cross-vendor IFC-native workflows
Italian regional prezzari (XPWE) ACCA / regional bodies National First delivery format in Beta

Beta ships with XPWE for PriMus as the only delivery format (Pay tier). V3 opens the international Pay surface (IFC, GAEB, BC3). See the Changelog → for what is live in each release.

The QTO config file

QTO writes a configuration file next to your .rvt named AEC_QTO_Config_<project>.json. It captures project-level setup state (selected catalogs, mappings, phases, work categories).

This file is git-friendly (JSON) and travels with the project. Important: it can contain user identifiers — do not commit it to public repositories.

See also

Last updated 2026-05-19 • Applies to v0.9+