IFCore Deploy
deploy(prod): 2026-02-21T01:10:43Z
51982d6

BIMwise - IFC Compliance Checker

Welcome to BIMwise. You're a startup building automated building compliance checking. Upload an IFC model, run checks against regulations, see what fails. By Friday you pitch this to investors.

Setup

git clone https://github.com/SerjoschDuering/iaac-bimwise-starter.git
cd iaac-bimwise-starter
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

Verify: python -c "import ifcopenshell, gradio; print('Ready')"

What's in the Repo

00_data/
  ifc_models/              Duplex Apartment (14 doors, 24 windows, 57 walls)
  regulations/
    sample_regulations_basic.md       6 numeric checks (door width, room area, ...)
    sample_regulations_advanced.md    4 checks that need LLM reasoning

exercises/
  01_explore_ifc.ipynb     Open an IFC, query elements, plot properties
  02_llm_basics.ipynb      Call Gemini, system prompts
  03_structured_output.ipynb   Get JSON from an LLM, parse it
  04_llm_decisions.ipynb   LLM evaluates a regulation, code acts on result
  05_pydantic_ai_agents.ipynb  Agents, tools, chains with PydanticAI

app/
  app_simple.py            Text-only results (Monday)
  app.py                   3D viewer, failures in red (Tuesday+)
  src/
    ifc_checker.py         YOUR CODE GOES HERE
    ifc_visualizer.py      Don't touch

The One File You Edit

app/src/ifc_checker.py -- add check functions, wire them into run_all_checks().

Each check returns a list of results:

{
    "element_id": "2O2Fr$t4X7Zf8NOew3FLOH",
    "element_type": "IfcDoor",
    "element_name": "Door #1",
    "rule": "Min Door Width",
    "requirement": ">= 800 mm",
    "actual": "900 mm",
    "passed": True
}

Failed elements show up red in the 3D viewer.

Run the App

cd app
python app_simple.py    # Monday: text results
python app.py           # Tuesday+: 3D viewer

The Week

Mon -- Make It Work: Explore IFC files (notebooks 01), write check functions by hand, see results in Gradio.

Tue -- Make It Talk: Add LLM reasoning (notebooks 02-05), agree on a shared data schema across teams. Board meeting #1 drops company standards.

Wed -- Make It Connect: Deploy your agent to HuggingFace Spaces, add RAG so agents look up regulations themselves. Board meeting #2: "We need one product by Friday."

Thu -- Make It Real: Integration sprint. Frontend + orchestrator + team agents connect. Rehearse the pitch.

Fri -- Present: Pitch to investors.

Resources