Skip to main content
Challenge

Build an IFC 5D Construction Procurement Bill of Quantities Generator

Extract material schedules and dimensional takeoffs from Industry Foundation Classes models using ifc5d and ifccsv conventions. Generate structured bills of quantities aligned with procurement packages and flag unassigned unit rates.

EngineeringHosted by Vera
Challenge brief

What you are building

The core problem, expected build, and operating context for this challenge.

Extract material schedules and dimensional takeoffs from Industry Foundation Classes models using ifc5d and ifccsv conventions. Generate structured bills of quantities aligned with procurement packages and flag unassigned unit rates.

Procurement Estimator

Ingest structural and architectural IFC models and extract quantity takeoffs via ifc5d rules.

Map element schedule quantities to procurement line items using ifccsv classification keys.

Detect elements missing cost codes, unit dimensions, or material supplier rate bindings.

Publish formatted procurement bill of quantities with flags for cost estimation review.

Browser dashboard showing procurement items table, missing rate warnings, and CSV export action.

Generate synthetic IFC JSON element snapshots representing concrete slabs and structural steel beams with quantity attributes. Starter examples below are synthetic. They are not downloaded records.

IfcOpenShell Applies ifc5d and ifccsv tool utilities from IfcOpenShell contents table for reporting cost and schedule quantities.

pydantic-ai, fastapi, uvicorn. Pydantic AI enforces type-safe schemas across parsed IFC elements and procurement bill item structures. Requires an instruction-following model with JSON mode accessed through standard API.

Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.

Bill of quantities calculates total cost per line item when unit price is provided.

Missing cost codes or unit prices are flagged as pending human input without failure.

Output JSON conforms to standardized line-item schema with unit and total quantities.

```json [ { "input": { "project_id": "PRJ-901", "elements": [ { "id": "BEAM-01", "type": "IfcBeam", "material": "Structural Steel S355", "quantity": 12.5, "unit": "m", "unit_cost": 45 }, { "id": "SLAB-01", "type": "IfcSlab", "material": "Reinforced Concrete C30", "quantity": 80, "unit": "m2", "unit_cost": 65 } ] }, "expected_output": { "project_id": "PRJ-901", "line_items_count": 2, "total_estimated_cost": 5762.5, "unassigned_rates_count": 0, "review_status": "READY_FOR_PURCHASE" } }, { "input": { "project_id": "PRJ-902", "elements": [ { "id": "COL-04", "type": "IfcColumn", "material": "Cast-in-place Concrete", "quantity": 4, "unit": "m3", "unit_cost": null } ] }, "expected_output": { "project_id": "PRJ-902", "line_items_count": 1, "total_estimated_cost": 0, "unassigned_rates_count": 1, "review_status": "ACTION_REQUIRED" } } ] ```

Estimates are strictly simulated drafts for procurement planning and require estimator sign-off before contract award. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Estimates are strictly simulated drafts for procurement planning and require estimator sign-off before contract award. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Bill of quantities calculates total cost per line item when unit price is provided. Missing cost codes or unit prices are flagged as pending human input without failure. Output JSON conforms to standardized line-item schema with unit and total quantities.

Submission format

Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.

Datasets

Challenge datasets

Public datasets, plus the private datasets you have access to.

Evaluation rubric

How submissions are scored

These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.

Dimensions
4 scoring checks
Binary
1 pass or fail dimensions
Ordinal
3 scaled dimensions
Dimension 1

Complete workflow

Ingest structural and architectural IFC models and extract quantity takeoffs via ifc5d rules. Map element schedule quantities to procurement line items using ifccsv classification keys. Detect elements missing cost codes, unit dimensions, or material supplier rate bindings. Publish formatted procurement bill of quantities with flags for cost estimation review.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 2

Correctness and evidence

Bill of quantities calculates total cost per line item when unit price is provided. Missing cost codes or unit prices are flagged as pending human input without failure. Output JSON conforms to standardized line-item schema with unit and total quantities.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 3

Review interface

Browser dashboard showing procurement items table, missing rate warnings, and CSV export action.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 4

Safe execution

Estimates are strictly simulated drafts for procurement planning and require estimator sign-off before contract award.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Learning goals

What you should walk away with

  • Ingest structural and architectural IFC models and extract quantity takeoffs via ifc5d rules.

  • Map element schedule quantities to procurement line items using ifccsv classification keys.

  • Detect elements missing cost codes, unit dimensions, or material supplier rate bindings.

  • Publish formatted procurement bill of quantities with flags for cost estimation review.

Resources and assets

Reference links and supporting material

Dataset notes

Generate synthetic IFC JSON element snapshots representing concrete slabs and structural steel beams with quantity attributes. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

Pydantic AI

Typed Python agent framework.

Evaluated output

No output checks are configured.

Evaluation checks
  • Ingest structural and architectural IFC models and extract quantity takeoffs via ifc5d rules. Map element s...
  • Bill of quantities calculates total cost per line item when unit price is provided. Missing cost codes or u...
  • Browser dashboard showing procurement items table, missing rate warnings, and CSV export action.
Configured evaluation evidence
  • 2 public reference cases
Configured runtime
  • 2 configured tools

Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.

View technical recipe

Configured tools

Action Space
  • Pydantic AI · Optional
Orchestration
  • Pydantic AI · Optional

Evaluation contract

  • Complete workflow · Weight 40
  • Correctness and evidence · Weight 30
  • Review interface · Weight 20
  • Safe execution · Weight 10

Reference cases

  • 2 public reference cases

Workflow tasks

No workflow tasks are configured.

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Build an IFC 5D Construction Procurement Bill of Quantities Generator