Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Convert RVT/RFA files to Excel databases. Extract BIM element data, properties, and quantities.
Convert RVT/RFA files to Excel databases. Extract BIM element data, properties, and quantities.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
BIM data inside RVT files needs to be extracted for: Processing multiple projects in batch Integrating BIM data with analytics pipelines Sharing structured data with stakeholders Generating reports and quantity takeoffs
Convert RVT files to structured Excel databases for analysis and reporting.
Batch processing - Convert multiple projects Data accessibility - Excel format for universal access Pipeline integration - Feed data to BI tools, ML models Structured output - Organized element data and properties
RvtExporter.exe <input_path> [export_mode] [options]
ModeCategoriesDescriptionbasic309Essential structural elementsstandard724Standard BIM categoriescomplete1209All Revit categoriescustomUser-definedSpecific categories only
OptionDescriptionbboxInclude bounding box coordinatesroomsInclude room associationsschedulesExport all schedules to sheetssheetsExport sheets to PDF
# Basic export RvtExporter.exe "C:\Projects\Building.rvt" basic # Complete with bounding boxes RvtExporter.exe "C:\Projects\Building.rvt" complete bbox # Full export with all options RvtExporter.exe "C:\Projects\Building.rvt" complete bbox rooms schedules sheets # Batch processing for /R "C:\Projects" %f in (*.rvt) do RvtExporter.exe "%f" standard bbox
import subprocess import pandas as pd from pathlib import Path from typing import List, Optional class RevitExporter: def __init__(self, exporter_path: str = "RvtExporter.exe"): self.exporter = Path(exporter_path) if not self.exporter.exists(): raise FileNotFoundError(f"RvtExporter not found: {exporter_path}") def convert(self, rvt_file: str, mode: str = "complete", options: List[str] = None) -> Path: """Convert Revit file to Excel.""" rvt_path = Path(rvt_file) if not rvt_path.exists(): raise FileNotFoundError(f"Revit file not found: {rvt_file}") cmd = [str(self.exporter), str(rvt_path), mode] if options: cmd.extend(options) result = subprocess.run(cmd, capture_output=True, text=True) if result.returncode != 0: raise RuntimeError(f"Export failed: {result.stderr}") # Output file is same name with .xlsx extension output_file = rvt_path.with_suffix('.xlsx') return output_file def batch_convert(self, folder: str, mode: str = "standard", pattern: str = "*.rvt") -> List[Path]: """Convert all Revit files in folder.""" folder_path = Path(folder) converted = [] for rvt_file in folder_path.glob(pattern): try: output = self.convert(str(rvt_file), mode) converted.append(output) print(f"Converted: {rvt_file.name}") except Exception as e: print(f"Failed: {rvt_file.name} - {e}") return converted def read_elements(self, xlsx_file: str) -> pd.DataFrame: """Read converted Excel as DataFrame.""" return pd.read_excel(xlsx_file, sheet_name="Elements") def get_quantities(self, xlsx_file: str, group_by: str = "Category") -> pd.DataFrame: """Get quantity summary grouped by category.""" df = self.read_elements(xlsx_file) # Group and count summary = df.groupby(group_by).agg({ 'ElementId': 'count', 'Area': 'sum', 'Volume': 'sum' }).reset_index() summary.columns = [group_by, 'Count', 'Total_Area', 'Total_Volume'] return summary
SheetContentElementsAll BIM elements with propertiesCategoriesElement categories summaryLevelsBuilding levelsMaterialsMaterial definitionsParametersShared parameters
ColumnTypeDescriptionElementIdintUnique Revit IDCategorystringElement categoryFamilystringFamily nameTypestringType nameLevelstringAssociated levelAreafloatSurface area (m²)VolumefloatVolume (m³)BBox_MinX/Y/ZfloatBounding box minBBox_MaxX/Y/ZfloatBounding box max
# Initialize exporter exporter = RevitExporter("C:/Tools/RvtExporter.exe") # Convert single file xlsx = exporter.convert("C:/Projects/Office.rvt", "complete", ["bbox", "rooms"]) # Read and analyze df = exporter.read_elements(str(xlsx)) print(f"Total elements: {len(df)}") # Quantity summary quantities = exporter.get_quantities(str(xlsx)) print(quantities) # Export to CSV for further processing df.to_csv("elements.csv", index=False)
# Full pipeline: Revit → Excel → Cost Estimate from semantic_search import CWICRSemanticSearch # 1. Convert Revit exporter = RevitExporter() xlsx = exporter.convert("project.rvt", "complete", ["bbox"]) # 2. Extract quantities df = exporter.read_elements(str(xlsx)) quantities = df.groupby('Category')['Volume'].sum().to_dict() # 3. Search CWICR for pricing search = CWICRSemanticSearch() costs = {} for category, volume in quantities.items(): results = search.search_work_items(category, limit=5) if not results.empty: avg_price = results['unit_price'].mean() costs[category] = volume * avg_price print(f"Total estimate: ${sum(costs.values()):,.2f}")
Use appropriate mode - basic for quick analysis, complete for full data Include bbox - Required for spatial analysis and visualization Batch carefully - Large files may take time; process overnight Validate output - Check element counts against Revit schedules
GitHub: cad2data Pipeline Download: See repository releases for RvtExporter.exe
Data access, storage, extraction, analysis, reporting, and insight generation.
Largest current source with strong distribution and engagement signals.