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.
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
Family Editor Opens
Modify parameters without leaving the project view
Parameter Type Coverage
Supports all Revit parameter storage types including materials and formulas
Pre-Check
Read-only and missing parameter validation before modification