@datadrivenconstruction/cad2data
v1.1.0
Published
CAD/BIM converter pipeline — Revit, IFC, DWG, DGN to Excel/DAE/PDF with validation and quantity takeoff
Downloads
176
Maintainers
Readme
@datadrivenconstruction/cad2data
CAD/BIM converter pipeline — convert Revit, IFC, DWG, DGN files to structured Excel/DAE/PDF data with validation and quantity takeoff.
Part of the Data Driven Construction ecosystem
Supported Formats
| Input | Output | Windows Converter | Linux Converter |
| -------- | --------------- | ------------------- | --------------------- |
| .rvt | XLSX, DAE, PDF | RvtExporter.exe | ddc-rvtconverter |
| .ifc | XLSX, DAE | IfcExporter.exe | ddc-ifcconverter |
| .dwg | XLSX, PDF | DwgExporter.exe | ddc-dwgconverter |
| .dgn | XLSX | DgnExporter.exe | ddc-dgnconverter |
| .rvt | IFC 2x3/4/4x3 | RVT2IFCconverter.exe| ddc-rvt2ifcconverter |
Revit versions: 2015–2026 • IFC versions: 2x3, 4.x • DWG: 1983–2026 • DGN: v7–v8
Requirements
Windows
- Node.js >= 16
- Microsoft Visual C++ Redistributable 2015–2022 (x64)
Linux
- Node.js >= 16
- Debian/Ubuntu-based distribution (converters are
.debpackages)
Installation
npm install -g @datadrivenconstruction/cad2dataSetup Converters
The package auto-detects your platform (Windows/Linux) and downloads the correct converters:
# Download and install converters from GitHub
cad2data setup
# Check installation status
cad2data listLinux — alternative system-wide install
On Linux, you can also install converters system-wide via .deb packages:
cad2data setup
sudo dpkg -i $(npm root -g)/@datadrivenconstruction/cad2data/converters/DDC_Converters_Linux_Packages/*.debCLI Usage
# Convert a single file
cad2data convert Model.rvt
cad2data convert Model.rvt --mode standard --bbox
cad2data convert Model.ifc -o ./output/
# Convert Revit to IFC
cad2data rvt2ifc Model.rvt --ifc-version 4x3
# Batch convert a directory
cad2data batch /projects --format .rvt --format .ifc -r
# Download converters from GitHub
cad2data setup
# List available converters
cad2data list
# Shorthand — pass file directly
cad2data Model.rvtConvert Options
| Flag | Description |
| ----------------------- | ---------------------------------- |
| --output, -o <path> | Output file or directory |
| --mode, -m <mode> | basic / standard / complete |
| --bbox | Include bounding box data |
| --room | Include room data |
| --schedule | Export schedules |
| --sheets2pdf | Export sheets to PDF |
| --no-xlsx | Skip XLSX generation |
| --no-collada | Skip DAE/Collada generation |
| --category-file <path>| Category filter file |
| --timeout <ms> | Timeout in milliseconds |
Export Modes
- basic — 309 categories
- standard — 724 categories
- complete — all 1209 categories
Node.js API
const { CAD2Data } = require('@datadrivenconstruction/cad2data');
const cad = new CAD2Data();
// Single file conversion (works on both Windows and Linux)
const result = await cad.convert('/projects/Model.rvt', {
mode: 'standard',
bbox: true,
room: true,
});
// Revit to IFC
await cad.convertRevitToIfc('Model.rvt', {
ifcVersion: '4x3',
outputFile: 'Model.ifc',
});
// Batch conversion
const { results, errors } = await cad.batch('/projects', {
formats: ['.rvt', '.ifc'],
recursive: true,
onProgress: (file, i, total) => console.log(`[${i}/${total}] ${file}`),
});
// Check installed converters
const converters = cad.listConverters();
console.log(converters);API Reference
cad.convert(inputFile, options?)
Convert a single CAD/BIM file.
inputFile— path to.rvt/.ifc/.dwg/.dgnoptions.outputDir— output directoryoptions.outputFile— explicit output pathoptions.mode—'basic'|'standard'|'complete'options.bbox— include bounding boxoptions.room— include room dataoptions.schedule— export schedulesoptions.sheets2pdf— export sheets to PDFoptions.noXlsx— skip Excel outputoptions.noCollada— skip DAE outputoptions.timeout— timeout in ms
Returns Promise<{ stdout, stderr }>
cad.convertRevitToIfc(inputFile, options?)
Convert Revit file to IFC format.
options.outputFile— output.ifcpathoptions.ifcVersion—'2x3'|'4'|'4x3'
cad.batch(dir, options?)
Batch convert all supported files in a directory.
options.formats— filter extensions, e.g.['.rvt', '.ifc']options.recursive— scan subdirectoriesoptions.convertOpts— options for each conversionoptions.onProgress—(file, index, total) => void
Returns Promise<{ results, errors, total }>
cad.listConverters()
Returns array of available converters with installation status.
n8n Workflows
This package includes pre-built n8n workflow templates in the workflows/ directory:
- Basic Revit/IFC/DWG conversion
- All settings configuration
- Batch converter pipeline
- CAD/BIM data validation
- AI classification with LLM and RAG
- Construction price estimation with LLM
- Carbon footprint / CO2 estimator
- Phase extraction with XLSX parsing
- Quantity takeoff HTML report generator
Import them into your n8n instance from the workflows/ folder.
Links
License
MIT — see LICENSE
