Estimate 4D/5D construction costs from Revit BIM models with DDC CWICR

Go to Workflow
15 views
Built by Artem Boiko Artem Boiko
Created on June 05, 2026

Description

A professional BIM-to-cost pipeline that extracts data from Revit models (2015–2026), classifies elements with AI, decomposes them into construction works, and generates detailed cost estimates using the open-source DDC CWICR database. Produces HTML reports and Excel exports with full resource breakdown.

Who's it for

BIM Managers** automating quantity takeoff and cost estimation
Cost Engineers** integrating 5D workflows into design pipelines
Construction Companies** standardizing estimates from Revit models
General Contractors** doing rapid budget checks during design
MEP Engineers** pricing mechanical/electrical/plumbing systems
Developers** building custom BIM-to-cost integrations

What it does

Extracts BIM data from Revit model via converter (RvtExporter)
Classifies building vs non-building elements using AI
Detects project type (Residential/Commercial/Industrial)
Generates construction phases and assigns element types
Decomposes each BIM type into detailed work items
Searches DDC CWICR vector database for matching rates
Calculates costs with unit mapping and resource breakdown
Validates work completeness and checks for gaps
Generates professional HTML report + Excel file

How it works

┌─────────────────────────────────────────────────────────────────────────────┐
│ REVIT MODEL (.rvt) │
│ Revit 2015–2026 supported │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ BLOCK 1: CONVERSION │
│ RvtExporter.exe → Excel with BIM element schedules │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ BLOCK 2: DATA LOADING & CLASSIFICATION │
│ • Filter 3D View elements only │
│ • AI analyzes headers → aggregation rules (sum/mean/last) │
│ • AI classifies building vs non-building elements │
│ • Hard exclude: Grids, Levels, Annotations, Views, etc. │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ BLOCK 3: PROJECT ANALYSIS (Stages 0–3) │
│ STAGE 0: Collect filtered BIM data │
│ STAGE 1: AI detects project type │
│ STAGE 2: AI generates construction phases │
│ STAGE 3: AI assigns element types to phases │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ BLOCK 4: WORK DECOMPOSITION (Stage 4) │
│ Loop through each BIM type: │
│ • AI decomposes type into work items │
│ • Example: Window → Demolition, Installation, Sealing, Hardware │
│ • Prepares search queries for pricing │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ BLOCK 5: PRICING & CALCULATION (Stages 5–7) │
│ STAGE 5: Vector search in Qdrant (text-embedding-3-large, 3072 dim) │
│ STAGE 6: Map BIM units → Rate units (m² → 100 m²) │
│ STAGE 7: Calculate costs (Qty × Unit Price) │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ BLOCK 6: VALIDATION & AGGREGATION │
│ STAGE 7.5: AI validates work completeness │
│ STAGE 8: Aggregate costs by phases │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│ BLOCK 7: REPORT GENERATION (Stage 9) │
│ • Professional HTML report with expandable rows │
│ • Excel-compatible XLS file │
│ • Auto-opens in browser │
└─────────────────────────────────────────────────────────────────────────────┘

Pipeline Stages

| Stage | Name | Description |
|-------|------|-------------|
| 0 | Collect | Gather filtered BIM data |
| 1 | Project Type | AI detects Residential/Commercial/Industrial |
| 2 | Phases | AI generates construction phases |
| 3 | Assignment | AI assigns element types to phases |
| 4 | Decomposition | AI breaks types into work items |
| 5 | Vector Search | Query Qdrant for pricing rates |
| 6 | Unit Mapping | Convert BIM units to rate units |
| 7 | Calculation | Compute costs (Qty × Price) |
| 7.5 | Validation | AI checks completeness, finds gaps |
| 8 | Aggregation | Sum costs by phases |
| 9 | Reports | Generate HTML + XLS outputs |

Prerequisites

| Component | Requirement |
|-----------|-------------|
| n8n | v1.30+ with Execute Command node |
| Revit Exporter | RvtExporter.exe (provided separately) |
| OpenAI API | For embeddings + LLM tasks |
| Qdrant | Vector DB with DDC CWICR collections |
| DDC CWICR Data | GitHub |
| Windows | For Revit converter execution |

Setup

1. Configure File Paths

In Setup - Define file paths node:
{
"path_to_converter": "C:\\path\\to\\RvtExporter.exe",
"project_file": "C:\\path\\to\\your_project.rvt",
"group_by": "Type Name",
"language_code": "DE"
}

2. Select Language & Region

| Code | Language | City | Currency |
|------|----------|------|----------|
| AR | Arabic | Dubai | AED |
| ZH | Chinese | Shanghai | CNY |
| DE | German | Berlin | EUR |
| EN | English | Toronto | CAD |
| ES | Spanish | Barcelona | EUR |
| FR | French | Paris | EUR |
| HI | Hindi | Mumbai | INR |
| PT | Portuguese | São Paulo | BRL |
| RU | Russian | St. Petersburg | RUB |

3. Configure AI Model

Connect your preferred LLM in the model nodes:

| Provider | Model | Notes |
|----------|-------|-------|
| OpenAI | GPT-4o | Default, recommended |
| Anthropic | Claude Opus 4 | High quality |
| Google | Gemini 2.5 Pro | Good for large contexts |
| xAI | Grok 4 | Fast inference |
| DeepSeek | DeepSeek Chat | Cost-effective |
| OpenRouter | Various | Multi-model access |

4. Set Up Qdrant

