Skip to main content
Glama
sharafutdinovdi

Revit Model MCP

Set Parameter

revit_set_parameter
DestructiveIdempotent

Set a Revit instance or type parameter value for an element using its BuiltInParameter, shared GUID, or UI name. Verify changes with dry_run before committing.

Instructions

Set one instance or type parameter. parameter_id selects by BuiltInParameter name, shared GUID or ParameterElement ID; otherwise parameter takes a localized UI name, BuiltInParameter name or English alias, and ambiguous matches are refused. Value is a string, integer or number by storage type; lengths in mm, areas in m2. Group members fail with a clear message. dry_run rolls back and returns the verification block.

Input Schema

NameRequiredDescriptionDefault
valueYes
dry_runNo
documentNoTitle or file name substring of the target open document; needed when several are open.
parameterYes
element_idYes
parameter_idNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.10.0
    • changedInput schema / properties / document / description
      Previous value: -"Case-insensitive substring of the target open document's title or file name. Required to disambiguate when the Revit process has more than one document open; omit only when a single document is open (the active document is used). An unknown or ambiguous reference is rejected before any change."New value: +"Title or file name substring of the target open document; needed when several are open."
    • removedInput schema / properties / document / title
      Removed value: -"Document"
    • removedInput schema / properties / dry_run / title
      Removed value: -"Dry Run"
    • removedInput schema / properties / element_id / title
      Removed value: -"Element Id"
    • removedInput schema / properties / parameter / title
      Removed value: -"Parameter"
    • removedInput schema / properties / parameter_id / title
      Removed value: -"Parameter Id"
    • removedInput schema / properties / value / title
      Removed value: -"Value"
    • removedInput schema / title
      Removed value: -"revit_set_parameterArguments"
    • removedOutput schema / title
      Removed value: -"revit_set_parameterDictOutput"
  2. Addedv0.7.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=true and destructive=true, so safety is partly covered; the description adds real value beyond them by disclosing that ambiguous matches are refused, group members fail with a clear message, and dry_run rolls back and returns a verification block. It stops short of 5 because it never states that an existing parameter value is overwritten or whether the change is undoable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then packs resolution, typing/units, failure modes and dry_run into three tight sentences. Dense but every clause carries information; slightly overstuffed with semicolons rather than truly wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be described, and annotations cover the safety profile; the description fills in the remaining behavioral gaps (ambiguity refusal, group-member failure, dry-run rollback, unit conventions). Only cross-tool routing and overwrite/undo semantics are missing, which is a minor gap for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at only 17%, the description must carry the load, and it does for the two hardest parameters: it explains the three resolution modes for parameter_id (BuiltInParameter name, shared GUID, ParameterElement ID) versus localized/alias name resolution for parameter, plus value typing and unit conventions (mm, m2). element_id and document receive no added explanation, leaving a small gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Set one instance or type parameter') and scopes it to a single parameter, which implicitly contrasts with the plural sibling revit_update_parameters. It does not explicitly name or differentiate itself from revit_update_parameters or revit_parameter_fill_check, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful selection logic for the 'parameter' vs 'parameter_id' arguments, but never states when to prefer this tool over sibling setters like revit_update_parameters (bulk) or revit_parameter_fill_check. Usage is implied by scope rather than stated, matching a 3.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools