Audit Publishing & Dynamic Aspects

Purpose

A digital twin validation report loses its value the moment design files advance without an immutable audit trail. Traditional BIM workflows rely on disconnected Excel spreadsheets, BCF files, or static PDF clash reports that detach from the 3D model within days.

BIM Checker solves this by publishing compliance results directly into the live iModel database as native Dynamic BIS Aspects (ElementUniqueAspect). Each evaluated element permanently carries its audit verdict, measured dimensions, statutory clause reference, and timestamp directly within the iModel container.

BIM Checker Verified Audit Run

Dynamic Schema Injection Engine

IFCDynamic.Pset_BIMChecker_ExecutionAudit (Container Level)

IFCDynamic.Pset_BIMChecker_Fail (Injected onto Failing Elements)

Database Audit Tables (Historical Trend Archive)

Bentley iTwin Hub (Live Changeset Advance)

Discoverable by any iTwin Viewer / PowerBI / MicroStation


Native Dynamic BIS Aspects

When an auditor clicks Publish to iModel, BIM Checker dynamically generates and injects specialized property sets into the active changeset:

1. Execution Audit Aspect (Pset_BIMChecker_ExecutionAudit)

Attached to the project container root, recording global audit provenance:

2. Element Defect Aspect (Pset_BIMChecker_Fail)

Injected directly onto non-compliant physical elements (e.g., doors, ducts, walls, columns):

-- Querying published defects directly in any standard iTwin tool:
SELECT 
  e.UserLabel,
  ec_className(e.ECClassId, 's.c') AS ClassName,
  aspect.RuleId,
  aspect.MeasuredValue,
  aspect.RequiredThreshold,
  aspect.DefectDescription
FROM 
  IFCDynamic.Pset_BIMChecker_Fail aspect
JOIN 
  bis.Element e ON e.ECInstanceId = aspect.Element.Id

Why Dynamic Aspects Over Auxiliary IFCs?

[!CRITICAL] IFC Ingestion Invariants: Many legacy tools attempt to write audit data back by exporting an auxiliary IFC file with null geometry (Representation = $) and re-ingesting it via a bridge connector. This is dangerous and prohibited:

  1. Auxiliary IFC entities placed at origin $(0,0,0)$ distort the project bounding extents, collapsing camera viewports across hundreds of kilometers.
  2. If an auxiliary IFC entity shares a 3D element's FederationGuid with null geometry, the bridge wipes the source 3D geometry stream.

BIM Checker writes native Dynamic BIS Aspects directly to the iModel via RPC API, leaving 3D geometry intact, preserving spatial coordinates, and completing in milliseconds without launching external bridges.


Synchronization Lock Enforced

To guarantee total data integrity and prevent corrupt changeset trees:


The Verified Audit Provenance Banner

When an iModel with previously published audits is opened in BIM Checker: