Skip to main content
Loading navigation
Back to prompt library

Build an IFC Demolition Material Circularity Auditor — implementation

Linked challenge: Build an IFC Demolition Material Circularity Auditor

Prompt source

implementation103 lines11 sectionsNo variables1 code block
## Build
Inspect structural elements in architectural IFC files using IfcOpenShell to calculate salvageable timber and masonry quantities. Produce standardized circularity manifests for deconstruction contractors.

## User
Demolition and Salvage Coordinator

## Workflow
1. Import an IFC model representing a commercial building planned for deconstruction.
2. Query IfcWall, IfcBeam, and IfcColumn elements to extract material layer data.
3. Calculate total component volumes and cross-reference material recyclability ratings.
4. Compile a deconstruction inventory manifest highlighting reusable elements.

## Interface
Material recovery dashboard listing salvaged volume metrics, demolition sequencing recommendations, and download buttons.

## Data
Clone public IFC samples from the buildingSMART international model sample repository.
Starter examples below are synthetic. They are not downloaded records.

## Source
[IfcOpenShell](https://raw.githubusercontent.com/IfcOpenShell/IfcOpenShell/v0.8.0/README.md)
Leverages IfcOpenShell Python to read material constituent sets and element quantities from structural entities.

## Tools
haystack, ifcopenshell, pandas.
Haystack provides document extraction pipelines and question-answering retrieval over architectural salvage specifications.
Cloud-hosted general language model capable of parsing technical deconstruction documentation and circular economy criteria.

## 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
- Processes material layer thicknesses and calculates total wall and beam volumes.
- Categorizes materials into direct reuse, recycling, or disposal streams.
- Outputs a deconstruction recovery manifest with embodied carbon offset metrics.

## Starter Examples
```json
[
  {
    "input": {
      "project_name": "Warehouse Rehab Project",
      "elements": [
        {
          "id": "Beam_Glulam_01",
          "entity": "IfcBeam",
          "material": "Glued Laminated Timber",
          "volume_m3": 1.25,
          "fastener_type": "Bolted"
        },
        {
          "id": "Wall_Brick_01",
          "entity": "IfcWallStandardCase",
          "material": "Clay Masonry",
          "volume_m3": 8.4,
          "mortar_type": "Lime"
        }
      ]
    },
    "expected_output": {
      "summary": {
        "total_elements": 2,
        "high_salvage_yield_m3": 9.65,
        "diverted_from_landfill_pct": 95
      },
      "manifest": [
        {
          "id": "Beam_Glulam_01",
          "recovery_action": "Direct Reuse",
          "condition_notes": "Unboltable without structural damage"
        },
        {
          "id": "Wall_Brick_01",
          "recovery_action": "Reclaimed Brick Cleaning",
          "condition_notes": "Lime mortar allows clean brick recovery"
        }
      ]
    }
  },
  {
    "input": {
      "project_name": "Office Annex",
      "elements": [
        {
          "id": "Panel_Asphalt_01",
          "entity": "IfcCovering",
          "material": "Hazardous Bitumen Board",
          "volume_m3": 0.5,
          "fastener_type": "Adhesive"
        }
      ]
    },
    "expected_output": {
      "summary": {
        "total_elements": 1,
        "high_salvage_yield_m3": 0,
        "diverted_from_landfill_pct": 0
      },
      "manifest": [
        {
          "id": "Panel_Asphalt_01",
          "recovery_action": "Hazardous Disposal",
          "condition_notes": "Contains regulated adhesive; non-recyclable"
        }
      ]
    }
  }
]
```

## Safety
Circularity estimates are indicative guidelines. Hazardous material abatement must be inspected on-site by certified personnel.
Use mock external writes. Require human review before any real deployment.