Back to prompt library
Build an IFC Clash Diff and Resolution Generator — implementation
Linked challenge: Build an IFC Clash Diff and Resolution Generator
Prompt source
implementation96 lines11 sectionsNo variables1 code block
## Build
Inspect geometric clash outputs and structural changes between IFC model revisions using ifcdiff and ifcclash principles. Propose non-colliding routing adjustments for building service ducts.
## User
BIM Coordination Engineer
## Workflow
1. Extract spatial clash pairs between MEP ductwork and structural beam IFC entities.
2. Compute clearance deficit and vector direction of spatial interference.
3. Generate adjusted centerline coordinates for ductwork segments to clear structure.
4. Create BCF viewpoint records detailing suggested elevation offsets for designer sign-off.
## Interface
Interactive clash list with 3D coordinate viewer and BCF-XML coordinate adjustment panel.
## Data
Generate synthetic IFC collision records or use public ifcclash test fixtures from GitHub.
Starter examples below are synthetic. They are not downloaded records.
## Source
[IfcOpenShell](https://raw.githubusercontent.com/IfcOpenShell/IfcOpenShell/v0.8.0/README.md)
Directly references IfcOpenShell tools ifcclash for collision detection and ifcdiff for revision delta tracking.
## Tools
langgraph, pydantic, fastapi.
LangGraph manages stateful iterative routing resolution loops across multi-discipline clash reviews.
Geometry-aware LLM capable of directional 3D vector calculation and bounding box analysis.
## Deliverables
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.
## Acceptance
- Detects intersection volume between structural member and MEP pipe or duct.
- Calculates minimal vertical or horizontal offset to restore required 50mm clearance.
- Formats clash status and suggested modification into valid BCF topic format.
## Starter Examples
```json
[
{
"input": {
"clash_id": "CLASH-401",
"element_a": {
"id": "BEAM-01",
"type": "IfcBeam",
"bbox_z": [
3.2,
3.8
]
},
"element_b": {
"id": "DUCT-12",
"type": "IfcDuctSegment",
"bbox_z": [
3.6,
4.1
]
},
"required_clearance_m": 0.05
},
"expected_output": {
"clash_detected": true,
"interference_depth_m": 0.2,
"recommended_action": "LOWER_DUCT",
"target_bbox_z": [
2.95,
3.45
],
"bcf_ready": true
}
},
{
"input": {
"clash_id": "CLASH-402",
"element_a": {
"id": "COL-09",
"type": "IfcColumn",
"bbox_z": [
0,
3.5
]
},
"element_b": {
"id": "PIPE-03",
"type": "IfcPipeSegment",
"bbox_z": [
3.6,
3.7
]
},
"required_clearance_m": 0.05
},
"expected_output": {
"clash_detected": false,
"interference_depth_m": 0,
"recommended_action": "NONE",
"target_bbox_z": null,
"bcf_ready": false
}
}
]
```
## Safety
Spatial clash offset recommendations require formal review by licensed MEP engineers prior to model alteration.
Use mock external writes. Require human review before any real deployment.