Back to Projects

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.

Python pyRevit IronPython Revit API ForgeTypeId

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

90%
Time Reduction

Automated parameter transfer replaces manual copy-paste across dozens of parameters

100%
Verification

Read-back confirmation ensures every copied value matches the source

7
Structured Steps

Clear workflow from source selection to verification report