Back to Projects

pyRevit Parameter Modifier

Modify family parameters directly from the project environment—no need to open Family Editor. A pyRevit extension for BIM managers seeking streamlined parametric control without workflow interruption.

Python pyRevit IronPython WinForms Revit API

Project Overview

pyRevit Parameter Modifier is a professional pyRevit extension built with IronPython and WinForms that enables BIM managers and Revit users to modify family parameters directly from the project environment. Unlike traditional workflows that require opening each family in Family Editor, this tool allows you to update parameters in-place—saving significant time and eliminating context-switching during design coordination and documentation phases.

The extension leverages the pyRevit framework to integrate seamlessly with Revit, providing a familiar Windows Forms interface for parameter selection, value entry, and formula assignment. It supports all parameter storage types including String, Integer, Double, ElementId (materials), and specialized types such as Yes/No and Color—with appropriate UI controls for each.

Key Features

  • In-Project Parameter Editing: Modify family parameters without opening Family Editor
  • All Parameter Types: String, Integer, Double, ElementId (materials), Yes/No, Color
  • Two Input Modes: Direct Value and Formula—with unit conversion for length parameters (mm, cm, m, ft, in)
  • Material Browser: ComboBox populated from document materials for ElementId parameters
  • Yes/No Toggle: Dedicated ComboBox for boolean parameters
  • Color Picker: ColorDialog integration for color parameter assignment
  • Floor Compound Structure: Special handling for floor layer material editing (__FLOOR_LAYER__)
  • Save Copy Option: Save modified family to disk before reloading into project
  • Current Value & Formula Display: Shows existing value and formula for each parameter before modification
  • Validation: Pre-checks for read-only parameters and missing parameters

Technical Implementation

  • pyRevit Framework: Built on pyRevit for Revit extension deployment
  • IronPython: Python dialect running on .NET for Revit API access
  • WinForms UI: Standard Windows Forms interface
  • Element Selection: PickObjects with custom ISelectionFilter for targeted element selection
  • Formula Path: EditFamily → FamilyManager.SetFormula → reload into project
  • Value Path: Direct parameter.Set() with unit conversion
  • IFamilyLoadOptions: Implementation for automatic overwrite on reload
  • Form Lifecycle: Complete management with FormClosing handler

Technical Specifications

Architecture
  • Framework: pyRevit, IronPython on .NET
  • UI Framework: WinForms (Windows Forms)
  • API: Autodesk Revit API
  • Language: Python (IronPython)
  • Selection: PickObjects, ISelectionFilter
  • Family Handling: EditFamily, FamilyManager, IFamilyLoadOptions
Supported Parameter Storage Types
  • String: Text input
  • Integer: Numeric input
  • Double: Numeric input with unit conversion (mm, cm, m, ft, in)
  • ElementId: Material browser ComboBox
  • Yes/No: Boolean ComboBox
  • Color: ColorDialog picker
  • Floor Layers: Special __FLOOR_LAYER__ material editing

Use Cases

Design Coordination

Update family parameters during coordination meetings without leaving the project or opening multiple families

Documentation Updates

Batch-modify parameter values or formulas across placed instances when project standards change

Material & Color Assignment

Assign materials and colors to family parameters directly from the project material list

Floor Compound Structure

Edit floor layer materials in-place without switching to Family Editor

Project Impact

Zero
Family Editor Opens

Modify parameters without leaving the project view

100%
Parameter Type Coverage

Supports all Revit parameter storage types including materials and formulas

Validated
Pre-Check

Read-only and missing parameter validation before modification