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
DEMOHXCLZZXXM3A001Putting 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 codeHXCL— HEXCLOUD as originatorZZ— applies to whole project (no zoning)XX— multiple levels coveredM3— 3D modelA— architecture001— 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:
- Underscores instead of hyphens. Some teams export with
DEMO_HXCL_ZZ...because Revit's default IFC export settings encourage it. ISO 19650-2 Annex A is explicit: hyphen separator. - Spaces.
DEMO HXCL ZZ XX M3 A 001.ifcbreaks every parser. Set IFC export naming template to enforce no spaces. - Missing role code. Common when the originator is a single-discipline studio that never thought to add it.
DEMO-HXCL-ZZ-XX-M3-001.ifcis 6 segments, missing role. - Embedded version stamps.
DEMO-HXCL-ZZ-XX-M3-A-001-rev2.ifcbreaks the regex. Versioning lives in the CDE, not the filename. - File extension casing.
.IFCon 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.