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.
When an auditor clicks Publish to iModel, BIM Checker dynamically generates and injects specialized property sets into the active changeset:
Pset_BIMChecker_ExecutionAudit)Attached to the project container root, recording global audit provenance:
AuditId: Unique audit execution GUID.ChangesetId: Exact Bentley changeset hash verified during the run.TotalElements: Total physical and spatial elements evaluated.PassCount & FailCount: Verified quantities of compliant vs defective assets.PassRate: Percentage compliance score.AuditorEmail: Identity of the licensed compliance reviewer.Timestamp: ISO 8601 UTC timestamp of execution.Pset_BIMChecker_Fail)Injected directly onto non-compliant physical elements (e.g., doors, ducts, walls, columns):
RuleId: Identifier of the violated statutory rule (e.g., HOSP-EVAC-001).StandardClause: Regulatory clause citation (e.g., NHS HBN 00-04 Section 4.2.1).MeasuredValue: Exact dimension measured in the model (e.g., 841 mm).RequiredThreshold: Statutory minimum (e.g., 1200 mm).DefectDescription: Clear explanation (e.g., Door effective clear width 841mm < 1200mm required for hospital bed transfer after frame stop deductions).-- 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
[!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:
- Auxiliary IFC entities placed at origin $(0,0,0)$ distort the project bounding extents, collapsing camera viewports across hundreds of kilometers.
- If an auxiliary IFC entity shares a 3D element's
FederationGuidwith 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.
To guarantee total data integrity and prevent corrupt changeset trees:
Waiting, Queued, Running, Executing).🔒 Synchronization in progress on changeset cs-90fa2... Publishing locked.
Completed), the Publish button unlocks, allowing auditors to publish verified verdicts against the finalized changeset.When an iModel with previously published audits is opened in BIM Checker:
IFCDynamic audit aspects in under $50\text{ms}$.Verified Audit: Passed 92.4% (Audited by glen.worrall@candcconsulting.co.uk on Changeset 7dc6139)