Skip to main content
Challenge

Build an IFC MEP Ductwork Routing Clash Coordinator

Detect geometric clashes between HVAC ductwork and structural elements using IfcOpenShell. Formulate collision mitigation offsets and generate standard BIM Collaboration Format coordination topics.

EngineeringHosted by Vera
Challenge brief

What you are building

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

Detect geometric clashes between HVAC ductwork and structural elements using IfcOpenShell. Formulate collision mitigation offsets and generate standard BIM Collaboration Format coordination topics.

MEP BIM Coordination Specialist

Upload structural and mechanical IFC models into the coordination platform.

Execute automated geometric collision checks between IfcDuctSegment and IfcBeam entities.

Calculate minimal non-colliding lateral and vertical routing elevation adjustments.

Generate structured BCF-XML coordination issues assigned to the HVAC design team.

3D collision viewer displaying clashing elements in red, clash coordinates, clearance metrics, and BCF issue export options.

Use open-source multidisciplinary BIM coordination test models from the IfcClash test suite on GitHub. Starter examples below are synthetic. They are not downloaded records.

IfcOpenShell Leverages IfcOpenShell ifcclash and bcf modules to parse intersecting solids and author BCF coordination issues.

pydantic-ai, ifcopenshell, fastapi. Pydantic AI guarantees type safety and strict schema conformance when generating BCF issue records and routing offsets. Instruction model capable of analyzing geometric coordinate clashes and drafting technical resolution instructions.

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.

Identifies intersections between mechanical duct segments and structural framing elements.

Computes vertical clearance requirements based on duct external cross-sectional dimensions.

Generates valid BCF-compliant issue payloads containing element GUIDs and viewpoints.

```json [ { "input": { "clash_id": "CLASH-MEP-STR-042", "duct_element": { "guid": "2Vw89a1Lb9FfW0e78c6V12", "system": "Supply Air", "elevation_center_mm": 3200, "height_mm": 400, "width_mm": 600 }, "beam_element": { "guid": "0Kx32b5Mc1HgV3d90a8B34", "soffit_elevation_mm": 3100, "depth_mm": 500 } }, "expected_output": { "clash_id": "CLASH-MEP-STR-042", "collision_detected": true, "overlap_distance_mm": 300, "resolution_proposal": { "recommended_action": "Lower duct elevation", "new_center_elevation_mm": 2850, "clearance_margin_mm": 50 }, "bcf_issue": { "topic_type": "Clash", "title": "Supply Air Duct Clashing with Structural Steel Beam", "priority": "Critical", "assigned_to": "HVAC_Lead_Engineer" } } }, { "input": { "clash_id": "CLASH-MEP-STR-088", "duct_element": { "guid": "1Aa11a1Lb9FfW0e78c6V99", "system": "Exhaust Air", "elevation_center_mm": 2700, "height_mm": 300, "width_mm": 400 }, "beam_element": { "guid": "3Zz99b5Mc1HgV3d90a8B11", "soffit_elevation_mm": 3200, "depth_mm": 450 } }, "expected_output": { "clash_id": "CLASH-MEP-STR-088", "collision_detected": false, "overlap_distance_mm": 0, "resolution_proposal": { "recommended_action": "Maintain current alignment", "new_center_elevation_mm": 2700, "clearance_margin_mm": 350 }, "bcf_issue": null } } ] ```

Routing changes are proposed advisory adjustments. Structural and ductwork re-routing must be approved by licensed consulting engineers. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Routing changes are proposed advisory adjustments. Structural and ductwork re-routing must be approved by licensed consulting engineers. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Identifies intersections between mechanical duct segments and structural framing elements. Computes vertical clearance requirements based on duct external cross-sectional dimensions. Generates valid BCF-compliant issue payloads containing element GUIDs and viewpoints.

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

Upload structural and mechanical IFC models into the coordination platform. Execute automated geometric collision checks between IfcDuctSegment and IfcBeam entities. Calculate minimal non-colliding lateral and vertical routing elevation adjustments. Generate structured BCF-XML coordination issues assigned to the HVAC design team.

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

Identifies intersections between mechanical duct segments and structural framing elements. Computes vertical clearance requirements based on duct external cross-sectional dimensions. Generates valid BCF-compliant issue payloads containing element GUIDs and viewpoints.

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

3D collision viewer displaying clashing elements in red, clash coordinates, clearance metrics, and BCF issue export options.

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

Routing changes are proposed advisory adjustments. Structural and ductwork re-routing must be approved by licensed consulting engineers.

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

  • Upload structural and mechanical IFC models into the coordination platform.

  • Execute automated geometric collision checks between IfcDuctSegment and IfcBeam entities.

  • Calculate minimal non-colliding lateral and vertical routing elevation adjustments.

  • Generate structured BCF-XML coordination issues assigned to the HVAC design team.

Resources and assets

Reference links and supporting material

Dataset notes

Use open-source multidisciplinary BIM coordination test models from the IfcClash test suite on GitHub. 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
  • Upload structural and mechanical IFC models into the coordination platform. Execute automated geometric col...
  • Identifies intersections between mechanical duct segments and structural framing elements. Computes vertica...
  • 3D collision viewer displaying clashing elements in red, clash coordinates, clearance metrics, and BCF issu...
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 MEP Ductwork Routing Clash Coordinator