AEC | Architecture - Eliminating Manual Documentation for Hawkins\Brown

Standard Revit functionality restricts users from duplicating sheets that contain views - a major bottleneck for architects managing complex planning applications. We engineered a sophisticated WPF application that bypasses this limitation, allowing the design team to clone entire drawing packages, remap view templates, and enforce company naming conventions in a single automated workflow.

Client
Hawkins\Brown
Timeline
2019 - 2020

The Engineering Challenge

For high-density architecture firms, creating "Drawing Packages" (e.g. for different planning stages) often requires duplicating dozens of sheets and modifying their view templates to show different data. Revit does not natively support duplicating sheets with views, forcing architects to manually create new sheets, copy-paste viewports, and re-assign templates one by one. This manual process was not only time-consuming but prone to human error, often resulting in inconsistent sheet numbering that violated the firm's rigid internal drawing standards.

The Solution Architecture

The Architectural Core

The application is architected as a sophisticated WPF application (.NET 4.7.2) using a strict Model-View-ViewModel (MVVM) pattern. The UI layer integrates Material Design to deliver a refined, modern user experience, while the underlying architecture ensures complete separation of concerns: Views contain zero business logic, and Models encapsulate Revit API interactions.

Key Design Patterns
  • Strategy Pattern (Polymorphism): We implemented an IViewDuplicator interface with concrete strategies (ParentView, DependentView, IndependentView) to handle Revit's complex view hierarchies dynamically.
  • Composite Validation: A chainable IInputValidation system allows multiple rules (character checks, uniqueness, nulls) to execute in real-time, providing immediate feedback via the Material Design UI.
  • Command Pattern: ICommand implementations bind directly to UI actions, managing the CanExecute state to dynamically control the UI based on validation logic.
Revit API Mastery & Performance
  • O(1) Caching Strategy: A multi-level caching system uses nested dictionaries and HashSets to provide instant lookups for View Names and Sheet Numbers, eliminating the performance lag typical in large models.
  • Smart Transaction Management: To minimize expensive Document.Regenerate() calls, we orchestrate creation order—generating all sheets first, regenerating once, then batch-processing view duplication.
  • Edge Case Handling: The solution actively manages "silent failures" in the API, such as empty views that pass validation but fail on placement, or Assembly views that cannot be duplicated as dependents.
Platforms.
Revit
Core Technology.
C#
.NET
Design System.
WPF
Material Design

The Result

The Sheet Duplicator immediately became the #1 most utilized tool within the practice. By automating the time-consuming work of documentation setup, the tool saved countless man-hours per project. Architects could now clone a 50-sheet planning package, re-assign view templates, and increment revision numbers in minutes rather than days. Crucially, the tool acted as a "Quality Gate" creating a hard constraint that ensured no sheet ever entered the model without adhering to the firm's numbering protocols.

#1
Most utilized internal tool across the practice
Zero
Manual setup required for cloning complex drawing packages
2019 - 2023
Revit versions supported

Need this level of efficiency?

Discuss Your Requirements

Manual tasks shouldn't dictate your project deadlines. Let's discuss how we can engineer similar automation tools for your production workflows.