040 Copy Parameter Values

Chris McKeown / July 1, 2025

Parameters

~8 min read1,527 words
0 views

Overview

Copy Parameter Values reads a parameter value from each element (or its host or level) and writes it to another parameter on the same element. Before writing, you can optionally transform the value — replace text, crop characters from either end, or insert text at a position — giving you fine-grained control over how the value is transferred. The tool works across any element category in the project, making it useful for bulk data migration and parameter population workflows.

040 Copy Parameter Values — main dialog

Table of Contents


Key Features

  • Flexible source selection — copy from any instance or type parameter, or from built-in synthetic sources: Element Id, Element Family Id, Element GUID, Element Type Name, Element Type Id, Element Family Name
  • Host and Level sources — for family instances, copy from a host element's parameter; for elements with a level, copy from the associated level parameter
  • Replace, Prefix, or Suffix modes — overwrite the destination parameter, prepend text, or append text to the existing value
  • String value or raw value — write the display string or the internal raw value of the source parameter
  • Text transforms — seven independent optional operations: Replace, Left Crop, Right Crop, Crop at Position, Insert Before, Insert After, Insert at Position
  • Category Type filter — narrow elements to Model, Annotation, AnalyticalModel, or Internal categories
  • Selection Set scope — operate on Current View, Current Selection, or Entire Project

Requirements

  • Project document (not available in the Family Editor)
  • Target parameter must not be read-only
  • A valid Kiwi Codes Bonus Tools licence must be active

Running the Tool

Launch

Find Copy Parameter Values on the Bonus Tools Ribbon or use 115 Search Tools.

040 Copy Parameter Values — full dialog


Step 1 — Choose Selection Set and Category

Select the scope:

OptionElements included
Current ViewAll elements visible in the active view
Current SelectionElements currently selected in Revit
Entire ProjectAll elements in the project

040 Copy Parameter Values — Selection Set options

Then select a Category Type (Model, Annotation, AnalyticalModel, or Internal) and a Category from the populated dropdown. The From and To Parameter lists refresh to show parameters from elements in that category.

040 Copy Parameter Values — Category dropdown


Step 2 — Choose a Parameter Source

Select the source for the value being read:

SourceWhen available
ElementAlways available — reads from the element itself
HostOnly for Family Instances — reads from the host element
LevelOnly when the element has a LevelId — reads from the associated level

Step 3 — Select From Parameter

From the From Parameter list, select the parameter whose value you want to copy. The list includes:

  • All instance and type parameters on elements in scope
  • Built-in synthetic sources:
    • Element Id — the Revit element ID integer
    • Element Family Id — the family type element ID
    • Element GUID — the element's unique identifier
    • Element Type Name — the type name string
    • Element Type Id — the type element ID
    • Element Family Name — the family name string

040 Copy Parameter Values — From Parameter list


Step 4 — Select To Parameter

From the To Parameter list, select the parameter to write the value into. Read-only parameters are excluded from this list.

040 Copy Parameter Values — To Parameter list


Step 5 — Choose Replace/Append mode

ModeBehaviour
ReplaceOverwrites the destination parameter with the (transformed) source value
PrefixPrepends the source value to the existing destination value
SuffixAppends the source value to the existing destination value

Step 6 — Choose Value Type

OptionBehaviour
As String ValueWrites the display string (formatted as shown in Revit)
Raw ValueWrites the internal raw value (e.g., feet instead of millimetres)

Step 7 — Apply Text Transforms (optional)

Use the Modify From Parameter group to transform the value before writing. Each transform is independent and can be combined:

TransformDescription
Replace textReplaces an occurrence of a substring with new text
Left crop n charsRemoves the first n characters
Right crop n charsRemoves the last n characters
Crop at positionExtracts n characters starting at a given position
Insert beforeInserts text before the value
Insert afterInserts text after the value
Insert at positionInserts text at a specific character position

Tick the checkbox next to each transform you want to apply and enter the required values.


Step 8 — Run

Click OK. The tool processes all elements in scope and writes the (optionally transformed) source value to the destination parameter.

A confirmation reports the result:

X passed. Y failed.

The results dialog lists each element individually — green rows indicate success, orange rows indicate failures with the reason.

040 Copy Parameter Values — results dialog

After running, you can verify the updated values directly in element properties.

040 Copy Parameter Values — updated parameter values in Revit


Tips and Best Practices

  • Use the Entire Project scope carefully. If you change your mind, use Ctrl+Z to undo — the tool runs in a single transaction named "Setting Parameters".
  • Test on Current Selection first. Select a few elements and run the tool to verify the output before expanding scope to the Entire Project.
  • Combine transforms for complex mappings. For example, Left Crop + Insert Before can strip a discipline code and replace it with a new one in one pass.
  • Use Raw Value for unit-sensitive parameters. If the destination parameter is numeric (Length, Area, etc.), Raw Value avoids unit conversion errors.
  • Built-in sources don't require shared parameters. Element GUID and Element Id are always available without needing to add shared parameters to the project.
  • Host source is only available for Family Instances. If you select Host for non-hosted elements, those elements will be skipped.

Common Use Cases

Populating a schedule parameter from the type name — Set From Parameter to Element Type Name, To Parameter to a custom text parameter, and run across the Entire Project to stamp every element with its type name for schedules or exports.

Copying room numbers to doors — Select From Room via the room's associated parameter, choose the Mark or custom door number parameter as the destination, and run to bulk-populate door identifiers from their rooms. (For a dedicated room-to-door tool see 041 Room Number to Doors and Windows.)

Stripping a prefix from parameter values — Use Left Crop to remove a fixed number of characters from the start of an existing value (e.g., removing a "XX-" discipline code before copying to a destination parameter).

Migrating data between parameters after a standard change — When an office standard renames a shared parameter, use Copy Parameter Values to copy all values from the old parameter to the new one across the entire project.

Tagging elements with their host level name — Set Source to Level, From Parameter to Level Name, and write it to a text parameter on the element for use in custom schedules.


Troubleshooting

"Must select one from Parameter and one to Parameter." No From Parameter or no To Parameter is selected in the list. Click one item in each list before clicking OK.

"Copy Parameters failed. Gain ownership of elements and try again." One or more elements are owned by another user in a workshared model. Use Worksets or Editing Requests to gain ownership of the affected elements, then retry.

"X passed. Y failed." with failures Some elements could not be updated. Common causes: the destination parameter is read-only on certain types, the element is part of a group, or the value type is incompatible. Check the Revit output window for details on which elements failed.

"Operation Failed." An unexpected error occurred. Check the Revit journal for details. Ensure the project is not in a corrupted state and retry.

No parameters appear in the From or To lists The selected Category has no elements in scope, or all parameters on those elements are read-only (To list). Change the Selection Set or Category, or verify elements exist in the current view.

Host source is grayed out The selected elements are not Family Instances, or they have no host. The Host radio button is only enabled when elements in scope are hosted family instances.