HOSP-PLN)Healthcare facilities require strict alignment between spatial design delivery and contractual architectural briefs. Over-building escalates capital and operational lifecycle costs, while under-building violates NHS clinical space standards and statutory accreditation.
$\text{Gross Enclosed Area} = \sum_{s \in \text{Spaces}} \text{Area}(s) \quad \forall s \notin \text{DeductionFilter}$
$\text{Variance %} = \frac{\text{Gross Enclosed Area} - \text{Planned GFA}}{\text{Planned GFA}} \times 100$
$\text{Compliance Condition}: \quad |\text{Variance %}| \le \text{MaxVariancePercent} ; (2.0%)$
{
"plannedGfa": 25000,
"maxVariancePercent": 2.0,
"unit": "m²",
"comparisonOperator": "<="
}
When architectural models are exported from Autodesk Revit without explicit metric project units, room areas are frequently exported in square feet ($\text{ft}^2$) while linear dimensions remain in meters ($\text{m}$).
BIM Checker automatically cross-references reported room property areas against the element's 2D bounding geometry. If an imperial square-foot unit export leak is detected, the engine transparently normalizes the value to metric square meters ($\text{m}^2$) to prevent false statutory brief failures.
| Model Platform | Required Entity & Category | Property / Parameter | Purpose |
|---|---|---|---|
| Autodesk Revit | OST_Rooms or OST_Areas |
Area (Computed from Room Boundaries) |
Raw area calculation per enclosed boundary |
| Autodesk Revit | OST_Rooms |
Name / Department |
Deducting plant, shaft, and riser non-usable spaces |
| Autodesk Revit | OST_Levels |
Elevation / Name |
Associating spaces with storey elevations |
| IFC4 / IFC2x3 | IfcSpace |
Qto_SpaceBaseQuantities.GrossFloorArea |
Standardized gross floor area quantity |
| IFC4 / IFC2x3 | IfcSpace |
Qto_SpaceBaseQuantities.NetFloorArea |
Standardized net floor area quantity |
| IFC4 / IFC2x3 | IfcSpace |
Name / LongName |
Semantic deduction matching |
| Bentley BIS | bis.SpatialLocationElement |
UserLabel, CodeValue |
Element identification |
| Bentley Dynamic | IFCDynamic.IfcElementQuantity |
GrossFloorArea, NetFloorArea |
Dynamic BIS harvested aspects |
Export Base Quantities so Qto_SpaceBaseQuantities is generated.| Clinical Space Category | Keyword Filter | Minimum Area ($\text{m}^2$) | Clinical Justification |
|---|---|---|---|
| Consultation / Exam Room | EXAM, CONSULT, PHLEBOTOMY |
$\ge 12.0\text{ m}^2$ | Patient couch, doctor desk, and accessibility zone |
| ICU Single Bed Room | ICU ROOM, ICU, CRITICAL CARE |
$\ge 26.0\text{ m}^2$ | Medical pendants, ventilators, 360° sterile access |
| Operating Theatre (OR) | OR, OPERATING, THEATRE |
$\ge 40.0\text{ m}^2$ | Anaesthetic zone, surgical team perimeter, laminar flow |
{
"nominalThreshold": 12.0,
"roomThresholds": {
"EXAM": 12.0,
"CONSULT": 12.0,
"ICU": 26.0,
"OR": 40.0
},
"unit": "m²",
"comparisonOperator": ">="
}
"Clinical Space 'OR-04' on Level 3 has an area of 36.40 m², failing NHS HBN 00-01 minimum required area of 40.00 m² (shortfall: -3.60 m²)."
Consultation 01, Exam Room A, OR-Suite 2).Area parameter must be non-zero and computed from physical boundaries.bis.InformationPartitionElement).{
"nominalThreshold": 19.0,
"roomThresholds": {
"BEDROOM": 19.0,
"IN-PATIENT": 19.0,
"EN-SUITE": 4.5,
"WC": 4.5
},
"unit": "m²",
"comparisonOperator": ">="
}
A common defect in architectural Revit/IFC authoring is modeling the bedroom and en-suite as a single continuous room polygon (e.g. $22.5\text{ m}^2$). This fails statutory audits because:
Solution: Separate the bedroom and en-suite into two distinct bounded spatial entities separated by a physical partition wall and room separation lines.
Run this query in BIM Checker's Property Analysis console to verify your iModel's spatial rooms before executing an audit:
SELECT
e.ECInstanceId AS spaceId,
e.UserLabel AS roomName,
e.CodeValue AS roomCode,
p.GrossFloorArea,
p.NetFloorArea
FROM bis.SpatialLocationElement e
LEFT JOIN IFCDynamic.IfcElementQuantity p ON p.Element.Id = e.ECInstanceId
WHERE (e.UserLabel LIKE '%Bed%' OR e.UserLabel LIKE '%Exam%' OR e.UserLabel LIKE '%OR%' OR e.UserLabel LIKE '%Consult%')
ORDER BY e.UserLabel ASC