ISO 19650-2 Annex A·8 min read

The ISO 19650 naming convention, decoded

Seven segments, one hyphen between each. Get any of them wrong and you'll fail a public-tender BIM audit. Here's what each one means, with examples and a free validator.

ISO 19650-2 Annex A defines a structured naming pattern for every piece of information in a BIM project. The point of the standard is simple: when an asset model is delivered with 30,000 files across 12 disciplines, you need to be able to look at any filename and know what it is, who made it, and where it sits in the project, without opening it.

The pattern

{Project}-{Originator}-{Volume}-{Level}-{Type}-{Role}-{Number}.{ext}

Seven segments separated by hyphens. The full pattern is mandatory for model files (.ifc, .rvt, .dwg). For some document types you may see 6 segments where Volume is implied by context — the UK BIM Framework templates document the variants.

Each segment, with examples

ProjectDEMO
Project code defined in the BEP. Usually 3-6 alphanumeric characters. The same project code appears on every artefact across the project lifecycle.
Common error: Using long project names ('OfficeBuilding2026') instead of a stable code.
OriginatorHXCL
Organisation that produced the file. Typically a 4-letter abbreviation derived from company name. Defined in the BEP and locked at project kickoff.
Common error: Inconsistent abbreviations between teams ('HEXC' vs 'HXCL' vs 'HEX').
Volume / SystemZZ
Volumetric subdivision of the project. ZZ = applies to whole project; A, B, C = blocks; or system codes like M (mechanical), S (structural).
Common error: Using ZZ on everything because the project hasn't been zoned. ISO expects discipline volumes from kickoff.
LevelXX
Floor / level. XX = applies to multiple levels. 01, 02, 03 = ground, first, second. B1, B2 = basement levels.
Common error: Using actual elevation ('+3.000') instead of the level code.
TypeM3
What kind of artefact this is. M3 = 3D model, M2 = 2D model, DR = drawing, SP = specification, RP = report, SH = schedule. Full table is in ISO 19650-2 Annex A.
Common error: Mixing IFC schema versions into the type code ('IFC4' is not a valid Type).
RoleA
Discipline / role of the originator. A = architecture, S = structural, M = mechanical, E = electrical, P = plumbing, T = telecoms, Q = quantity surveyor, X = multidisciplinary.
Common error: Using full discipline name ('ARCH') instead of single-letter code.
Number001
Sequential number within the same {Project}-{Originator}-{Volume}-{Level}-{Type}-{Role} combination. Starts at 001.
Common error: Restarting numbering across volumes or roles, breaking sequence within a discipline.

Putting it together — a worked example

For an architectural 3D model of an office tower called Project Demo:

DEMO-HXCL-ZZ-XX-M3-A-001.ifc
  • DEMO — project code
  • HXCL — HEXCLOUD as originator
  • ZZ — applies to whole project (no zoning)
  • XX — multiple levels covered
  • M3 — 3D model
  • A — architecture
  • 001 — first revision in this combination

On a federated coordination IFC for the same project, you might see:

DEMO-HXCL-ZZ-XX-M3-X-001.ifc

Same pattern, different role (X = multidisciplinary federation).

Common reasons audits fail naming

Across a few hundred IFCs we've seen, naming failures cluster around five patterns:

  1. Underscores instead of hyphens. Some teams export withDEMO_HXCL_ZZ... because Revit's default IFC export settings encourage it. ISO 19650-2 Annex A is explicit: hyphen separator.
  2. Spaces. DEMO HXCL ZZ XX M3 A 001.ifcbreaks every parser. Set IFC export naming template to enforce no spaces.
  3. Missing role code. Common when the originator is a single-discipline studio that never thought to add it.DEMO-HXCL-ZZ-XX-M3-001.ifc is 6 segments, missing role.
  4. Embedded version stamps.DEMO-HXCL-ZZ-XX-M3-A-001-rev2.ifc breaks the regex. Versioning lives in the CDE, not the filename.
  5. File extension casing. .IFC on Windows confuses some Linux tooling. Lowercase consistently.

Configuring the export

The naming convention should be enforced at export, not by hand:

Revit

IFC Export Setup → File Header → set the filename template using project parameters. Map a shared parameter for each segment (Project Code, Originator, Volume, etc.) and combine them in the filename pattern. Save this as a project IFC export template and lock it in your BEP.

ArchiCAD

Options → Project Preferences → IFC Translators → Export filename. Use the placeholder syntax to compose the segments from project info fields.

Tekla Structures

File → Export → IFC → Settings, then configure the output filename via the project property mapping. Tekla doesn't have ISO 19650 templates out-of-the-box; build one once and share with the modelling team.

What our auditor actually validates

The naming check on this site uses the regex

/^[A-Za-z0-9_]+(-[A-Za-z0-9_]+){5,7}$/

which accepts:

  • 6 or 7 hyphen-separated segments (full or trimmed Annex A)
  • Alphanumeric within segments (digits OK, dots and underscores allowed inside a segment)
  • Anything between hyphens — we don't enforce specific Type/Role codes because BEP-defined extensions are common

A perfect match is reported as PASS (100). A partial match (4-5 segments) drops to WARN (50). Anything else fails (0).

The audit reports the segment count it detected and tells you the first place where the pattern broke — useful when you have 200 files to fix and want to spot the systemic mistake.

Beyond auditing

Auditing one model is the start. Running an ISO 19650 project is what we built the platform for.

CDE 19650 Cloud is the same compliance engine you just used — embedded in a full Common Data Environment with workflow automation, transmittals, issues, BEP generation and the openCDE API. Operational in 30 days.

  • Workflow WIP → Shared → Published → Archived per ISO 19650
  • Transmittals with formal acknowledgement and audit trail
  • Issues + RFI tracking with BCF 3.0 compliance
  • Auto-generated BEP, MIDP, COBie 2.4 exports
  • Single-tenant: dedicated DB, dedicated Azure Blob, your subdomain
  • 14 modules, 285 unit tests, GDPR by design