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 Utopia5327/claude-plugin-for-revit-bim --skill export-to-excelgit clone --depth 1 https://github.com/Utopia5327/claude-plugin-for-revit-bimWrote 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/utopia5327/claude-plugin-for-revit-bim/export-to-excel)<a href="https://agentmods.dev/skills/utopia5327/claude-plugin-for-revit-bim/export-to-excel"><img src="https://agentmods.dev/badge/skills/utopia5327/claude-plugin-for-revit-bim/export-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/utopia5327/claude-plugin-for-revit-bim/export-to-excel"><img src="https://agentmods.dev/badge/skills/utopia5327/claude-plugin-for-revit-bim/export-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.00142 | $0.01441 |
| Opus 5 | $0.00071 | $0.00720 |
| Sonnet 5 | $0.00028 | $0.00288 |
| Haiku 4.5 | $0.00014 | $0.00144 |
Grade A, and why
export-to-excel scanned grade A with 0 findings 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 10d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 201 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Export Revit Model Data to Excel / CSV
Export model data to a spreadsheet for:
"$ARGUMENTS"
Before writing code
Ask (one question if ambiguous):
- Which category? Rooms, Doors, Windows, Walls, Families, Sheets, or a custom one?
- Which parameters? List them, or default to the most useful set for that category.
- Output path? Default to
C:\Exports\revit_export.csv— user can change it.
Read-only — no model modifications. Safe to run on any model.
Script: Universal parameter export to CSV
import clr
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
import csv, os, System
doc = DocumentManager.Instance.CurrentDBDocument
# ── Configuration ────────────────────────────────────────────────────────────
CATEGORY = BuiltInCategory.OST_Rooms # change to target category
OUTPUT_PATH = r"C:\Exports\revit_export.csv"
# Parameters to export — exact names, case-sensitive
# Leave empty [] to export ALL available parameters (creates wide table)
PARAMS = [
"Name",
"Number",
"Level",
"Area",
"Department",
"Occupancy",
"Comments",
]
# ─────────────────────────────────────────────────────────────────────────────
def get_param_value(el, param_name):
"""Safely read any parameter as a display string."""
param = el.LookupParameter(param_name)
if not param:
return ""
storage = param.StorageType
if storage == StorageType.String:
return param.AsString() or ""
elif storage == StorageType.Double:
# Return in display units (mm² for area, mm for length)
try:
return str(round(param.AsDouble() * 0.0929, 3)) # ft² → m²
except Exception:
return str(param.AsDouble())
elif storage == StorageType.Integer:
return str(param.AsInteger())
elif storage == StorageType.ElementId:
eid = param.AsElementId()
ref_el = doc.GetElement(eid)
return ref_el.Name if ref_el else str(eid.IntegerValue)
return ""
try:
elements = list(FilteredElementCollector(doc)
.OfCategory(CATEGORY)
.WhereElementIsNotElementType()
.ToElements())
if not elements:
OUT = "No elements found in the specified category."
else:
# Determine headers
if PARAMS:
headers = ["ElementId"] + PARAMS
else:
# Auto-discover all parameters from first element
headers = ["ElementId"]
for p in elements[0].Parameters:
if p.Definition:
headers.append(p.Definition.Name)
# Ensure output directory exists
os.makedirs(os.path.dirname(OUTPUT_PATH), exist_ok=True)
# Write CSV
with open(OUTPUT_PATH, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(headers)
for el in elements:
row = [str(el.Id.IntegerValue)]
for param_name in headers[1:]: # skip ElementId
row.append(get_param_value(el, param_name))
writer.writerow(row)
OUT = {
"Exported": len(elements),
"Fields": headers,
"File": OUTPUT_PATH
}
except Exception as e:
import traceback
OUT = "ERROR: " + str(e) + "\n" + traceback.format_exc()
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.
- 10d ago First seen · 201 lines · 142 tokens per session scan A d1d9e69944b5
export-to-excel is a skill published in the GitHub repository Utopia5327/claude-plugin-for-revit-bim (6 stars, last pushed 6mo ago), licensed MIT. It adds 142 tokens to every session and 1,441 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
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.
excel-basic-statistics-and-routing
An Excel workflow for filtering grouped data, calculating averages, extracting row ranges, removing duplicates, and adding totals.
dynamic-percentage-and-large-file-analysis
An Excel analysis workflow that changes its file-processing approach based on file size and calculates selected values and percentages.