Live dashboard: https://abdullah13793-commits.github.io/ildfast/ · Draft fire strategy (PDF): reports/Ildfast_FireStrategy_Draft.pdf
Ildfast reads an architect's IFC model and runs a fire class 2 review under BR18's pre-accepted solutions. It produces:
- the building's fire class, with the reasoning shown;
- nine rule checks, each citing its clause in the official guidance;
- a flagged IFC, with every issue tagged and coloured;
- a proposed IFC, with fixes applied in a separate model and the whole rule set re-run on it;
- a change log and BCF 2.1 issues for Solibri, BIMcollab, Revit and Archicad;
- an interactive 3D dashboard;
- a draft fire strategy report.
The certified fire consultant reviews the output, decides the judgement calls and signs. That step is manual by design.
Demo result (fictitious 6-storey block, 24 flats, 1,084 IFC elements):
- 13 issues found in about 10 s;
- 13 fixes proposed;
- the full re-check of the proposed model leaves 0 open.
General checkers such as Solibri are mature and broad. Solibri already has an escape-route rule, and you configure it to your code. Ildfast is narrower, but it goes deeper on one job:
- BR18 fire class 2 built in. The fire class and every requirement level follow from the model, and each finding cites its clause.
- It proposes and applies fixes in a separate model, gated by confidence, then re-checks everything.
- It drafts the fire strategy for the certified consultant to sign.
- It writes BCF, so the issues open in Solibri, BIMcollab, Revit or Archicad. It complements those tools rather than replacing them.
See POSITIONING.md for the full comparison and the honest gaps.
| ID | Check | Source |
|---|---|---|
| R01 | Risk class and fire class from the model; stops if the building is not class 2 | BR18 §§ 86, 490-493; Kapitel 1 tabel 1.5.1 |
| R02 | Walking distance ≤ 30 m along the real walking line (dwellings ≤ 150 m² deemed to satisfy) | Bilag 2, 2.3.2.2 |
| R03 | Direct access to an escape stair, ≤ 4 dwellings per floor per stair, safety stairs above 22 m | Bilag 2, 2.3.2.2.1 |
| R04 | Doors ≥ 0.77 m clear, escape corridors ≥ 1.30 m, stairs ≥ 1.00 m (1.20 m above 22 m) | Bilag 2, 2.3.3.2 and 2.3.4.1 |
| R05 | Walls between fire units EI 60 (A2-s1,d0 above 12 m); doors per tabel 2.3.2 | Bilag 2, 4.2.6.1 and tabel 2.3.2 |
| R06 | Ducts and pipes through a fire separation need a damper or classified seal | BR18 § 106; Bilag 2, 4.2.6 |
| R07 | Load-bearing structure R 60 / R 120 A2-s1,d0 by height; top storey; over basement | Kapitel 3, tabel 1 |
| R08 | Smoke alarm in every dwelling; unsprinklered fire section ≤ 600 m²; triggers above 22 m | Bilag 2, tabel 2.4 and tabel 4.2.5 |
| R09 | A rescue opening per dwelling: h ≥ 0.6, w ≥ 0.5, h + w ≥ 1.5 m | Bilag 2, 2.4 |
Fixes are gated by confidence:
- High: a local change, such as a rating upgrade, a damper, a smoke alarm or a door leaf.
- Medium: a facade change, or data to be verified.
- Low: a ripple fix that moves walls or stairs, or adds an exit.
Low-confidence fixes are always re-checked and presented to the consultant as proposals.
pip install ifcopenshell shapely scipy numpy pillow playwright pymupdf
$env:PYTHONPATH = "src"
python -m ildfast.demo_model models/architect_model.ifc # the demo architect model (or bring your own IFC)
python -m ildfast.pipeline models/architect_model.ifc models/intake.json out
python src/build_web.py # docs/index.html (dashboard, data inlined)
python src/make_figures.py; python src/make_report.py; python src/make_poster.py; python src/make_video.py
python -m pytest -q tests # 27 testsThe outputs land in out/:
flagged.ifcandproposed.ifcissues.bcfchangelog.jsonandhistory.jsonresults_original.jsonandresults_proposed.jsondashboard_data.json
- Answer key. The demo model carries 11 planted errors. The tests require every one to be found and every open finding to be explained.
- Re-check. The proposed model must pass the full rule set again, and the architect's file must stay byte-identical.
- Schema. All written IFC files pass IfcOpenShell's schema validator. The BCF files parse as XML.
- Walking distance. Distances are checked against closed-form answers: exact on straight lines and open rooms, and at most 3 % long around corners, never short.
- Classification. The edge cases are tested: one storey, ≤ 9.6 m, 9.6–45 m, above 45 m, two basements, and another documentation method.
- Bilag 2 – Præ-accepterede løsninger for etageboligbyggeri (ver. 1.4)
- Kapitel 3 – Bærende konstruktioner
- Kapitel 1 – Generelt om sikkerhed ved brand
- Indplacering i brandklasser (§§ 490-493)
- The building is fictitious. The rule set covers etageboligbyggeri in fire class 2 only.
- Facade fire spread, distances to the site boundary and fire-service access areas are not checked.
- Clear door width is taken as leaf width − 0.10 m unless the model gives it.
- Geometry fixes edit extruded-profile bodies. Other geometry gets a property change, flagged for modelling.
- This is a design-review assistant, not a certification. The legal responsibility stays with the certified consultant.
Abdallah Alhussein · MSc Eng, Architectural Engineering (DTU) · MIT licence

