Create 4D construction simulations by linking BIM elements to project schedules. Generate time-based visualizations, sequence analysis, and construction phasing with Gantt integration.
中文简介正在准备中。当前显示原文说明。
Build n8n pipeline for automated cost estimation from Revit/IFC using DDC CWICR database and LLM classification.
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
Traditional cost estimation requires:
Free open-source n8n pipeline that converts CAD (Revit 2015-2026) files into full cost and time estimates using AI (LLM) and vector database with 55,000+ work items.
| Traditional Role | Automated Alternative |
|---|---|
| BIM Manager manually exports data | Pipeline auto-classifies elements |
| Junior Estimator searches databases | Vector search finds matches in ms |
| Senior Estimator maps assemblies | LLM identifies quantity parameters |
| Foreman calculates labor hours | DDC CWICR contains documented norms |
| Project Manager aggregates costs | Pipeline outputs phased breakdown |
Processing speed: 3-10 seconds per element group
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Revit/IFC │───>│ CAD2DATA │───>│ Structured │
│ File │ │ Converter │ │ Excel/CSV │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Cost Report │<───│ Price Match │<───│ LLM Class. │
│ HTML/Excel │ │ DDC CWICR │ │ + QTO │
└─────────────┘ └─────────────┘ └─────────────┘
// Execute CAD converter
const filePath = $input.first().json.file_path;
const outputDir = filePath.replace(/\.[^.]+$/, '');
const command = `RvtExporter.exe "${filePath}" complete bbox`;
// Returns: { xlsx_path, dae_path }
// Read converted Excel into n8n
const xlsx = $node["Read Binary Files"].json;
const elements = xlsx.sheets["Elements"];
// Group by category for processing
const grouped = elements.reduce((acc, el) => {
const cat = el.Category;
if (!acc[cat]) acc[cat] = [];
acc[cat].push(el);
return acc;
}, {});
return Object.entries(grouped).map(([category, items]) => ({
json: {category, items, count: items.length}
}));
// Prompt for Claude/GPT classification
const prompt = `
You are a construction estimator. Given these BIM elements:
Category: ${$input.first().json.category}
Sample elements: ${JSON.stringify($input.first().json.items.slice(0,5))}
1. Identify the construction work type
2. List relevant quantity parameters (Volume, Area, Length, Count)
3. Suggest standard work items from construction norms
Return as JSON:
{
"work_type": "...",
"quantity_params": ["Volume", "Area"],
"suggested_items": ["Concrete foundation", "Formwork"]
}
`;
// Search DDC CWICR database for matching work items
const qdrantClient = require('@qdrant/js-client-rest');
const searchResults = await qdrantClient.search('cwicr_en_v3', {
vector: await getEmbedding($input.first().json.work_description),
limit: 10,
score_threshold: 0.7
});
return searchResults.map(r => ({
json: {
work_code: r.payload.work_item_code,
description: r.payload.description,
unit: r.payload.unit,
unit_price: r.payload.unit_price,
similarity: r.score
}
}));
// Match quantities to prices
const elements = $node["Load Elements"].json;
const prices = $node["Vector Search"].json;
let totalCost = 0;
const breakdown = [];
for (const el of elements.items) {
const matchedPrice = prices.find(p => p.similarity > 0.8);
if (matchedPrice) {
const quantity = el.Volume || el.Area || 1;
const cost = quantity * matchedPrice.unit_price;
totalCost += cost;
breakdown.push({
element: el.Name,
quantity: quantity,
unit: matchedPrice.unit,
unit_price: matchedPrice.unit_price,
total: cost
});
}
}
return [{json: {totalCost, breakdown}}];
// Create HTML report
const data = $input.first().json;
const html = `
<!DOCTYPE html>
<html>
<head>
<title>Cost Estimate Report</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
th { background-color: #4CAF50; color: white; }
.total { font-size: 1.5em; font-weight: bold; }
</style>
</head>
<body>
<h1>Cost Estimate Report</h1>
<p class="total">Total: $${data.totalCost.toLocaleString()}</p>
<table>
<tr><th>Element</th><th>Quantity</th><th>Unit</th><th>Price</th><th>Total</th></tr>
${data.breakdown.map(row => `
<tr>
<td>${row.element}</td>
<td>${row.quantity.toFixed(2)}</td>
<td>${row.unit}</td>
<td>$${row.unit_price.toFixed(2)}</td>
<td>$${row.total.toFixed(2)}</td>
</tr>
`).join('')}
</table>
</body>
</html>
`;
return [{json: {html, filename: 'estimate_report.html'}}];
Example project (rac_basic_sample.rvt):
"My subjective take: professionals who ignore workflow automation and AI-agents today have roughly 5 years before the construction industry moves past them. The tools are free and open. The data is open. The only question is who learns to use them first."
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Create 4D construction simulations by linking BIM elements to project schedules. Generate time-based visualizations, sequence analysis, and construction phasing with Gantt integration.
中文简介正在准备中。当前显示原文说明。
Analyze 5000+ IFC and Revit projects at scale for patterns, benchmarks, and insights. Big data analysis for construction.
中文简介正在准备中。当前显示原文说明。
Check construction AI systems against the EU AI Act (Regulation 2024/1689): classify risk of estimation, scheduling, CV and agent tools, document transparency, keep human oversight. Use when deploying or auditing AI in construction.
中文简介正在准备中。当前显示原文说明。
Orchestrate multiple AI agents for construction workflows: estimator, scheduler, document, QA and safety agents coordinated by a supervisor agent, with human checkpoints. Use when automating end-to-end project processes with agentic AI.
中文简介正在准备中。当前显示原文说明。
Create Apache Airflow DAGs for construction data pipelines. Orchestrate ETL, validation, and reporting workflows.
中文简介正在准备中。当前显示原文说明。
Automate as-built documentation and digital handover for construction. Compile project records, generate O&M manuals, create asset databases, and ensure complete project closeout.
中文简介正在准备中。当前显示原文说明。