Skip to content
abdullah13793-commitsPublic

About

Reads an IFC model, classifies it under BR18 (fire class 2) and checks nine fire rules: flagged IFC, proposed fixes re-checked, BCF issues, 3D dashboard, draft fire strategy.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Ildfast: fire class 2 compliance engine for Danish apartment buildings

Live dashboard: https://abdullah13793-commits.github.io/ildfast/ · Draft fire strategy (PDF): reports/Ildfast_FireStrategy_Draft.pdf

Ildfast

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.

How it compares to Solibri and other model checkers

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.

Rules (anvendelseskategori 4, brandklasse 2)

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.

Run it

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 tests

The outputs land in out/:

  • flagged.ifc and proposed.ifc
  • issues.bcf
  • changelog.json and history.json
  • results_original.json and results_proposed.json
  • dashboard_data.json

Validation

  • 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.

Basement before and after

Sources

Limits

  • 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

About

Reads an IFC model, classifies it under BR18 (fire class 2) and checks nine fire rules: flagged IFC, proposed fixes re-checked, BCF issues, 3D dashboard, draft fire strategy.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages