Back to Projects

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
Advanced Section

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:

3x3 | 3x4 | 3x5 | 4x4 | 4x5 | 5x5 | 4x6

2. Instance-Based Design Switching

To handle design variations within sizes, I implemented an Integer Instance Parameter.

Workflow
Select 4x4 → Change "Design ID" from 1 to 2 Geometry updates instantly without type swap

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
Types diagram
Data Integration

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

CSV lookup diagram

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.