← Back to Blog

Understanding IDS for BIM Validation

A practical introduction to Information Delivery Specification (IDS) and how it enables automated BIM model validation.

IDSIFCOpenBIMBIM Validation

What is IDS?

Information Delivery Specification (IDS) is a buildingSMART standard that defines what information should be delivered in a BIM model. Think of it as a machine-readable contract between parties specifying exactly what data is required.

Unlike informal checklists or PDF documents, IDS files are structured XML that can be parsed and executed by validation software.

Why IDS Matters

Traditional BIM requirements often look like this:

"All walls must have a fire rating property"

This is ambiguous:

  • What's the property called? FireRating? Fire_Rating? Pset_WallCommon.FireRating?
  • What values are acceptable?
  • Does it apply to all walls or just specific types?

IDS removes ambiguity by defining requirements precisely.

IDS Structure

An IDS file contains specifications, each with:

  1. Applicability: Which elements does this apply to?
  2. Requirements: What must those elements have?
<specification name="Wall Fire Rating">
  <applicability>
    <entity>
      <name>IFCWALL</name>
    </entity>
  </applicability>
  <requirements>
    <property>
      <propertySet>Pset_WallCommon</propertySet>
      <name>FireRating</name>
      <value>
        <xs:restriction base="xs:string">
          <xs:pattern value="[0-9]+h"/>
        </xs:restriction>
      </value>
    </property>
  </requirements>
</specification>

Facet Types

IDS supports several facet types for defining applicability and requirements:

FacetPurposeExample
EntityIFC class typeIFCWALL, IFCDOOR
AttributeIFC attributesName, Description
PropertyPset propertiesPset_WallCommon.FireRating
ClassificationClassification codesUniclass Ss_25_10
MaterialMaterial definitionsConcrete, Steel

Validation Workflow

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   IFC Model  │────▶│  IDS Validator│────▶│    Report    │
└──────────────┘     └───────┬──────┘     └──────────────┘
                             │
                     ┌───────▼──────┐
                     │   IDS File   │
                     └──────────────┘

Getting Started

Tools for IDS

  • IDS Editor: buildingSMART's official editor for creating IDS files
  • IfcTester: Python library for IDS validation
  • Blender Bonsai: IDS validation built into the Bonsai BIM addon

Basic Validation with IfcTester

from ifctester import ids, reporter

# Load IDS specification
my_ids = ids.open("requirements.ids")

# Load IFC model
my_ids.validate("model.ifc")

# Generate report
reporter.Html(my_ids).report("results.html")

Best Practices

  1. Start simple: Begin with critical requirements, add complexity gradually
  2. Test iteratively: Validate IDS against sample models before deployment
  3. Document intent: Use IDS descriptions to explain why requirements exist
  4. Version control: Track IDS changes like code

Common Pitfalls

  • Over-specification: Requiring data that isn't needed
  • Ambiguous patterns: Regex that matches unintended values
  • Performance: Too many complex requirements slow validation

Conclusion

IDS transforms BIM requirements from ambiguous text into executable specifications. Combined with automated validation, it ensures consistent data quality across projects.

For teams serious about BIM data quality, IDS is essential infrastructure.

Resources