Copy Family Parameters
pyRevit tool for copying formulas and parameter values from source families to target families with automated Shared Parameter setup and ForgeTypeId resolution.
Project Overview
Copy Family Parameters is a professional pyRevit tool built with IronPython that automates the transfer of parameter definitions, formulas, and values between Revit families. This tool addresses a critical workflow gap for BIM managers and content creators who need to standardize families across projects or migrate parameters from legacy content into new templates.
The tool streamlines complex parameter migration by handling Shared Parameter File setup automatically, resolving Revit 2022+ ForgeTypeId compatibility, and supporting all storage types including Material parameters with type-specific naming. It provides a verified 7-step workflow with read-back validation to ensure data integrity throughout the transfer process.
Key Features
- Dual Copy Modes: Copies both formulas and current parameter values from source to target family
- Automated Shared Parameter Setup: Creates a temporary SP file if none is configured
- ForgeTypeId Resolution: Full support for Revit 2022+ ParameterType to ForgeTypeId conversion
- Universal Storage Type Support: String, Integer, Double, ElementId—including Material parameters
- Material Parameter Handling: Type-specific naming (e.g., "Nebula Layer 3") with multi-type iteration
- GUID Preservation: Creates missing parameters via ExternalDefinition with shared parameter GUID preservation
- Verification System: Reads back values after setting to confirm successful transfer
- Transaction Management: Rollback on error for data safety
Technical Implementation
- pyRevit Framework: Built on pyRevit for seamless Revit integration
- IronPython Runtime: Python 2.7–compatible scripting within Revit
- Revit API Integration: Full Document and Family API usage
- ForgeTypeId System: Handles ParameterType deprecation for Revit 2022+
- ExternalDefinition: Dynamic parameter creation in target families
- Transaction Wrapping: Proper transaction management with error rollback
Technical Specifications
Architecture
- Framework: pyRevit (Python-based Revit extension)
- Language: IronPython 2.7
- API: Autodesk Revit API (2022+ with ForgeTypeId)
- Platform: Windows, Revit 2022 and later
- Storage Types: String, Integer, Double, ElementId
- Dependencies: pyRevit, Revit API, Shared Parameter File
7-Step Workflow
- Step 1: Source family selection (.rfa file)
- Step 2: Parameter selection from source
- Step 3: Target family setup (currently active family)
- Step 4: Parameter copy (formulas and/or values)
- Step 5: Material parameter update (per-type iteration)
- Step 6: Cleanup and temporary file removal
- Step 7: Verification report (read-back confirmation)
Use Cases
Template Standardization
Ensure consistent parameter sets across project templates by copying from approved master families
Family Migration
Migrate parameters, formulas, and values from legacy or third-party families into new standardized content
Parameter Inheritance
Propagate parameter definitions and calculated values from a reference family to variants without manual re-entry
Project Impact
Time Reduction
Automated parameter transfer replaces manual copy-paste across dozens of parameters
Verification
Read-back confirmation ensures every copied value matches the source
Structured Steps
Clear workflow from source selection to verification report