Production-ready visual programming scripts for parametric modeling, automation, and QA in Revit — built for non-technical teams to use directly.
Dynamo is a powerful visual programming tool for Revit, but most BIM teams lack the programming knowledge to build reliable, production-grade scripts. This library bridges that gap — providing a curated collection of ready-to-use scripts that eliminate repetitive tasks, enforce project standards, and enable non-technical coordinators to leverage automation without writing a single line of code.
Each script is designed as a self-contained, production-ready tool with built-in documentation, error handling, and user-friendly inputs.
Automatically numbers rooms across multiple floors using spatial sorting algorithms. Handles split levels, custom start values, and discipline-specific prefix conventions — replacing a tedious manual process that previously required floor-by-floor verification.
Generates entire sheet sets from CSV templates with proper title blocks, view placement, and numbering sequences. Eliminates the repetitive process of manually creating and configuring hundreds of sheets per project phase.
Scans the entire model against configurable rule sets — checking for missing parameters, invalid values, naming violations, and data inconsistencies. Generates a detailed report with element IDs for quick navigation and fixes.
Bulk-replaces family instances across the model while preserving hosting, parameter values, and spatial positioning. Handles complex scenarios like wall-hosted families, face-based placement, and linked model references.
Creates parametric grid systems from site boundaries with adaptive spacing, rotation, and offset controls. Supports irregular geometries and generates both structural grids and reference planes for early-stage design exploration.
# Intelligent Room Numbering Script
# Sorts rooms spatially by level, then X/Y coords
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
def number_rooms(rooms, prefix, start=100):
"""Number rooms by spatial position per level."""
sorted_rooms = sort_by_position(rooms)
for i, room in enumerate(sorted_rooms):
num = f"{prefix}{start + i}"
room.LookupParameter("Number").Set(num)
return sorted_rooms
# Execute with transaction wrapper
result = number_rooms(IN[0], IN[1], IN[2])
OUT = resultThe script library transformed how teams interact with Revit — turning hours of manual work into minutes of automated processing, with consistent results every time.
"These scripts changed how our entire team works with Revit. The room numbering alone saves us a full day every time we update floor plans. Non-technical coordinators can now run automation that used to require a programmer."
Every script uses custom input nodes with dropdowns, defaults, and tooltips — no coding knowledge required to run.
Comprehensive try-catch patterns with meaningful error messages. Scripts never crash Revit — they report and continue.
In-graph annotations, README files, and video walkthroughs for every script. Built for handoff to any team member.
Optimized for large models with 10,000+ elements. Batch transaction patterns minimize Revit API overhead.
I build custom Dynamo scripts and Revit API tools tailored to your team's workflow. Let's discuss what manual processes you'd like to eliminate.