Skip to main content
Glama
sharafutdinovdi

Revit Model MCP

Export View to PNG

revit_export_view
Read-onlyIdempotent

Export a selected Revit view to a PNG file on the MCP client without altering the active view or model. Specify its name/ID, document, pixel size, and output path.

Instructions

Export a selected view to a PNG file on the MCP client. Does not change the active view or the model. A non-empty skipped list means the result is incomplete; skippedCount counts all skipped entries.

Input Schema

NameRequiredDescriptionDefault
viewYesExact non-template view name from revit_list_views, or a view ID as a decimal string.
documentNoTitle or file name substring of the target document; needed when several Revit instances run.
pixel_sizeNoPNG size in pixels along the fitted dimension, 32 to 4000 (default 1600); Revit rejects smaller images.
process_idNoRevit process ID; takes precedence over document.
output_pathNoNew PNG path on the MCP client machine; an existing file is an error. Default null downloads to a temporary directory and returns localPath.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changedv0.10.0
    • changedInput schema / properties / document / description
      Previous value: -"Case-insensitive substring of the target active document title or file name. Reads require exactly one matching instance; omitted document requires exactly one running instance. Zero or multiple matches fail before publishing. revit_list_instances returns all matching instances, or all running instances when omitted."New value: +"Title or file name substring of the target document; needed when several Revit instances run."
    • removedInput schema / properties / document / title
      Removed value: -"Document"
    • addedInput schema / properties / output_path
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "New PNG path on the MCP client machine; an existing file is an error. Default null downloads to a temporary directory and returns localPath."
      +}
    • changedInput schema / properties / pixel_size / description
      Previous value: -"PNG size in pixels along the fitted image dimension, an integer from 1 to 4000. Default 1600 fits the view at that size while preserving its aspect ratio."New value: +"PNG size in pixels along the fitted dimension, 32 to 4000 (default 1600); Revit rejects smaller images."
    • changedInput schema / properties / pixel_size / minimum
      Previous value: -1New value: +32
    • removedInput schema / properties / pixel_size / title
      Removed value: -"Pixel Size"
    • changedInput schema / properties / process_id / description
      Previous value: -"Exact positive Revit process ID. Takes precedence over document; if both are supplied they must agree."New value: +"Revit process ID; takes precedence over document."
    • removedInput schema / properties / process_id / title
      Removed value: -"Process Id"
    • removedInput schema / properties / save_to
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "New PNG file path on the MCP client machine, not the Revit host; an existing destination causes an error. Default null downloads to a local temporary directory and returns localPath.",
      -  "title": "Save To"
      -}
    • changedInput schema / properties / view / description
      Previous value: -"Required exact, case-sensitive non-template view name from revit_list_views, or its Revit view ID as a decimal string; no default. An exact name takes precedence over interpreting a numeric string as an ID."New value: +"Exact non-template view name from revit_list_views, or a view ID as a decimal string."
    • removedInput schema / properties / view / title
      Removed value: -"View"
    • removedInput schema / title
      Removed value: -"revit_export_viewArguments"
    • removedOutput schema / title
      Removed value: -"revit_export_viewDictOutput"
  2. Changed2 schema fields changedv0.7.0
    • changedInput schema / properties / document / description
      Previous value: -"Case-insensitive substring of the target active document title or file name; default null leaves requests unaddressed, so any instance may respond. Use a unique substring with multiple instances; revit_list_instances instead returns all matching instances, or all instances when omitted."New value: +"Case-insensitive substring of the target active document title or file name. Reads require exactly one matching instance; omitted document requires exactly one running instance. Zero or multiple matches fail before publishing. revit_list_instances returns all matching instances, or all running instances when omitted."
    • addedInput schema / properties / process_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Exact positive Revit process ID. Takes precedence over document; if both are supplied they must agree.",
      +  "title": "Process Id"
      +}
  3. Changed4 schema fields changedv0.1.1
    • addedInput schema / properties / document / description
      Added value: +"Case-insensitive substring of the target active document title or file name; default null leaves requests unaddressed, so any instance may respond. Use a unique substring with multiple instances; revit_list_instances instead returns all matching instances, or all instances when omitted."
    • addedInput schema / properties / pixel_size / description
      Added value: +"PNG size in pixels along the fitted image dimension, an integer from 1 to 4000. Default 1600 fits the view at that size while preserving its aspect ratio."
    • addedInput schema / properties / save_to / description
      Added value: +"New PNG file path on the MCP client machine, not the Revit host; an existing destination causes an error. Default null downloads to a local temporary directory and returns localPath."
    • addedInput schema / properties / view / description
      Added value: +"Required exact, case-sensitive non-template view name from revit_list_views, or its Revit view ID as a decimal string; no default. An exact name takes precedence over interpreting a numeric string as an ID."
  4. First observed

TDQS

A3.8/5.0
Behavior4/5

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

With readOnlyHint and idempotentHint already declared, the bar is lower, and the description still adds real context: it confirms the active view and model are untouched, and it explains partial-success semantics (a non-empty skipped list means the result is incomplete; skippedCount counts all skipped entries). That partial-result disclosure is the kind of behavior annotations cannot express.

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

Conciseness5/5

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

Three short sentences with no repetition or filler; the core action and its non-mutating nature come first, followed by the failure-mode caveat. Every sentence carries information.

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 re-explained, and annotations cover the safety profile; the description covers scope, non-mutation, and partial results. The remaining gap is the absence of routing guidance among the export siblings (revit_export, revit_export_nwc), which would help an agent pick correctly.

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

Parameters3/5

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

Schema description coverage is 100%, including the view name format, document vs process_id precedence, pixel_size range, and the output_path/existing-file rule, so the schema does the heavy lifting. The description adds no parameter-level detail beyond that, making the baseline 3 appropriate.

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 and resource ('Export a selected view to a PNG file') and locates the output ('on the MCP client'), which distinguishes it from file-format siblings like revit_export and revit_export_nwc. It does not, however, name any sibling explicitly, so the differentiation is inferential rather than stated.

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?

Usage is implied by the purpose (use this when you want a raster image of a view), and the schema's 'view' parameter points to revit_list_views as the source of valid names. There is no explicit when-to-use versus revit_export / revit_export_nwc guidance and no stated prerequisites, so an agent must infer the choice.

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