An IFC repository where all commits and branches are LLM generated
Find a file
2026-03-20 23:08:21 +00:00
.github/workflows Exclude libraries/ folder from CI validation workflows 2026-03-01 20:32:56 +00:00
IDS Update schedule and BoQ for door, stove, chimney, window seat, bench, tree; add door IDS rules 2026-02-28 10:06:30 +00:00
libraries Remove superfluous info from type descriptions 2026-03-11 21:22:55 +00:00
.gitattributes Add .gitattributes to use ifcmerge for IFC files 2026-02-27 14:43:13 +00:00
.mcp.json MCP configuration 2026-02-24 21:24:13 +00:00
_test_simple.ifc Fix schedule: ground floor walls built before first floor walls 2026-03-20 20:30:44 +00:00
CLAUDE.md update 2026-03-20 22:24:19 +00:00
README.md update 2026-03-20 23:08:21 +00:00

simple-ifc

A small IFC building model used as a sandbox for exploring IFC model workflows with LLM agents and the IfcOpenShell MCP server.

What this is

The model (_test_simple.ifc) is a simple house — four exterior walls, windows, a concrete floor slab, ground beam footings, and a pitched roof. It's intentionally small enough to be easy to reason about, but complete enough to exercise real IFC workflows:

  • Quantity take-off — running ifc_quantify to compute wall volumes, roof areas, window areas, etc.
  • Construction schedulingIfcWorkSchedule with phased tasks linked to physical elements
  • Bill of QuantitiesIfcCostSchedule with parametric quantity links and unit rates, exported to PDF via ifc5d
  • IDS validation — checking model completeness against Information Delivery Specifications

The point is to see how well an LLM agent (Claude Code + the IFC MCP server) can handle multi-step IFC editing tasks — things that would normally require a BIM technician and specialist software.

Setup

pip install ifcopenshell ifcmcp ifc5d ifctester typst

The MCP server is configured in .mcp.json. In Claude Code it loads automatically; the agent can query and edit the model in memory across tool calls without round-tripping to disk between every operation.

Repository contents

Path Description
_test_simple.ifc The IFC model (IFC4 schema)
IDS/ IDS specification files for CI validation
IDS/CI_project_checks.ids Project CI checks: QTO completeness, element naming, BoQ properties
IDS/EN_Basic IDM Check.ids Standard BIM Basic IDM checks
libraries/ Local copies of Bonsai asset libraries (furniture, landscape)
CLAUDE.md Instructions and reference for the LLM agent

Validation

Run IDS checks manually:

python3 -m ifctester IDS/CI_project_checks.ids _test_simple.ifc
python3 -m ifctester "IDS/EN_Basic IDM Check.ids" _test_simple.ifc

Generating the Bill of Quantities

Quantities must be computed before generating the BoQ (or after any geometry changes):

# In a Claude Code session with the MCP server active:
ifc_load("_test_simple.ifc")
ifc_quantify("IFC4QtoBaseQuantities")
ifc_save()

Export a BoQ to PDF:

python3 -c "
import ifcopenshell
from ifc5d.ifc5Dspreadsheet import Ifc5DPdfWriter
f = ifcopenshell.open('_test_simple.ifc')
cs = next(iter(f.by_type('IfcCostSchedule')))
Ifc5DPdfWriter(file=f, output='boq.pdf', options={}, cost_schedule=cs,
               force_schedule_type='PRICEDBILLOFQUANTITIES').write()
"

Git workflow

IFC files are plain text (STEP format) and diff cleanly. Merging requires ifcmerge as the git merge driver — see CLAUDE.md for configuration.

Bruno Postle bruno@postle.net 2026. All files are licensed Creative Commons Attribution-ShareAlike 4.0 International