Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jdmorag97-rgb/DDC_Skills_for_AI_Agents_in_Construction --skill rvt-to-excelgit clone --depth 1 https://github.com/jdmorag97-rgb/DDC_Skills_for_AI_Agents_in_ConstructionWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jdmorag97-rgb/ddc_skills_for_ai_agents_in_construction/rvt-to-excel)<a href="https://agentmods.dev/skills/jdmorag97-rgb/ddc_skills_for_ai_agents_in_construction/rvt-to-excel"><img src="https://agentmods.dev/badge/skills/jdmorag97-rgb/ddc_skills_for_ai_agents_in_construction/rvt-to-excel/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jdmorag97-rgb/ddc_skills_for_ai_agents_in_construction/rvt-to-excel"><img src="https://agentmods.dev/badge/skills/jdmorag97-rgb/ddc_skills_for_ai_agents_in_construction/rvt-to-excel.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00026 | $0.01600 |
| Opus 5 | $0.00013 | $0.00800 |
| Sonnet 5 | $0.00005 | $0.00320 |
| Haiku 4.5 | $0.00003 | $0.00160 |
Grade A, and why
rvt-to-excel scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
result = subprocess.run(cmd, capture_output=True, text=True) This is a copy
100% identical to rvt-to-excel — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 219 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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
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
# 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
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
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 219 lines · 26 tokens per session scan A 842f608e7870
rvt-to-excel is a skill published in the GitHub repository jdmorag97-rgb/DDC_Skills_for_AI_Agents_in_Construction (2 stars, last pushed 6mo ago), licensed MIT. It adds 26 tokens to every session and 1,600 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). It is 100% identical to rvt-to-excel, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
dcf-model
Build discounted cash flow valuation workbooks in Excel.
audit-xls
Audit a spreadsheet for formula accuracy, errors, and common mistakes. Scopes to a selected range, a single sheet, or the entire model (including financial-model integrity checks like BS balance, cash tie-out, and logic sanity). Triggers on "audit this sheet", "check my formulas", "find formula errors", "QA this…
google-drive-sheets
Find, read, export, edit, and manage the user's Google Drive, Docs, Sheets, and Slides through per-user OAuth.
feishu
Work with Feishu or Lark bots, docs, sheets, bitables, approval flows, and OpenAPI/MCP setup without hardcoding credentials.
large-file-parquet-analysis-and-highlight
A workflow for processing large Excel workbooks by counting their rows, converting them to Parquet when needed, and finding maximum values. Parquet is a data-file format designed for efficient reading.
excel-basic-statistics-and-routing
An Excel workflow for filtering grouped data, calculating averages, extracting row ranges, removing duplicates, and adding totals.