Skill 詳細

rvt-to-excel

Produces Excel exports but only from Revit data.

一致度一致の可能性excelスプレッドシート 向けにレビュー済み
出典datadrivenconstruction/ddc_skills_for_ai_agents_in_construction外部ソース
報告インストール数81人気度の参考値

使用前に確認

自動レビューは関連性のみを確認し、安全性や推奨を保証しません。使用前に出典の説明を読んでください。

保存された出典プレビュー

SKILL.md

これはレビュー時に保存された抜粋です。完全で最新の内容は外部ソースを確認してください。

---
name: "rvt-to-excel"
description: "Convert RVT/RFA files to Excel databases. Extract BIM element data, properties, and quantities."
homepage: "https://datadrivenconstruction.io"
metadata: {"openclaw":{"emoji":"🏠","os":["win32"],"homepage":"https://datadrivenconstruction.io","requires":{"bins":["python3","RvtExporter"]}}}
---

# RVT to Excel Conversion

## Business Case

### Problem Statement
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

### Solution
Convert RVT files to structured Excel databases for analysis and reporting.

### Business Value
- **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

## Technical Implementation

### CLI Syntax
```bash
RvtExporter.exe <input_path> [export_mode] [options]
```

### Export Modes
| Mode | Categories | Description |
|------|-----------|-------------|
| `basic` | 309 | Essential structural elements |
| `standard` | 724 | Standard BIM categories |
| `complete` | 1209 | All Revit categories |
| `custom` | User-defined | Specific categories only |

### Options
| Option | Description |
|--------|-------------|
| `bbox` | Include bounding box coordinates |
| `rooms` | Include room associations |
| `schedules` | Export all schedules to sheets |
| `sheets` | Export sheets to PDF |

### Examples

```bash
# 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
```

### Python Integration

```python
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."
GitHub で全文を読む (外部ページ)
関連情報

関連する仕事