Ensure DDC CWICR collections are loaded:
DE_BERLIN_workitems_costs_resources_EMBEDDINGS_3072_DDC_CWICR
ENG_TORONTO_workitems_costs_resources_EMBEDDINGS_3072_DDC_CWICR
RU_STPETERSBURG_workitems_costs_resources_EMBEDDINGS_3072_DDC_CWICR
...

5. Configure OpenAI Credentials

Set up OpenAI API credential for:
Embeddings (text-embedding-3-large, 3072 dimensions)
LLM calls (if using OpenAI as primary model)

Features

| Feature | Description |
|---------|-------------|
| 🏗️ Revit Integration | Direct extraction from .rvt files (2015–2026) |
| 🤖 Multi-LLM Support | OpenAI, Claude, Gemini, Grok, DeepSeek |
| 🔍 Smart Classification | AI separates building from non-building elements |
| 📊 Work Decomposition | Breaks BIM types into detailed work items |
| 🎯 Vector Search | Semantic matching via Qdrant + OpenAI embeddings |
| 🧮 Unit Mapping | Automatic conversion (m² → 100 m², pcs → sets) |
| ✅ AI Validation | Checks for missing works and duplications |
| 📈 Phase Aggregation | Costs grouped by construction phases |
| 📄 HTML Report | Professional report with quality indicators |
| 📑 Excel Export | XLS file with formulas and links |
| 🌍 9 Languages | Full localization + regional pricing |

Hard Exclude Categories

The pipeline automatically excludes non-physical elements:

Levels, Grids, Reference Planes
Annotations, Dimensions, Text Notes
Tags, Views, Sheets, Schedules
Legends, Viewports, Section Boxes
Scope Boxes, Match Lines
Model Groups, Detail Groups
Entourage (RPC people, cars, plants)

Example Output

Input: Residential building Revit model (45 element types)

Processing:
Project type detected: Residential Multi-Family
Phases generated: Foundations → Structure → Envelope → MEP → Finishes
Types assigned: 45 types → 5 phases
Works decomposed: 45 types → 280 work items
Rates found: 245/280 (87.5%)

Output Files:
project_2024-12-08.html → Professional HTML report
project_2024-12-08.xls → Excel with full breakdown

HTML Report Features:
KPI summary (total cost, items, phases)
Expandable phase sections
Quality indicators (● green/yellow/red)
Resource breakdown per work item
Clickable rate codes
Responsive design

Output Structure

📊 Cost Estimate: Residential Building
├── 📁 Phase 1: Foundations
│ ├── Foundation walls — 125.5 m³ — €12,450
│ ├── Concrete footings — 45.2 m³ — €8,340
│ └── Waterproofing — 280 m² — €4,200
├── 📁 Phase 2: Structure
│ ├── Concrete columns — 18 pcs — €9,720
│ ├── Floor slabs — 450 m² — €67,500
│ └── Stairs — 3 flights — €8,100
├── 📁 Phase 3: Envelope
│ ├── Exterior walls — 680 m² — €95,200
│ ├── Windows — 42 pcs — €25,200
│ └── Roof system — 225 m² — €33,750
└── 💰 TOTAL: €485,240

Notes & Tips

First run:** Conversion takes 1–3 minutes depending on model size
Cached conversion:** Subsequent runs skip conversion if Excel exists
Testing mode:** Limit to 10 types for faster debugging
Rate accuracy:** Depends on DDC CWICR coverage for your region
Custom phases:** AI adapts phases based on project type
Missing rates:** Flagged with red indicator in report

Extending the Pipeline

Add custom rates:** Extend Qdrant collection with your pricing
Chain to PM tools:** Connect to OpenProject, Monday, Asana
Email reports:** Add email node after report generation
Cloud storage:** Upload to Google Drive, OneDrive, S3
Webhook trigger:** Replace manual trigger for API access

Categories

AI · Data Transformation · Document Ops · Files & Storage

Tags

bim, revit, cost-estimation, 5d-bim, 4d-bim, qdrant, vector-search, openai, construction, quantity-takeoff, html-report, multilingual

Author

DataDrivenConstruction.io
https://DataDrivenConstruction.io
[email protected]

Consulting & Training

We help AEC firms implement:
BIM-to-cost automation pipelines
4D/5D integration workflows
Custom Revit data extractors
AI-powered estimation systems
Vector database deployment for construction data

Contact us to adapt this pipeline to your Revit templates and regional pricing.

Resources

DDC CWICR Database:** GitHub
Qdrant Documentation:** qdrant.tech/documentation
OpenAI Embeddings:** platform.openai.com
n8n Execute Command:** docs.n8n.io

⭐ Star us on GitHub! github.com/datadrivenconstruction/DDC-CWICR

Nodes Used (10)

Anthropic Chat Model
@n8n/n8n-nodes-langchain.lmChatAnthropic
Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm
Code
n8n-nodes-base.code
DeepSeek Chat Model
@n8n/n8n-nodes-langchain.lmChatDeepSeek
Embeddings OpenAI
@n8n/n8n-nodes-langchain.embeddingsOpenAi
Google Gemini Chat Model
@n8n/n8n-nodes-langchain.lmChatGoogleGemini
OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi
OpenRouter Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenRouter
Qdrant Vector Store
@n8n/n8n-nodes-langchain.vectorStoreQdrant
xAI Grok Chat Model
@n8n/n8n-nodes-langchain.lmChatXAiGrok