Parametric Pergola System: From Static to Dynamic
Product Gallery
Executive Summary
I consolidated 20 separate Model Groups into a single, intelligent Parametric Family with data-driven logic. By implementing size-based types, instance design switching, and CSV lookup integration, I achieved a 95% reduction in browser clutter while enabling instant design iteration and eliminating scheduling errors.
The Challenge: Inefficiency in Design Options
Our team frequently utilizes a specific range of pergola designs for landscape projects. Previously, these assets were managed as Revit Model Groups.
The Old Workflow:
To achieve the necessary variations, we maintained 20 separate Model Groups. Each group contained individual beams, rafters, posts, and purlins modeled in place.
The Problems:
- Project Bloat: Copying multiple groups increased file size and cluttered the Project Browser.
- Rigidity: Changing a design size meant deleting the group and placing a new one, breaking any attached dimensioning or tagging.
- Confusion: Designers struggled to map specific product codes to the correct physical model group.
The Solution: A Unified "Super-Family"
I consolidated the entire library into a single, highly intelligent Parametric Family. This reduced 20 separate entities into one file that adapts to all necessary configurations through data-driven logic.
Size-Based Types
- • 7 Core Types: 3x3, 3x4, 3x5, 4x4, 4x5, 5x5, 4x6
- • Clean and intuitive type selector
Instance Design Switching
- • Integer parameter for design options
- • Instant geometry updates without type swap
Technical Deep Dive
1. Simplified Type Management (Size Control)
Instead of creating a Type for every single variation, I streamlined the logic by associating Family Types strictly with Size.
7 Core Types keep the selector clean and intuitive:
2. Instance-Based Design Switching
To handle design variations within sizes, I implemented an Integer Instance Parameter.
3. Integrated Shading Control
To accommodate functional requirements regarding sunlight, I added a Yes/No (Boolean) visibility parameter.
"Closed Shading" checkbox → Toggle between open slats and fully closed roof
Smart Data & Reverse Lookup
One of the biggest friction points for designers was knowing which Revit configuration matched a specific manufacturer Product Code. I solved this using Revit Lookup Tables.
Feature A: Live Code Feedback
I created a calculated text parameter that reads the current Size and Design Integer to display the current "Pergola Code."
Feature B: Reverse Search Engine
I implemented a "Search" text parameter connected to an external CSV lookup table. If a designer has a specific code (e.g., A0109) but doesn't know the parameters, they paste the code into the "Search" field. The family returns the exact Size and Design Number required.
This bridges the gap between technical Revit properties and actual architectural specifications.
// CSV Lookup Example
Search Input: "A1016"
→ Output: Size = 4x4, Design = 2
Impact & Results
- Browser Clutter Reduction
- ~95%
- Model Groups Replaced
- 20 → 1 Family
- Design Iteration Speed
- Seconds vs Minutes
- Scheduling Errors
- Eliminated
- Data Integrity
- 100% Product Code Match
What This Demonstrates About Me
- • System Design Mindset: Thinking beyond "modeling" to engineer data structures.
- • User-Centric Design: CSV lookup bridges designer needs with technical specifications.
- • Optimization Focus: Converting static geometry into intelligent logic for maximum efficiency.
- • Scalability: Building flexible systems that adapt to multiple use cases without duplication.



















