Production-ready visual programming scripts for parametric modeling, automation, and quality control in Revit
Dynamo offers incredible power for Revit automation, but many teams struggle to create reliable, reusable scripts that non-technical users can confidently run. This library bridges that gap with production-tested workflows that solve real project challenges.
Each script is designed to be intuitive, well-documented, and robust enough for daily production use. Here are some highlights from the library:
Automatically numbers rooms based on floor level and spatial arrangement. Handles complex layouts with branching corridors and maintains consistency across project phases.
Creates complete sheet sets from template with automatic view placement and title block population. Reduces sheet creation time from hours to minutes.
Scans model for missing or invalid parameter values across all elements. Generates detailed reports highlighting issues that need attention before coordination.
Swaps family instances while preserving location, rotation, and shared parameters. Essential for design iterations and specification changes.
Creates parametric grid systems that adapt to site boundaries and design constraints. Perfect for early-stage layout studies and massing.
# Room Numbering Script - Python Node
# Get all rooms sorted by level and location
rooms = IN[0] # Input rooms from Dynamo
prefix = IN[1] # Department prefix
# Group rooms by level
rooms_by_level = {}
for room in rooms:
level = room.Level.Name
if level not in rooms_by_level:
rooms_by_level[level] = []
rooms_by_level[level].append(room)
# Number rooms sequentially per level
output = []
for level_name in sorted(rooms_by_level.keys()):
rooms_on_level = rooms_by_level[level_name]
for i, room in enumerate(rooms_on_level, 1):
new_number = f"{prefix}-{level_name}-{i:03d}"
room.Number = new_number
output.append(new_number)
OUT = output
The script library has been adopted across multiple projects, becoming an essential part of the BIM workflow and significantly improving team productivity.
Rooms automatically numbered
Sheets created via automation
QC checks performed
Hours saved annually
"These scripts are production-ready and incredibly well-documented. Even team members with no Dynamo experience can use them confidently. The room numbering script alone has saved us countless hours."
— BIM Manager, Architectural Firm
Every script in the library follows strict design principles to ensure reliability and usability:
Clear input prompts and intuitive parameter naming
Comprehensive validation and informative error messages
Detailed comments and usage instructions in-graph
Optimized for large models and batch operations
Problem: Non-technical users intimidated by Dynamo's complexity.
Solution: Created custom UI nodes with clear prompts and added extensive in-graph
documentation with visual guides.
Problem: Scripts slowed significantly in models with 10,000+ elements.
Solution: Implemented filtering before processing and used Python nodes for
performance-critical operations.
Problem: Scripts broke when users updated Dynamo versions.
Solution: Avoided version-specific packages and tested across multiple Dynamo
releases before deployment.
Planned enhancements based on team requests:
Bundle scripts into a single installable Dynamo package
Dedicated interface for easier script configuration
Central repository for script updates and version control
Track script usage and identify optimization opportunities
Whether you need specific automation scripts for your workflow or want to build a comprehensive Dynamo library for your organization, I'd love to help bring your ideas to life.