Classification taxonomy¶
The tool adopts a dual classification standard for all Bill of Quantities items, assemblies, and materials, with an optional third layer for global material comparability.
Rationale¶
Life-cycle assessments in Sub-Saharan Africa often use ad-hoc, project-specific work-item codes (in this project, the French Devis Descriptif tradition — A.III.1, A.V.1, ...). These codes are readable to the local engineering team but unreadable to any tool, database, or reviewer outside the project. Locking the machine-readable classification to open, hierarchical, internationally recognised standards makes the LCA output portable, comparable, and defensible.
Primary — Uniclass 2015¶
- Owner: UK Construction Innovation Hub (formerly NBS).
- Source: https://uniclass.thenbs.com
- Licence: CC-BY.
- Scope: hierarchical classification covering Entities, Activities, Elements/Functions, Systems, Products, Complexes, Spaces, Zones, Roles, PIM, and CAD categories.
- Applied at: assembly level and material level.
- Storage: downloaded tables committed to
backend/app/data/classification/uniclass/with aSOURCE.mdrecording the download date, source URL, and Uniclass release version.
Secondary — IFC entity codes (ISO 16739)¶
- Owner: buildingSMART International.
- Standard: ISO 16739-1:2018 Industry Foundation Classes (IFC) for data sharing in the construction and facility management industries.
- Applied at: assembly level (every assembly declares an IFC entity, e.g.
IfcWall,IfcSlab,IfcRoof). - Purpose: BIM interoperability. A Phase 3+ IFC importer becomes viable because every assembly already carries an IFC entity code.
Optional — UN CPC codes (material level)¶
- Owner: United Nations Statistics Division.
- Standard: Central Product Classification, currently version 2.1.
- Applied at: material level, only where global material comparability matters (e.g. cross-country cement comparisons).
- Purpose: enables trade-data and CPC-indexed background LCI cross-references.
Display labels¶
The team's French Devis Descriptif codes remain visible in every BoQ export and every UI listing as human-readable labels. They are stored in the schema as display_code, but they carry no semantic weight — the classifier used for any calculation, filter, aggregation, or downstream export is Uniclass.
Mapping table¶
A french_devis → uniclass → ifc mapping table is produced by the sub-chat that reverse-engineers reference/excel/1a_boq_input_lca.xlsx in Phase 1 Step 1. The table is stored in the database and versioned as project data.
Enforcement¶
- Every
AssemblyPydantic schema (from Session 3B onward) requiresuniclass_codeandifc_entity_codeas non-nullable fields. - Every
Materialschema requiresuniclass_code;un_cpc_codeis optional. - CI regression tests fail if any seed material or seed assembly is missing its required classification codes.