MCP Connector for Revit Documentation

Complete guide to installing, configuring, and using MCP Connector for Revit - 416 MCP tools across 14 packs, including the 39 free read-only tools, driven by Claude Desktop, ChatGPT Desktop, Cursor, or Claude Code.

Supported Revit Versions

  • Revit 2022
  • Revit 2023
  • Revit 2024
  • Revit 2025
  • Revit 2026
  • Revit 2027

AI Applications

  • Claude Desktop
  • ChatGPT Desktop
  • Cursor
  • Claude Code
  • VS Code (GitHub Copilot agent mode)
  • Visual Studio 2022 17.14+ / 2026 (GitHub Copilot)
  • GitHub Copilot CLI
  • Grok Build (xAI CLI)

Installation

Before you begin

Make sure all running instances of Autodesk Revit are closed before starting the installation.

1
Download the Installer
Download the latest version of MCP Connector for Revit from the product page.
2
Run the Installer
Double-click the downloaded .exe file and follow the installation wizard. Select which Revit versions to install for and accept the licence agreement and privacy policy.
3
Launch Revit
Open Autodesk Revit. Look for the AUTOM8LABS panel in the Add-Ins tab.
4
Start Using MCP Connector for Revit
Click the MCP Connector button to open the configuration dialog and auto-configure your AI application.
Revit Add-Ins ribbon with AUTOM8LABS panel showing the MCP Connector for Revit button

Enabling MCP Connector for Revit

After installation, click the MCP Connector button in the Add-Ins tab to open the connector dialog. Input your licence key and then toggle Enable MCP to start the connection.

The dialog shows the status of detected AI applications:

  • Ready (Running) - The AI application is detected and the MCP server is active
  • Not Detected - The AI application is not currently running
Enabling MCP Connector for Revit - entering the licence key and toggling Enable MCP in the connector dialog

Configuration

MCP Connector for Revit includes one-click auto-configuration for supported AI applications. Click the MCP Connector for Revit button in the Add-Ins tab to open the configuration dialog.

Claude Desktop

Toggle Enable MCP and the connector writes its entry into your Claude Desktop configuration automatically. The config file is located at:

Path
%APPDATA%\Claude\claude_desktop_config.json
Using the Microsoft Store version of Claude Desktop?

The Microsoft Store build does not read %APPDATA%\Claude. Windows redirects that folder into a sandboxed package location, so auto-configuration writes a valid config the Store app never sees, and no tools appear. The redirected file lives here:

%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json

Recommended fix: uninstall the Store version and install Claude Desktop from claude.ai/download (the standalone installer), which uses the standard path. Then click Configure Claude Desktop again and restart.

Alternative: copy claude_desktop_config.json from %APPDATA%\Claude\ into the package folder above, then fully quit Claude from the system tray and reopen it.

ChatGPT / Codex

Toggle Enable MCP and the connector writes its entry into your ChatGPT Desktop configuration automatically. The entry appears in the dialog when ChatGPT Desktop, the Codex app, the Codex CLI or the Codex extension for VS Code is installed on your machine. The config file is located at:

Path
%USERPROFILE%\.codex\config.toml

This file is shared with the Codex CLI, so configuring ChatGPT Desktop makes the Revit tools available in Codex CLI as well. After configuring, fully quit ChatGPT and reopen it. With Revit open and a model loaded, a quick test is to ask ChatGPT to "ping Revit".

Use Work, not Chat. ChatGPT Desktop loads MCP servers from this config file in its Work area only - regular Chat conversations cannot see the Revit tools. If ChatGPT replies that the Revit MCP is not connected, check you are in Work first, then start a fresh conversation - the MCP connection is per-conversation and drops after sitting idle.

Codex in VS Code and WSL. The same entry configures the Codex app, the Codex CLI and the Codex extension for VS Code. If the extension runs Codex inside WSL, the connector also writes the WSL-side ~/.codex/config.toml, pointing at the Bridge through its /mnt/c/... path - the Revit tools appear there with no manual editing.

Cursor

Toggle Enable MCP and the connector writes its entry into your Cursor MCP configuration automatically. The config file is located at:

Path
%USERPROFILE%\.cursor\mcp.json

GitHub Copilot

Toggle Enable MCP and the connector writes its entry into your GitHub Copilot configuration for VS Code, Visual Studio, and the Copilot CLI automatically. The config files are located at:

VS Code
%APPDATA%\Code\User\mcp.json
Visual Studio 2022 17.14+ / 2026
%USERPROFILE%\.mcp.json
GitHub Copilot CLI
%USERPROFILE%\.copilot\mcp-config.json

Grok Build

Toggle Enable MCP and the connector writes its entry into xAI's Grok Build CLI configuration automatically. The config file is located at:

Path
%USERPROFILE%\.grok\config.toml

Grok Build also reads Claude Code's and Cursor's MCP config, so if you have already configured either of those the connector shows up in Grok Build with no extra step.

Claude Code & other MCP clients

MCP Connector for Revit exposes a standard MCP stdio server, so it also works with Claude Code and any other MCP-compatible client. Point your client at the MCP Connector for Revit server command shown in the connector dialog.

Restart Required

After configuring, you must restart your AI application (Claude Desktop, ChatGPT Desktop or Cursor) for the changes to take effect.

Claude Desktop Settings

MCP Connector for Revit exposes 421 tools - 416 across the packs below and five connection tools. In Claude Desktop, enable Load tools when needed so tools are loaded on demand rather than all at once.

The 'Load tools when needed' setting enabled in Claude Desktop

Use Chat, not Cowork

Claude Desktop has a mode selector at the bottom of the message box: Chat and Cowork. MCP connectors run in Chat conversations. In Cowork, your Revit requests will not reach the connector and Claude behaves as if Revit is not connected - even though the connector is configured correctly. Before you start, check the selector is set to Chat.

Note this is the opposite way round to ChatGPT Desktop, where the Revit tools are available in Work rather than regular Chat.

The Chat mode selected in the Claude Desktop message box, with the Cowork option beside it

Local AI Setup

Connect a local AI model to Revit through an MCP-compatible app. These steps are for Windows, on the same computer as Revit.

1. Prepare Revit

  1. Install MCP Connector for Revit and open a sample project.
  2. Open Add-Ins > MCP Connector and turn on Enable MCP. Keep Revit open.
  3. In your AI app, download or select a local model that supports tool calling.

2. Configure your app

Use this entry for Revit 2022 to 2026. For Revit 2027, replace C:\\ProgramData with C:\\Program Files in the JSON.

JSON
{
  "mcpServers": {
    "AUTOM8LABS_Revit": {
      "command": "C:\\ProgramData\\Autodesk\\ApplicationPlugins\\AUTOM8LABS.MCPConnectorRevit.bundle\\Contents\\Bridge\\MCPConnector.Bridge.exe"
    }
  }
}

For separate fields, use AUTOM8LABS_Revit as the name, stdio as the transport, and the command path with single backslashes and no quotes. Leave Arguments blank for this example.

Edit an existing connector entry rather than adding a duplicate. Keep its arguments, environment and tool settings. In an existing JSON file, add only AUTOM8LABS_Revit inside mcpServers, preserving other entries.

Choose your app below. Connection tested means registration, tool discovery and reconnection were checked in that version. It does not mean every model or Revit operation was tested.

  1. Open Settings > Agent Skills once to create the configuration file.
  2. Click the app version number > Open storage. Open plugins/anythingllm_mcp_servers.json and add the entry.
  3. Return to Agent Skills and click Refresh. Check the connector is running.
  4. Start your test prompt with @agent.

AnythingLLM setup guide

  1. Open MCP connections and look for AUTOM8LABS_Revit, including paused entries.
  2. Use that connection if present. Otherwise, add one using the name and command above.
  3. Enable the connection and choose your local model.

Bionic guide

  1. Open Settings > MCP > MCP Servers > Add > Import from JSON.
  2. Paste the JSON, enable the server and check its tools appear.
  3. Open Work > your Agent's menu > Edit > MCP and enable the connector for that Agent.
  4. Select your local model and start a conversation with that Agent.

Cherry Studio setup guide

  1. Open Settings > MCP Servers > Add MCP Server.
  2. Select STDIO and enter the name and command above.
  3. Save, then enable the server. A green indicator confirms it is active.

Jan setup guide

  1. In the right sidebar, open Program > Install > Edit mcp.json.
  2. Add the connector inside mcpServers and save.
  3. Check the connector is available and enabled for your chat.

LM Studio setup guide

  1. Sign in to your local installation. Open MCP settings > Import JSON.
  2. Paste the JSON. The import applies immediately.
  3. Enable the connector and MCP tool use for your chat.

These steps apply to 2026.9.11. Other versions may differ. See Unsloth's current guide.

3. Test the connection

With your sample project open, ask:

Use the Revit connector to tell me the active model name and Revit version. Do not change anything.

In AnythingLLM, prefix this with @agent. Confirm a connector tool runs and the answer matches your open project.

Tool loading and model limits

If available, enable tool selection or on-demand loading and start with a few read-only tools. Large tool lists can exceed a local model's context. A larger context setting alone does not guarantee reliable tool use.

Operator Skill

MCP Connector for Revit ships with a free operator skill - a plain text playbook Claude reads before touching your model. It teaches Claude to use the connector efficiently: read in bulk instead of one element at a time, verify answers with counts, batch edits in one call, and say so instead of guessing when something cannot be done. The result is fewer calls, fewer dead chats, and far less of your usage allowance burned on a single question.

Install in Claude Desktop:

  1. Download the skill: revit-connector.zip
  2. In Claude Desktop, go to Settings > Skills > Add > Upload a skill and select the zip.
  3. That is it - Claude picks the skill up automatically in new chats. If you ever find it has not, mention it in your prompt, for example "Follow the revit-connector skill".

Using Claude Code or Cursor instead? Install steps for both are in the mcp-connector-skills repository, which also hosts free skills for the rest of the MCP Connector family.

Uploading the revit-connector skill zip in Claude Desktop via Settings, Skills, Add, Upload a skill

Power BI Dashboards

Free dashboards for model reviews and tool-use records. MCP Connector Pro is required to export reviews or record audit logs.

Model Review dashboard

Review warnings, model checks and changes over time. Your review export supplies the results; an optional Autodesk Data Exchange adds the 3D model.

Download: Model Review v1.0.1 (.pbit). The 3D viewer is included.

Before you start

  • Install Power BI Desktop for Windows (September 2026 or later) and MCP Connector for Revit Pro 3.8.0+.
  • For 3D: close Power BI, install Autodesk Data Connector for Power BI 3.0+, then reopen Power BI. You need an Autodesk account with access to the exchange.

1. Export your review

Open your model in Revit and ask your AI assistant: "Export a model review to C:\AUTOM8LABS\ModelReview". Keep this folder path for step 3.

2. Create a Data Exchange (optional)

Skip this step for charts only. If you already have an exchange, open it in Autodesk Docs and copy its full address.

  1. Publish or upload the same Revit model (2023 or later) to Autodesk Docs, including the 3D view you want to show.
  2. In Files, open the model. Select Sheets & Views > 3D, choose your view, then open its More (...) > Create Data Exchange menu.
  3. Choose a folder, name the exchange and create it. Once ready, open the new exchange and copy its full browser address, including everything after the question mark.

Creating an exchange needs Create + Upload folder permission; loading it needs View + Download. Autodesk's illustrated steps.

3. Open the template

Open the downloaded .pbit file and fill in the setup prompt:

FieldWhat to enter
ReviewDataFolderC:\AUTOM8LABS\ModelReview, or your export folder. Use the parent folder, not a dated snapshot folder.
ExchangeUrlPaste the exchange address from step 2, not the source RVT address. Leave blank for charts only.
ExchangeModelNormally blank. If your folder contains several models, enter the exact model name from your review export.
Power BI template setup prompt with ReviewDataFolder, ExchangeUrl and ExchangeModel fields, followed by the Load button

Select Load, sign in to Autodesk if prompted, then save as a .pbix report.

Use and refresh

Click an issue chart segment or table row to isolate its elements. Colours match the issue class: red for Critical, orange for Warning, purple for Performance Adviser. Room and Space solids are hidden; their review data remains available.

Export another review into the same folder, then click Refresh. To change your folder or exchange link, use Transform data > Edit parameters.

Tool Use Audit dashboard

Review AI-assisted work in Revit using a browser dashboard or Power BI.

Requires: MCP Connector for Revit Pro 3.8.0+ and administrator rights to enable logging.

Download: Tool Use Audit v1.0.0 (.zip)

1. Enable logging

Logging is off by default. On each computer, open Registry Editor as administrator. Create this key if needed, then set its values:

HKEY_LOCAL_MACHINE\SOFTWARE\AUTOM8LABS\MCPConnectorRevit

Value nameType and setting
AuditLogDWORD (32-bit): 1
AuditLogFolderString (REG_SZ): your log folder, e.g. C:\AuditLogs

Create the log folder and give Revit users write access. For multiple computers, use a network share. Restart Revit.

2. Open a dashboard

Extract the ZIP to C:\AuditDashboard or another short path. Keep its files and folders together.

  1. Open audit-dashboard.html in Chrome or Edge.
  2. Select Open audit folder, choose your AuditLogFolder and allow read access.

The dashboard reads files locally and refreshes automatically.

  1. Open AUTOM8LABS Connector Audit.pbip in Power BI Desktop for Windows (September 2026 or later).
  2. Under Transform data > Edit parameters, set AuditLogFolder to your log folder.
  3. Select OK > Apply changes > Refresh.

Select Refresh whenever you want the latest records.

3. Check logging works

Ask your AI assistant to run get_levels in your open Revit model. Wait around 30 seconds, then check for the call. Select Refresh in Power BI.

Time, user, computer, model, AI app, tool, read/write type and outcome, plus the first 300 characters of its arguments. Chat messages, full tool results and bridge-only connection calls are excluded.

Write means the tool can change a model; it does not prove a change occurred. Optional: set AuditReason (DWORD) to 1 in the same registry key, then restart Revit, to request a short explanation from the AI.

CSV files are saved locally, then copied to AuditLogFolder every 30 seconds and when Revit closes. Failed copies retry automatically for files updated within the last seven days.

Local copies are kept for 90 days. Files in your chosen folder are not automatically deleted. See the included README for more detail.

Want your company branding? Contact us.

Administrator Tool Permissions

Choose which tools the Revit connector can run. To record activity, use the separate Tool Use Audit dashboard.

Applies to every user on a computer. From version 3.8.2 a Group Policy can also apply to chosen users, and Revit can ask the user before a removal tool runs. These settings control connector calls; they do not restrict manual Revit commands.

Requires: MCP Connector for Revit 3.8.0+ and administrator rights. Named tool lists need an active Pro licence. Forced read-only works in every edition.

Download: Registry examples v1.0.0 (.zip). Includes three .reg files and setup/restore instructions.

1. Choose an example

force-read-only.reg sets ForceReadOnly (DWORD) to 1. Locks the Read-Only Session switch on, preventing model edits through the connector. Queries, checks and exports remain available, subject to other restrictions.

block-selected-tools.reg sets BlockedTools to delete_elements; purge_unused; deep_purge; ungroup_elements.

These tools are removed and calls to them are refused. Other tools can still make similar changes. Use an approved-tools list for tighter control.

allow-approved-tools.reg sets AllowedTools to get_document_info; get_levels; get_elements. Essential connection/session tools remain available.

Edit the list to suit your team. Blocked tools, disabled packs and read-only restrictions still apply. An empty list removes this restriction.

2. Apply it

Extract the ZIP and review the README and chosen file in Notepad. Each file replaces one registry value; merge any existing blocked names before importing.

  1. Open Registry Editor as administrator. Export this key if it exists, and note whether the value you will change is already present:
    HKEY_LOCAL_MACHINE\SOFTWARE\AUTOM8LABS\MCPConnectorRevit
  2. Use File > Import to import your reviewed example.
  3. Restart Revit and your AI app. In a new chat, ask get_session_info to report the policy, then check the tool list.

IT can deploy the reviewed registry settings to selected PCs using Group Policy Preferences or an Intune PowerShell script. Run deployment with administrator or SYSTEM rights; for Intune, select SYSTEM context and the 64-bit PowerShell host.

Test on a pilot PC before rollout. Restart Revit and the AI app afterwards.

Registry settings apply to everyone using each targeted PC, including BIM Managers. Different groups of PCs can receive different settings. To give some people different permissions, use a Group Policy for users, below.

The installer puts a Group Policy template in the connector's install folder, under Contents\Resources\Policy: AUTOM8LABS.MCPConnectorRevit.admx and en-US\AUTOM8LABS.MCPConnectorRevit.adml. Copy the .admx to your PolicyDefinitions folder and the .adml to its en-US folder. The settings then appear in the Group Policy editor under Administrative Templates, for computers and for users.

A user policy applies to the people it targets and can only tighten what the computer allows: a tool blocked in any policy is blocked. To keep a tool for BIM Managers, block it in a user policy that applies to everyone else.

Set ConfirmRemovals (DWORD) to 1, in the registry key above or through the Group Policy template. Revit then asks Allow or Refuse before any tool that deletes, removes, purges or ungroups runs. The question names the tool, the AI app, the model and the elements. The tool runs only on Allow, and the AI cannot answer for the user.

A call that only previews is not asked about. ConfirmTools adds other tools to ask about. Needs an active Pro licence.

Close Revit. Restore the value's previous type and data from your backup. If it did not exist before, delete only the value added by the example. Keep the other values, including audit settings.

Importing an old backup alone does not remove newly added values. Restart Revit and your AI app afterwards.

Tool Reference

MCP Connector for Revit adds its full tool set across the packs below, including a read-only free tier that works without a licence. The Edition column shows whether each tool is in the free tier or needs Pro. Every tool name shown is the exact identifier exposed to your AI client. Under each description is an example prompt showing how to ask for it in natural language - click any prompt to copy it, paste it into your AI client, and adjust the names and numbers to suit your model.

Annotation Pack

Place and manage dimensions, tags, and text across one view or many - then audit them for clashes.

Tool Example prompt Edition
Align or distribute tags, text notes, and dimensions in the active view to the selection bounds.
align_annotations
Align the selected tags so they line up with the left edge of the selection
Pro
Dimension curtain wall panels in elevation, section, or plan views - one chained string per side, a separate dimension per segment, or a dimension across each individual panel, measuring grid line to grid line or mullion face to mullion face.
auto_dimension_curtain_walls
Dimension the curtain wall panels in the South Elevation along the bottom, mullion face to mullion face, with the overall included
Pro
Auto-create linear dimension strings for orthogonal grids across plan and elevation views, with segment and overall dimensions.
auto_dimension_grids
Auto dimension the grids in all floor plans and elevations with a -2000mm offset and include the overall dimensions
Pro
Dimension the compound structure layers of walls, floors, roofs, and ceilings where a view cuts them - one segment per layer plus an optional overall thickness, set out from the view's crop edge.
auto_dimension_host_layers
Dimension the wall layers on every wall cut in the Typical Wall Section, with an overall thickness on each
Pro
Auto-create vertical dimension strings for levels in elevation views, placed on either side and excluding interior elevations.
auto_dimension_levels
Dimension the levels on all elevations on the left side with a -3000mm offset
Pro
Set out windows and doors along exterior facade walls with plan dimension strings - to each opening's structural jambs (or centrelines), plus the wall ends and an optional overall span.
auto_dimension_openings
Set out the windows and doors along the facade walls in the Level 1 plan with an overall span
Pro
Set out windows and doors in elevation and section views - a chained width string jamb to jamb across every opening, or a separate dimension per opening, with optional sill-to-head heights.
auto_dimension_openings_in_elevation
Set out the windows in the North Elevation jamb to jamb and add a sill-to-head height on each opening
Pro
Dimension each room from its two longest walls - a width and a length string, inside or outside the room, breaking out the doors, windows, and openings by their jambs, with an optional overall total. Angled walls ignored.
auto_dimension_rooms
Dimension every room on Level 1 with width and length strings placed inside each room
Pro
Detect overlapping dimensions, tags, and text notes, and optionally auto-reposition clashing tags to resolve overlaps.
check_annotation_clashes
Check all floor plans for overlapping tags and dimensions and auto-fix the clashes
Pro
Draw detail lines, arcs and circles in a plan, section, elevation, drafting view, legend or sheet, with a line style and a fillet radius that rounds the corners of a run.
create_detail_lines
Draw a 3000 x 2000mm rectangle of detail lines in the active view using the Medium Lines style, with 150mm rounded corners
Pro
Create linear dimensions in a view between element references or between two explicit points.
create_dimensions
Create a dimension between grids 1 and 2 in the active view
Pro
Draw filled or masking regions from project loops, view-frame outlines, a crop band on chosen sides of the crop, or family work planes, across many views in one call.
create_filled_region
Draw a masking region 25 mm inside the crop on the left and top of this view
Pro
Create a line pattern from dash, dot and space segments in millimetres, optionally overwriting an existing one.
create_line_pattern
Create a dash-dot line pattern called Boundary with 6 mm dashes and 2 mm dots
Pro
Create a line style with colour, weight and pattern, or update an existing style's graphics.
create_line_style
Add a line style called Setting Out in red, 3 pixels, using the Boundary pattern
Pro
Place spot elevations or spot coordinates on an element at a point, measuring its top, bottom or nearest surface, in plans, sections, elevations and orthographic 3D views. Works on elements of a linked model too.
create_spot_dimensions
Place a spot elevation on the top of this floor at 4000,3000 in the Level 1 plan
Pro
Create one or more text notes in a view, optionally with a dead-straight leader. A leader always points at an element, and the note is refused if that element is not visible in the view - so a leader can never end up aimed at something off the drawing.
create_text_note
Add a note saying Fire rated wall - refer to detail 5, with a leader pointing at wall 123456 in the Level 1 plan
Pro
Create a text note type by duplicating an existing one and setting its graphics - font, size, bold/italic/underline, width factor, colour, and background.
create_text_style
Create a 3.5mm Arial text style called Notes Red with red text, duplicated from the type named 2.5mm Arial
Pro
Find view-specific elements manually hidden with Hide in View - detail items, detail lines, filled regions, text, tags, dimensions, view-specific DWGs - and delete them, with dry-run preview and optional selection in Revit for review. Model elements and category or filter hides are never touched.
delete_hidden_annotations
Find everything manually hidden in all views - hidden text, detail lines, filled regions, tags - show me the count by category, then delete it all
Pro
Find and replace literal text across text notes, scoped to one view or the whole model, with case and whole-word options and a dry-run preview.
find_replace_text
Replace ISSUED FOR TENDER with ISSUED FOR CONSTRUCTION in every text note - dry run first
Pro
Report elements of given categories that are visible in a view but have no tag there - a QA pre-check before issuing drawings, with an optional check for elements no dimension references.
find_untagged_elements
Check Level 1 for doors, windows and rooms that have no tag before we issue
Pro
Make room tags fit their rooms in a plan view - rotate to the room's long axis, drop to a smaller type in the same family, or push onto a leader just outside the room, stopping at the first fix that works.
fit_room_tags
Make the room tags fit their rooms on Level 1 - rotate them, drop to a smaller type, or leader out the ones that still do not fit
Pro
List dimension types in the document, optionally filtered by style, returning ID, name, and style type.
get_dimension_types
List all the linear dimension types in this model
Pro
Read spot elevations, spot coordinates and spot slopes by view, by element or across the model: the text each one shows, its elevation in millimetres, and the element and point it measures.
get_spot_dimensions
List the spot elevations in this view with the level each one shows
Pro
Read the tags in a view or on chosen elements: the text each one shows, its tag type, what it tags, its head point and leader, with blank and orphaned tags flagged.
get_tags
List the tags in this view that show no text, with the element each one tags
Pro
Read text notes - content, owning view, type and position - filtered by view or by a case-insensitive text search.
get_text_notes
Find every text note containing the word TENDER and tell me which views they sit in
Pro
List, retag or replace keynotes across views, and report tags pointing at entries missing from the keynote table.
manage_keynotes
List the keynotes in this model and retag the ones pointing at removed entries
Pro
Change existing detail lines and arcs: move an end point, redraw an arc through a point, change the line style, or fillet the corner between two lines with a radius.
modify_detail_lines
Fillet the corner between these two detail lines with a 200mm radius
Pro
Override the graphics of dimensions by their value - every dimension under 1 m (or 5 ft) in red, over a value, or within a band - across the active view, a sheet, chosen sheets or every view. Multi-segment dimensions match on any or all segments; a clear mode removes the overrides again; dry run lists the matches.
override_dimensions_by_value
Colour every dimension under 1 m on this sheet red so I can check them
Pro
Delete dimensions, tags, and text notes from one or more views, with session-only scoping and dry-run preview.
remove_annotations_in_view
Remove all the annotations this session created in the active view - dry run first
Pro
Delete tags whose displayed text is blank - the tag-all leftovers where the tagged parameter is empty - from one view or many, with dry-run preview and the tagged element reported for each.
remove_empty_tags
Find and delete empty tags across all floor plans - dry run first
Pro
Switch grid and level heads between 3D and 2D extents per end across many views at once.
set_datum_extents
Switch every grid head in the Level 2 plans to 2D extents
Pro
Add the leader jog to grid and level heads in a view, or read which heads already have one.
set_datum_leaders
Add a leader jog to the grid heads on the north side of Level 1
Pro
Tag exact elements by ID in any view, including assembly views, each with its own tag type, head position and leader, skipping an element that already carries that tag type. Works for any taggable category, including switches, wires, rebar and embeds.
tag_elements
Tag these three light switches with the Switch ID tag, heads 400mm to the right, with leaders
Pro
Tag every instance of selected categories - rooms, doors, windows, walls, equipment, and more - across one or more views.
tag_elements_in_view
Tag all the doors and windows in every floor plan, skipping anything already tagged
Pro
Toggle/show/hide per-view bubbles or swap the two existing flags (state: "swap", side: "both"). Screen sides use the target view's axes and each grid's drawing direction; grid geometry is never reversed. Ambiguous curves and multi-segment grids are reported instead of guessed. Reads both native flags after commit; only verified changes count. A no-op is reported unchanged, and rendered visibility is explicitly unverified.
toggle_grid_bubbles
Hide the grid bubbles at the bottom of the vertical grids in the active view
Pro
Update the text of existing text notes by element id. Each result carries the text read back from the model after the change, and dryRun previews without writing.
update_text_notes
Update note 987654 to read Refer to the structural engineer's drawings
Pro

Connection Tools

Tools for the connection itself rather than the model: choose between the Revit sessions that are running, start Revit, and check a call whose result could not be confirmed. They come with every edition and are in addition to the packs.

Tool Example prompt Edition
After a call whose result could not be confirmed, record that the affected model has been checked so that work can carry on. The call is never repeated automatically.
acknowledge_bridge_recovery
I have checked the model and the last change did go in - acknowledge it and carry on
Free
Read whether a call is waiting to be checked because its result could not be confirmed, and what to inspect first. It changes nothing.
get_bridge_recovery
Did that last call finish? What should I check before carrying on?
Free
List the Revit sessions running on this computer: the Revit release, the model each one shows, whether the connector is enabled there, and which session this connection is using.
list_revit_sessions
Which Revit sessions are open, and which one are you connected to?
Free
Send the following tool calls to another running Revit session, chosen by process, by Revit release or by the model it shows.
select_revit_session
Switch to the Revit session that has the Site model open
Free
Start an installed Revit release on this computer, optionally opening one model, and wait for its connector. Any start-up question Revit asks is left for you to answer.
start_revit_session
Start Revit 2026 and open the Office Block model
Free

Coordination Pack

Run clash detection between disciplines and linked models, manage MEP penetrations, and set up dedicated review views.

Tool Example prompt Edition
Detect clashes between two sets of element categories and report each clashing pair with its location.
check_model_interferences
Check for clashes between structural framing and ducts in this model
Pro
Create or return a dedicated isometric 3D 'Clash Review' view and return its ID.
create_clash_review_view
Create a clash review view for the clashes you just found
Pro
Place rectangular or circular opening family instances at penetration locations, sized automatically.
create_mep_openings
Place opening families at the detected penetration groups, using my Rectangular Opening family for grouped services and my Circular Opening family for single round ones
Pro
Cut native rectangular openings directly into wall and floor hosts at penetration points, without placing a family.
cut_mep_openings
Cut openings directly into the walls at the penetration points, minimum 100 x 100mm
Pro
Detect MEP services from linked models penetrating walls, floors, ceilings, and roofs, grouping them into sized openings.
detect_mep_penetrations
Find every pipe and duct from the MEP link penetrating walls, with 50mm clearance, grouping services within 200mm of each other
Pro
Write clash results to a CSV file and return the row count and written path.
export_clash_report
Export the clash results to C:\Project\Clashes.csv
Pro
Read the boundary sketch of floors, roofs, ceilings and walls with an edited profile as true curves in millimetres - lines, arcs with centre and radius, ellipses and splines - plus an element's location curve.
get_boundary_curves
Give me the boundary of this floor as lines and arcs, with each arc's centre and radius
Pro
Return min, max, centre, and dimensions of element bounding boxes in millimetres, optionally view-specific.
get_bounding_boxes
What are the bounding box sizes of the selected elements in millimetres?
Pro
Read an element's geometry in millimetres: its vertices, edges or faces, with a curved edge returned as the arc, ellipse or spline it is.
get_element_geometry
What are the corner points of this floor slab in millimetres?
Pro
Find elements within a radius of a point or element, returning them sorted by distance with an optional category filter.
get_elements_by_proximity
Find everything within 500mm of the selected column
Pro
Read an element, the document or the active view as the Revit API presents it: the value of every property and read method, with a path to step into what each one returns. It changes nothing.
inspect_api_object
Show me every property of this wall as the Revit API gives it, then step into its location curve
Pro

Data Pack

Read and write element parameters at scale, with full Excel round-trip and intelligent renumbering.

Tool Example prompt Edition
Find elements by category and parameter rules, then write parameter values to every match.
batch_modify_by_filter
For all walls where Fire Rating equals 60, set Comments to Fire rated - dry run first
Pro
Set one parameter to the same value across many elements in a single transaction, reporting per-element results.
batch_set_parameters
Set Comments to Checked on all the selected elements
Pro
Swap many element instances to a different type in one transaction - by type ID or name, matched within each element's own family first - with per-element results and a dry-run preview.
change_element_type
Swap the selected doors to the 838 x 2038mm type - dry run first
Pro
Clear current selection
clear_selection
Clear my current selection
Free
Create a project parameter bound to categories with a data type, group and instance or type scope.
create_project_parameter
Add a text project parameter called Fire Zone to walls and doors, instance, under Identity Data
Pro
Duplicate any element type under a new name and set its type parameters in one step - framing sections, curtain wall and mullion types, doors, walls.
duplicate_element_type
Duplicate the 910 x 2110mm door type as 1010 x 2110mm and set its Width to 1010 mm
Pro
Export element parameters to an .xlsx file, one row per element, ready for editing and re-import.
export_parameters_to_excel
Export the door Mark, Level, and Fire Rating parameters to C:\Project\Doors.xlsx
Pro
Find and replace text parameter values across a category using exact, contains, starts/ends-with, or regex modes.
find_replace_parameter
Replace STORE with Storage in every room name
Pro
Get all categories
get_categories
List the model categories with element counts
Free
Get detailed element info by ID
get_element_by_id
Get the details for element 123456
Free
Count elements by category
get_element_count
How many doors and windows are in the model?
Free
Get all parameters for an element
get_element_parameters
Show me all the parameters on the selected door, including the type parameters
Free
List the ElementIds behind an element set handle (ES-xxxx) returned by get_elements or search_elements; paginated.
get_element_set
Show me the first 50 elements in set ES-0001
Free
Query elements by category, family, type, level
get_elements
List all the doors on Level 1 with their parameters
Free
Get loaded families by category
get_families
List the loaded door families and their types
Free
Get types for a family
get_family_types
What types does the Single-Flush door family have?
Free
Read a specific parameter value across all elements in a category
get_parameter_values_by_category
List the Mark value of every door in the model
Free
List parameters on a category's elements with name, storage type, and instance/type level, for discovering valid names.
get_parameters_for_category
List all the parameters on walls, instance and type, with their storage types
Pro
Get currently selected elements
get_selected_elements
What do I have selected?
Free
Write parameter values from an .xlsx file onto elements matched by an ElementId column, skipping blanks and read-only fields.
import_parameters_from_excel
Import the parameter values from C:\Project\Doors.xlsx back onto the elements - dry run first
Pro
Copy parameter values from a source element to target elements - all writable parameters or a named subset.
match_element_properties
Copy the Head Height and Comments values from the first selected door onto the rest of the selection
Pro
Recall, list, or delete selection sets
recall_selection_set
Recall the selection set called Fire Doors
Free
Renumber elements by view reading order, selection, or path, with level/building prefixes and zero-padding.
renumber_elements
Renumber the doors on Level 1 in view reading order with prefix D- starting at 101
Pro
Save current selection as a named set
save_selection_set
Save the current selection as Fire Doors
Pro
Search for elements by text across names, type names, family names, marks, and comments
search_elements
Search the model for anything named riser
Free
Set selection by element IDs
select_elements
Select elements 123456 and 123789
Free
Set one parameter value on a single element, auto-detecting storage type and rejecting read-only parameters.
set_parameter
Set the Mark of element 123456 to D-101
Pro

Family Editor Pack

Author loadable families end to end without leaving the conversation - start from a template or an existing family, build the reference-plane rig, label it with parameters, flex it to prove it, model extrusions and revolves (tracing imported CAD drawings where you have them), then load the result straight into your project.

Tool Example prompt Edition
Add a family parameter - length, area, volume, angle, number, integer, text, yes/no, or material - instance or type, with an optional formula and default value.
add_family_parameter
Add an instance length parameter called Seat Height with a default of 450mm
Pro
Assign a material to family geometry, optionally through a material family parameter so it stays swappable per type.
assign_material
Assign the Walnut material to the seat and legs, linked through a material parameter so it can be swapped per type
Pro
Link an element or nested instance parameter to a family parameter so it flexes with the type.
associate_family_parameter
Link the extrusion depth to the family parameter Depth
Pro
Capture the family session as an image - isometric, plan, or front elevation - to check the result after geometry changes.
capture_family_view
Show me the family in 3D so we can check the geometry
Pro
End the family editing session - save to the source file, save as a new path, or discard changes.
close_family
Save the family as Ply Chair.rfa in my Families folder and close it
Pro
Copy reference planes, dimensions, geometry or parameters from one family into another.
copy_family_elements
Copy the reference planes and dimensions from the Base family into this one
Pro
Create a solid or void blend between two sketched profiles in a family.
create_blend
Create a blend from the 600 mm square at the base to the 300 mm circle at 1200 mm
Pro
Create one exact solid in the family editor from two forms combined by a boolean: the shape both share, one minus the other, or the two together. No void and no cut relationship is left behind.
create_boolean_solid
Make one solid from the overlap of the barrel section extruded 600mm and the rounded plan outline extruded 200mm
Pro
Draw a curve through reference points in a conceptual mass or adaptive family.
create_curve_by_points
Draw a spline through the reference points I just placed
Pro
Create a solid or void extrusion from closed profile loops, with holes, profile edges locked to reference planes, and top and base bound to length parameters so the solid flexes with the rig.
create_extrusion
Extrude the seat profile 25mm thick from 430mm, locked to the reference planes
Pro
Start a family editing session from a template - the template decides category and hosting behaviour, and an unmatched name returns the available templates.
create_family
Create a new Furniture family called Ply Chair
Pro
Add duct, pipe, cable tray, conduit or electrical connectors to family faces with sizes and flow settings.
create_family_connectors
Add a 100 mm duct connector on the top face and a 22 mm pipe connector on the back
Pro
Add flip controls to a family so instances can be mirrored in the project.
create_family_controls
Add flip controls for both directions to this family
Pro
Draw model or symbolic lines in a family on a reference plane or level.
create_family_curves
Draw the symbolic plan outline for this family as model lines on the reference level
Pro
Dimension between two named reference planes, optionally labelled with a length parameter so the planes move when the parameter changes, or locked.
create_family_dimension
Dimension Left to Right and label it with the Width parameter
Pro
Create or refresh a clean embedded preview - reference planes and sketch clutter hidden - shown in Revit's family browser and Windows Explorer.
create_family_thumbnail
Give the family a clean thumbnail preview before we save
Pro
Create or update named types in the open family with parameter values - one type per finish or size - converting each value by the parameter's own unit and setting materials by name. Identity fields included; formula-driven values are reported rather than overwritten.
create_family_types
In the open family make five types, one per finish: Oak, Walnut, Ash, Black and White, with the manufacturer and model filled in
Pro
Create a form from profiles or points in a conceptual mass: extrusion, loft, revolve or surface.
create_form
Create a solid form from the three profiles in this conceptual mass
Pro
Create materials with shading colour, transparency, and a render appearance from the built-in library, singly or in batches.
create_material
Create a material called Walnut with a dark brown colour and a wood appearance from the library
Pro
Create named reference planes at offsets from the family origin - the skeleton the parameters and geometry hang from.
create_reference_planes
Create Left and Right reference planes 300mm either side of the origin
Pro
Create a solid or void revolve from a radial profile about a vertical or inclined axis - the proper form for turned and splayed pieces.
create_revolve
Revolve the traced leg profile 360 degrees about its raked centreline
Pro
Sweep a profile along a path to create a solid or void in a family.
create_sweep
Sweep the skirting profile along the selected path
Pro
Create a title block family for a sheet size with border, logo and label layout.
create_title_block
Create an A1 title block family with our logo top right and a revision table
Pro
Search the Revit library folders for a family by name or category.
find_library_family
Find a single flush door family in the library
Pro
Flex the family - set test values, switch through every type, regenerate, and report exactly what breaks. All changes are rolled back.
flex_family
Flex Width at 600, 900 and 1200mm and tell me what breaks
Pro
Report the family session's structure - category, types, parameters, named reference planes, geometry inventory, and nested families.
get_family_info
What parameters, reference planes and geometry does this family have?
Pro
Import a DWG or DXF into a plan or elevation view of the family session as a tracing underlay - drawings sharing an origin line up across views.
import_cad_underlay
Import chair-elevation.dwg into the front view as a tracing underlay
Pro
Join solids in the family editor so they read as one solid, unjoin them, or list what is joined, with each join read back off the family.
join_family_geometry
Join the shaft and the head so they read as one solid
Pro
Load a family file into the project, replacing parameters and types when asked.
load_family
Load the door family from C:\Library\Doors\Single Flush.rfa into this project
Pro
Load the session family into the project, overwriting the loaded copy if one exists.
load_family_into_project
Load the family into the project and keep the session open
Pro
List, add, rename or restyle subcategories in a family or project.
manage_object_styles
List the subcategories in this family and add one called Hidden Lines
Pro
Rename a family parameter, change its group, formula, tooltip or default, or convert between type and instance.
modify_family_parameter
Rename the Width parameter to Overall Width and give it a formula of Panel Width + 100 mm
Pro
Start a family editing session from an existing family - a file path, or a family loaded in the active project.
open_family
Open the Single-Flush door family from this project for editing
Pro
Place a nested family inside the open family and align it to reference planes.
place_nested_family
Nest the handle family into this door and align it to the leaf reference plane
Pro
Read the curves out of a CAD import or link, grouped by layer with coordinates in millimetres - lines, arcs, circles, and polylines - to drive extrusion and revolve profiles.
read_cad_geometry
Read the curves on the PROFILE layer so we can trace the revolve
Pro
Set detail-level and view-direction visibility on family geometry - the Family Element Visibility Settings dialog as a tool.
set_family_element_visibility
Show the simple solid at Coarse only and the detailed profile at Medium and Fine
Pro
Set the photometric properties of a light family: colour temperature, distribution, beam angle and intensity.
set_family_light_properties
Set this light family to a 3000 K spot with a 40 degree beam
Pro
Mark a nested family as shared, or unshare it, so it schedules and tags on its own.
set_family_shared
Make this nested family shared so it schedules on its own
Pro
Change the tile pattern, rotation and indent of a divided surface.
set_tile_pattern
Change the divided surface to a hexagon tile pattern
Pro
Switch the family session or active document between metric and imperial display units, with an optional explicit length unit.
set_units
Switch this family to imperial so the dimensions read in inches
Pro

Issue Pack

Export the model for sharing, handover, or coordination - PDF, DWG, IFC, NWC, images, and data, with parameter-based naming.

Tool Example prompt Edition
Export views or sheets to DWG or DXF with layer mapping standards, line scaling, units, and property overrides.
export_dwg
Export sheets A101 to A105 to C:\Exports as DWG using the BS1192 layer standard
Pro
Export the model to IFC with full option coverage: version, property sets, mapping tables, and header metadata.
export_ifc
Export the model to IFC4 Reference View with base quantities to C:\Exports
Pro
Export the model to NWC for Navisworks with full option coverage, including scope, conversion, and faceting controls.
export_nwc
Export the Navisworks Export 3D view to NWC in C:\Exports
Pro
Sheets to PDF with parameter-based naming, all existing ISO/ANSI/ARCH paper sizes, colour and sheet selectors. Default scale 100%; optional exact zoomPercentage (e.g. 50) or fitToPage, never both. Exact scaling needs a supported paperSize; explicit 100 without one keeps original sheet size. Reports actual zoom and anchor fallbacks; nominal A1 at 50% is 420.5 x 297 mm versus A3 420 x 297 mm, so may clip. Combined sheets with differing offsets are centred.
export_pdf
Export sheets A101 to A116 to C:\Exports as individual PDFs named with the sheet number and name
Pro
Export rooms with chosen parameters to CSV or JSON, filtered by level or phase; returns inline if no path is given.
export_room_data
Export the Level 1 rooms with name, number, and area to C:\Exports\Rooms.csv
Pro
Export a schedule view to a CSV file, optionally including column headers.
export_schedule
Export the Door Schedule to C:\Exports\Doors.csv with headers
Pro
Export a view to a PNG or JPG image at a chosen pixel size and quality.
export_view_image
Export the Level 1 plan as a 4000 pixel PNG to C:\Exports
Pro

MEP Pack

Model and interrogate mechanical, electrical and plumbing services - draw ducts, pipes, cable tray and conduit, build systems and circuits, create spaces, and check what is actually connected.

Tool Example prompt Edition
Add insulation to ducts and pipes, or lining to ducts, by type and thickness, across runs, fittings and accessories. Each one is read back from the model.
add_mep_insulation_lining
Add 25mm pipe insulation to the selected chilled water pipes and their fittings
Pro
Add sizes to a pipe segment's or a conduit standard's size table, so a run can take a diameter the table lacks.
add_mep_sizes
Add a 65mm nominal size to the Copper pipe segment, 63.6mm inside and 66.7mm outside diameter
Pro
Cap every open end of the given ducts, pipes and fittings with the cap from the type's routing preferences, with a dry run that lists the open ends first.
cap_mep_open_ends
Cap the open ends on the selected ductwork and tell me any that could not be capped
Pro
Find open MEP connectors and orphaned elements across the model, one level, or one domain. Each finding carries the element id, category, type, level, domain and the connector position in millimetres.
check_disconnected_mep
Check the whole model for disconnected pipework and list the open connectors by level
Pro
Connect two MEP elements through their nearest compatible unconnected connectors - direct where they already meet, otherwise an elbow, transition or union fitting. Anything beyond a single fitting fails with the measured reason rather than forcing the geometry, and both connectors are read back from the model afterwards. Set dryRun to preview the route without touching the model.
connect_mep_elements
Preview connecting these pipe pairs, then make the connections on the ones that come back routable
Pro
Create a cable tray run through ordered points - one straight segment per leg, with an elbow fitting attempted at each interior vertex. Every joint is read back from the model.
create_cable_tray
Run a 300mm cable tray from 0,0,3200 across to 12000,0,3200 and then to 12000,8000,3200
Pro
Create a conduit run through ordered points - one straight segment per leg, with an elbow fitting attempted at each interior vertex. Every joint is read back from the model.
create_conduit
Run 25mm conduit from the panel at 2000,1500,3000 across to 9000,1500,3000
Pro
Create straight ducts, each between two points or between two existing connectors so the joint is real rather than coincidental. Every joint is read back from the model.
create_duct
Add a 400x250 supply duct from 1000,2000,3400 to 8000,2000,3400 on Level 2
Pro
Create a named mechanical duct system from a base equipment connector plus the member element connectors.
create_duct_system
Create a supply air system called SA-01 with AHU-1 as the base equipment and every diffuser on Level 3
Pro
Circuit the given fixtures or equipment to a named panel, then read the circuit back off the model - requested against actually circuited, with Revit's own reason for anything it refused.
create_electrical_circuit
Circuit all the lighting fixtures on Level 2 to panel LP-2 and tell me which ones failed and why
Pro
Create flex duct or flex pipe through a run of points, by flex type and system type, with an optional size. The ends stay free until they are connected.
create_flex_duct_or_pipe
Draw a 200mm round flex duct on the Supply Air system through these three points at 3000mm
Pro
Create MEP Spaces from a linked model's rooms, the host model's areas, or explicit points. The source number and name are mapped onto each Space so schedules reconcile against the architectural model.
create_mep_spaces
Create MEP spaces from the architectural link's rooms on Level 1 and carry their numbers and names across
Pro
Create straight pipes, each between two points or between two existing connectors so the joint is real rather than coincidental. Every joint is read back from the model.
create_pipe
Add a 50mm domestic cold water pipe from 0,0,3000 to 6000,0,3000
Pro
Create a named piping system from a base equipment connector plus the member element connectors.
create_pipe_system
Create a domestic cold water system called DCW-01 based on the booster set with all the Level 1 fixtures
Pro
Draw electrical wires in a floor or ceiling plan through the points given, with either end connected to a device's electrical connector.
create_wires
Draw a wire from this switch to the light fitting, arcing through 2500,1800
Pro
List cable trays with width, height, level, length and service type. Filter by level, type, service or size - a miss returns the available values rather than an empty list.
get_cable_trays
List all the cable trays on Level 3 with their sizes and lengths
Pro
List ducts with size, system, level, length and airflow. Filter by level, system, type or size - a miss returns the available values rather than an empty list.
get_ducts
List the ducts on Level 2 with their sizes, systems and airflow
Pro
Read circuits live from the model - circuit number, panel name, load name, breaker rating, apparent load in VA and the connected element ids.
get_electrical_circuits
Show me every circuit on panel LP-1 with its breaker rating and connected load
Pro
Read every connector on the given elements: index, domain, shape, size and origin in millimetres, flow direction, whether it is connected and the element on the other end. Connection state is read from the model's own connector data, never inferred from proximity.
get_mep_connectors
Show me the open connectors on these pipe fittings and what each connected one joins to
Pro
Read the size tables in millimetres: each pipe segment's sizes with the pipe types that use it, each conduit standard's sizes with bend radius, and the project's duct and cable tray sizes.
get_mep_sizes
What pipe sizes are available on the Copper segment?
Pro
List MEP spaces with number, name, level, zone, area and the airflow, load and occupancy figures Revit exposes.
get_mep_spaces
List the MEP spaces on Level 4 with their areas and design airflow
Pro
List duct, piping and electrical systems with classification, system type, member counts and the flow or load totals Revit exposes.
get_mep_systems
List all the piping systems in this model with their member counts and flow totals
Pro
Per-panel summary read live from the model - distribution system, every circuit with its load name and apparent load, and the connected-load totals.
get_panel_schedule
Give me the panel schedule for LP-2 with the connected load totals
Pro
List pipes with diameter, system, level, length, flow and slope. Filter by level, system, type or size - a miss returns the available values rather than an empty list.
get_pipes
List the domestic cold water pipes on Level 1 with their diameters and lengths
Pro
Read the fittings that duct, pipe, cable tray and conduit types route with - elbows, junctions, crosses, transitions, unions and caps - with their size ranges.
get_routing_preferences
Which elbow and tee does the Standard pipe type route with?
Pro
Walk one MEP system's members - base equipment first, then the elements in connection order where the connectors allow it, with any unordered remainder labelled as such rather than silently mixed in.
get_system_elements
Walk the Domestic Cold Water 1 system from the base equipment and show me the order
Pro
Resize existing ducts - width and height for rectangular, diameter for round, all in millimetres. The achieved size is read back off the model, because Revit can round to the duct type's size catalogue.
resize_duct
Resize these ducts to 500x300 and confirm the sizes Revit actually applied
Pro
Resize existing pipes to a given diameter. Revit may round to the pipe type's size catalogue, so the achieved diameter is read back off the model.
resize_pipe
Resize the selected pipes to 65mm and tell me the sizes Revit actually used
Pro
Set the system type of existing ducts and pipes by name, reading back the system each one ends up in.
set_mep_system_type
Change the selected pipes to the Domestic Cold Water system type
Pro
Set the fittings a duct, pipe, cable tray or conduit type routes with, so corners and branches join when runs are drawn.
set_routing_preferences
Set the Default rectangular duct type to route with a mitred elbow and a tee junction
Pro
Re-sync MEP Spaces against their source - a linked model's rooms or the host model's areas - reporting what was added, removed, renamed, moved and resized, matched on space number.
update_mep_spaces
Re-sync the MEP spaces against the architectural link and show me everything that changed
Pro

Model Management Pack

Audit, purge, compact, and maintain model health - plus worksharing, links, design options, and file operations.

Tool Example prompt Edition
List the open documents and bring one of them to the front.
activate_document
List the open documents and bring the site model to the front
Pro
Move model elements onto a target workset by explicit IDs, category, level, or current selection; creates the workset if new.
assign_elements_to_worksets
Move all the furniture on Level 2 onto the FF&E workset
Pro
Run a full model health audit across every section, including rooms, families, and CAD imports: warnings, element counts by category, unplaced rooms, unused families, imported CAD, and file metrics.
audit_model_health
Run a full model health audit across every section, including rooms, families, and CAD imports
Pro
Compare the shared coordinates of every link against the host and report mismatches.
audit_shared_coordinates
Check that the shared coordinates of every linked model match this one
Pro
Link every CAD file (DWG, DXF, DGN) in a folder into the model with shared import settings.
batch_link_cad
Link every DWG in C:\Project\Surveys into the model in black and white, origin to origin
Pro
Math calculations
calculate
Work out 14 risers at 175mm - what is the total rise?
Free
Close the active document, optionally saving first and optionally exiting Revit afterwards.
close_document
Save and close this model
Pro
Save the model with compaction to reduce file size, reporting before and after sizes; optionally save the compacted copy elsewhere.
compact_model
Compact the model and tell me the file size before and after
Pro
Copy elements of a category, or given ids, from a loaded link into the host model in place using the link's transform. Types the host lacks come across, existing host types win on a name clash, and anything Revit renamed to avoid a clash is reported. Dry run counts by type first.
copy_from_link
Copy the grids and the structural columns from the structural link into this model, in place
Pro
Create a model or drafting fill pattern from a sized preset, lines drawn in the view, explicit segments, or a .pat file, with dry-run preview.
create_fill_pattern
Create a 600x100 herringbone floor pattern and call it Herringbone Oak
Pro
Group model or detail elements into a new named group instance.
create_group
Group the selected walls and doors and name the group Flat Type A
Pro
Create one or more new Revit projects from a named template, a template file or Revit's default template, and save them.
create_model
Create a new project called Site Model from the Architectural template and save it in the Projects folder
Pro
Create a 3D view per workset, isolating each workset's visibility, in workshared models.
create_workset_views
Create a 3D view for each workset so I can review them
Pro
Delete targeted leftovers that a standard purge does not catch - empty elevation tags, imported line patterns, unreferenced scope boxes, unused reference planes, unplaced legends, and more - dry run by default.
deep_purge
Dry-run a deep purge of unused reference planes, empty tags and leftover scope boxes
Pro
Delete elements by ID from the project or the open family session, reporting every dependent Revit removes with them.
delete_elements
Delete that extrusion we just created, and anything tagged to it
Pro
Delete unplaced, unenclosed, or redundant rooms, areas, or MEP spaces.
delete_unplaced_rooms_areas_spaces
Delete all the unplaced and redundant rooms - dry run first
Pro
Edit elements inside a group in one atomic call - ungroup, move, change type, or delete members, regroup, and optionally push the edit to every instance.
edit_in_group
In the Flat Type A group, change the corridor wall to the 200mm type and push the change to every instance
Pro
Convert a non-workshared model to workshared, creating a grids/levels workset and a default workset.
enable_worksharing
Enable worksharing with a Shared Levels and Grids workset and save as central at C:\Project\Central.rvt
Pro
Save a model review snapshot as tables for Power BI or other reporting - every warning and Performance Adviser result with its Element IDs, the model checker figures and element counts - for the open model or every model in a folder. Each run adds a snapshot, so trends build up over time.
export_model_review
Export a model review snapshot of this model to the Model Review folder
Pro
List every design option set in the model, showing each set's options and which is primary.
get_design_options
List the design option sets and which option is primary in each
Pro
Get document title, path, project info, phases
get_document_info
Get the document information
Free
Get all document warnings with severity filter
get_document_warnings
Show me all the warnings in this model grouped by type
Free
Report worksharing history for elements - creator, current owner, last user to change, and workset - with per-user tallies. Workshared documents only.
get_element_history
Who created these walls, and who last changed them?
Pro
List model and detail group types with their placed instances, member counts, and placement points.
get_groups
List every group in the model with its instances and what each one contains
Pro
Get linked RVT, CAD, IFC files
get_linked_files
What files are linked into this model?
Free
Create a new RVT link by full local/UNC file path, origin-to-origin or by shared coordinates. One new type and instance in one transaction; defaults to overlay. Refuses an existing link, self-link and a newer-Revit file. Shared placement never falls back to origin. Returns committed IDs, loaded document and actual transform.
link_revit_model
Link the RVT at C:\Projects\Site.rvt using shared positioning
Pro
List the image files materials use as textures, slot by slot, with the stored path and whether each file is found there, found only by name, or missing.
get_material_textures
Which materials in this model have missing texture images?
Pro
Describe the dialog Revit is showing: its title, its text and its buttons. It changes nothing and presses nothing.
get_open_dialog
Is Revit showing a dialog? What does it say?
Free
Get project phases
get_phases
List the phases in this project
Free
Get project unit settings
get_project_units
What units is this project using?
Free
Get Revit version, username, memory usage
get_session_info
What Revit version am I running, and is there a document open?
Free
Get worksets (workshared docs)
get_worksets
List the worksets with how many elements are on each
Free
Load, unload, reload, remove, or repath linked Revit models, in batches across multiple links.
manage_links
Unload the structural link and reload the MEP link
Pro
Acquire or publish shared coordinates with a linked model or DWG, or set the project base and survey points.
manage_shared_coordinates
Acquire coordinates from the survey DWG link
Pro
Create, rename, or delete worksets in a workshared model, supporting multiple operations in one call.
manage_worksets
Create worksets called Core, Shell, and Interiors
Pro
A model review report in one call: views, sheets, warnings with a critical count, CAD imports and links, families, text, groups, materials, Performance Adviser rules, unused views, import line patterns, empty elevation markers and the Area and Volume Computations setting, with review flags. Writes an .xlsx and a history row for Power BI.
model_checker_report
Run a model checker report on this model and save it as an Excel file on my Desktop
Pro
Open a model from cloud (ACC/BIM 360) or local/network path, with options to detach, audit, unload links, and guard against version upgrades.
open_model
Open C:\Project\Model.rvt detached and discard the worksets
Pro
Test connection to Revit
ping
Ping Revit
Free
Place a face-hosted family on a face of a linked model element.
place_family_on_linked_face
Place the wall light on the linked wall face at the marked point
Pro
Place instances of a group type at points in millimetres - repeated-layout and typical-flat workflows. Model groups only. Optional terrainId and terrainOffsetMm place intact model groups at sampled terrain heights; XY-only points, bounded sampling and verified locations. No continuing terrain association.
place_group_instances
Place two more instances of Flat Type A at 25m and 30m along from the origin on this level
Pro
Press one named button on the dialog Revit is showing. No button is ever chosen for you.
press_dialog_button
Press Cancel on that Revit dialog
Pro
Delete all non-primary design options and their elements, preserving primary geometry with original IDs.
prune_design_options
Delete all the non-primary design options - dry run first
Pro
Purge inside loaded families - open each one, delete unused nested types, materials, orphaned assets and images, then reload it into the project. Reports the size saved per family, with a dry run available first.
purge_families
Purge inside all the loaded families and show me the file size saved on each - dry run first
Pro
Purge unused families, types, view templates, filters, materials, patterns, and imported CAD in iterative passes; supports dry-run.
purge_unused
Purge all the unused elements from the model - show me a dry run first
Pro
Relinquish ownership of all worksets and elements without syncing, for detached models saved as a new central.
relinquish_all
Relinquish everything I own without syncing
Pro
Remove linked files: Revit links, CAD links, PDF and image links, point-cloud links, each with all its instances. Imported CAD is left alone unless asked for, and can be removed on its own. The first call lists what would go and changes nothing.
remove_links
Remove all the CAD links from the model but leave the Revit links in place
Pro
Take missing texture images off materials, leaving each slot its plain colour or value. A texture whose file is found is never touched. The first call lists what would be removed and changes nothing.
remove_missing_material_textures
Show me which missing texture images would be taken off the materials in this model
Pro
Delete the images in Manage Images that nothing uses: placed in no view and set as no image parameter. The first call lists what would be deleted and changes nothing.
remove_unused_images
List the images in Manage Images that nothing in this model uses
Pro
Delete view templates that no view references, filling the gap purge_unused leaves.
remove_unused_view_templates
Delete any view templates that no view is using - dry run first
Pro
Rename elements by ID - materials, reference planes, types, anything with a writable name - with per-element results.
rename_elements
Rename those two materials to Steel - Brushed and Timber - Walnut
Pro
Rename families and family types using search-and-replace rules, with scope, type-inclusion, case-sensitivity, and preview options.
rename_families
Rename every family containing OLD_ to use ARC_ instead - preview first
Pro
Point material textures at where their image files are now: by exact replacement, by swapping the start of a path for a renamed server or a moved library, or by searching folders by file name. The first call lists what would change and changes nothing.
repath_material_textures
The texture library moved from P:\Library to Q:\Library. Show me which material textures would be re-pathed
Pro
Save the active document to a new path, with options for maximum backups, compaction, clearing the transmitted flag, and disabling worksharing.
save_as
Save this model as C:\Project\Model_DETACHED.rvt with compaction
Pro
Save any open document in place, not just the active one.
save_document
Save the structural model that is open in the background
Pro
Change the Area and Volume Computations settings - Areas only or Areas and Volumes, and the room and space area basis - and report before and after.
set_area_volume_computation
Switch Area and Volume Computations to Areas only to speed the model up
Pro
Switch linked Revit models' reference path between absolute and relative in bulk.
set_link_path_type
Switch all the Revit links to relative paths
Pro
Switch group instances to a different group type - propagate a layout variant or standardise mixed instances.
swap_group_type
Swap the selected group instances from Flat Type A to Flat Type B
Pro
Synchronise a workshared model with central and optionally relinquish all worksets, with comment and compaction options.
sync_and_relinquish
Sync with central, relinquish everything, and add the comment End of day
Pro
Undo the most recent operation(s) in Revit - the same as pressing Ctrl+Z - with multi-step support and redo. The safety net when a change was not what you wanted.
undo
Undo that last change
Pro

Modelling Pack

Author core building geometry from coordinates and room boundaries - walls, grids, levels, floors, roofs, ceilings, finishes, and skirting - and read or edit the layer build-up of wall, floor, roof, and ceiling types.

Tool Example prompt Edition
Attach or detach the top or base of walls to a roof, floor, ceiling, toposolid or another wall in one call, naming the target or letting each wall find the nearest element above or below it, with the edge elevation before and after. Revit 2026 and later.
attach_walls
Attach the tops of all the Level 1 external walls to the roof
Pro
Auto-place rooms in every enclosed region on the given levels, skipping regions that already have a room.
auto_place_rooms
Place rooms in every enclosed region on Level 1 and Level 2, numbering from 101
Pro
Copy an element by a translation vector, optionally producing multiple equally spaced copies.
copy_element
Copy the selected desk 5 times at 1800mm spacing along X
Pro
Create a named area scheme - GIA, GEA, NIA - ready for area boundary lines and areas to measure against.
create_area_scheme
Create a GIA area scheme so we can measure gross internal areas
Pro
Create a ceiling from a closed polygon of boundary points on a chosen level and ceiling type.
create_ceiling
Create a ceiling on Level 1 over a 5000 x 4000mm rectangle at the origin using the Plain ceiling type
Pro
Create ceilings inside selected rooms from their boundaries, set at a height offset above each room's level.
create_ceilings_from_rooms
Create ceilings 2700mm above the floor in every room on Level 2
Pro
Create wall, floor, roof or ceiling types from spec build-ups in one call: layers with function, material and thickness, exterior first, core flagged. Missing materials are created first, an existing name is updated in place, and Revit's own layer rules (membranes at 0 mm, shell layers in priority order) are checked and explained per layer, with an option to fix the order. Dry run previews every stack.
create_compound_types
Create a wall type called EXT_Brick_102.5 from this build-up: 102.5 brick, 50 cavity, 100 insulation, 100 block, 12.5 plasterboard. Create any materials we do not have yet
Pro
Create a floor from a closed polygon of boundary points on a chosen level and floor type.
create_floor
Create an 8000 x 6000mm floor at the origin on Level 1 using the Generic 150mm type
Pro
Create horizontal and vertical grid lines with named labels, uniform or variable spacing, and a chosen origin.
create_grids
Create grids A to F at 6000mm spacing and grids 1 to 5 at 4500mm spacing
Pro
Add a fascia or gutter along a roof's edges, or a slab edge along a floor's edges, with the edges taken from the host's own geometry.
create_hosted_sweep
Add a gutter along the outer eaves of this roof
Pro
Create levels at given elevations, optionally auto-generating each level's floor plan view.
create_levels
Create Level 1 to Level 3 at 3000mm intervals and generate a floor plan for each
Pro
Assign mass floors to placed conceptual masses at chosen levels so area and volume schedules populate.
create_mass_floors
Create mass floors on every level for the selected mass
Pro
Draw model lines, arcs and circles as real 3D lines on one level, several levels or every level, with a line style and rounded corners.
create_model_lines
Draw the site boundary as model lines on Level 1 through these points
Pro
Create parts from the selected walls, floors, roofs or ceilings so their layers can be divided and scheduled.
create_parts
Divide the selected floor into parts
Pro
Create named reference planes in a project from two points, standing vertically through every level, with an option to pin them.
create_project_reference_planes
Create a reference plane called Setting Out A from 0,0 to 12000,0 and pin it
Pro
Create arc and spoke grids about a centre point with set angles and radii.
create_radial_grids
Create radial grids about the atrium centre: 6 spokes at 30 degrees and 3 arcs at 5 m spacing
Pro
Create railings. With hostId (a stair or ramp) and no pathMm: railings on all its sides, on the treads or the stringers. With pathMm: one railing along the path (lines and true arcs, millimetres) at levelName + baseOffsetMm, optionally hosted on hostId so it follows the slope. Configure the railing type with edit_railing_type. Optional terrainId enables a strict straight-path terrain-hosted route, checking terrain coverage and the native railing host; unsupported terrain paths are refused without changing the existing path/host defaults.
create_railing
Add a railing along this path on Level 2 using the 1100mm guardrail type
Pro
Create a straight ramp between two points with a set width and rise, built as a sloped floor, with optional railings on both long edges.
create_ramp
Create a 1500mm wide ramp rising 600mm from 0,0 to 7200,0 on Level 1, with railings on both sides
Pro
Place reference points in a conceptual mass or adaptive family at given coordinates or along a curve.
create_reference_points
Place reference points along the curve at 2 m intervals
Pro
Create a footprint roof from a closed polygon of boundary points on a chosen level and roof type.
create_roof
Create a footprint roof on the Roof level over an 8000 x 6000mm rectangle at the origin
Pro
Create floor and wall finishes inside rooms from their boundaries, with optional joining to structural walls.
create_room_finishes
Create floor and wall finishes in rooms 101 to 116 using the Ceramic Tile floor and 12mm Plaster wall types, joined to the structure
Pro
Create a native Revit stair between two levels from straight and spiral runs, with automatic or sketched landings.
create_stairs
Create a stair from Level 1 to Level 2 with two straight runs of 9 risers, 250mm treads and a half landing
Pro
Create a Toposolid from a linked CAD survey - reads 3D contours and survey points, or numeric spot-height labels, straight from the DWG/DXF (with the survey's own units: m, mm, ft and more), positioned by matching the file to the link, with layer filtering and a dry-run placement check. Toposolid on Revit 2024+, topography surface on older versions.
create_toposolid_from_dwg
Create a toposolid from the linked topo survey DWG, reading the contours in metres
Pro
Create native terrain from an explicit concave XYZ boundary, holes and interior points, retaining the supplied outline without hull or padding. Absolute project heights in mm; required level/type; preview by default. Revit 2024+.
create_toposolid
Preview a Toposolid from this concave boundary and courtyard hole, using the supplied absolute heights in millimetres
Pro
Create a concave material region with optional holes wholly inside a Toposolid. Preview by default. Revit 2024/25 uses instance material and positive offset; 2026+ supports signed offsets/types and duplicates a type for an explicit material, preserving shared types.
create_toposolid_subdivision
Preview a material subdivision inside this Toposolid using the supplied boundary
Pro
Inspect or add/move/delete/set absolute heights by current XYZ coordinates. Preserves untouched points, boundary corners and user split lines; preview by default. Revit 2024+; add/move needs 2024.2, delete needs 2024.1.
edit_toposolid_points
Inspect the shape points of this Toposolid before changing their heights
Pro
Preview sampled pad/batter grading from a level elevation or floor level-plus-offset snapshot. Applying copies the source by default and reports all copied IDs. Requires Revit 2024.2+ and straight host boundaries; refuses unresolved daylight, boundary/hole intersections and point limits. Approximate triangulated surface, without native Graded Region/cut-fill-volume or ongoing floor association.
grade_toposolid
Preview a graded pad against Level 0 with the supplied boundary and batter slope, preserving the original terrain
Pro
Fit an existing floor to sampled terrain heights plus an optional offset, retaining its sketch outline, holes and user split-line positions. Preview by default; bounded point sampling and verified elevations. The surface between samples is approximate and has no continuing terrain association.
fit_floor_to_terrain
Preview fitting this floor to the selected terrain with a 50 mm offset, keeping its courtyard hole
Pro
Create new straight Basic wall/fence profiles along an XY path, with a constant vertical height above sampled terrain. Preview by default; triangle crossings retain slope changes and terrain gaps are refused. Existing curved, slanted or attached walls are not edited; joins are disabled and profiles are static.
create_terrain_walls
Preview a straight Basic wall fence along this path, 1800 mm above the terrain
Pro
Batch-create walls from centreline segments with a shared base level, top constraint, and wall type, plus per-wall type and height overrides and a dry-run preview.
create_walls
Draw a 6m by 4m room enclosure on Level 1 in the Generic - 100mm wall type, 3m high
Pro
Divide parts along grid lines, reference planes or sketched lines.
divide_parts
Divide these parts along grid lines B and C
Pro
Divide a curve into equally spaced nodes for adaptive components.
divide_path
Divide the selected curve into 12 equal nodes
Pro
Divide a mass face into a U by V grid ready for panels.
divide_surface
Divide the mass face into a 1.5 m by 3 m grid
Pro
Edit a wall, floor, roof, or ceiling type's layer build-up: resize layers, change materials, add or remove layers - core boundaries preserved, with a dry-run preview and the option to edit a duplicate of the type instead.
edit_compound_structure
Make the structural layer of the selected wall type 100mm and add two layers of 12.5mm plasterboard on the inside
Pro
Edit a curtain wall's grid: add vertical and horizontal grid lines at set positions, clear existing ones, and set the mullions.
edit_curtain_grid
Put vertical grid lines every 1500mm along this curtain wall and a horizontal line at 2100mm
Pro
Replace the boundary of an existing floor or foundation slab in place, keeping its ID, type, level and parameters, with openings and the footprints of other floors cut out.
edit_floor_boundary
Extend this floor's boundary 1200mm to the east and cut a 900 x 900mm opening at 4000,3000
Pro
Extend, trim or replace an existing railing's path, re-host it on a stair, ramp, floor or wall, or reset a stair railing to its default path.
edit_railing_path
Extend this railing 600mm past the end of the stair
Pro
Configure a railing type - top rail, handrails, horizontal rails and balusters - with an option to duplicate the type first.
edit_railing_type
Duplicate this railing type as Guardrail 1100 and set the top rail height to 1100mm
Pro
Get an area's boundary loops and segments - start and end points, lengths, and the bounding element for each segment.
get_area_boundaries
Show me the boundary segments of area 12 and what bounds them
Free
Get areas with scheme, level, number, name, and area in sq ft and sq m, plus per-scheme totals. Areas are separate from rooms.
get_areas
List the GIA areas on Level 1 with the scheme totals
Free
Read the layer build-up of a wall, floor, roof, or ceiling type - function, material, thickness, core and structural layers - plus how many elements use the type.
get_compound_structure
Show me the build-up of the selected floor type
Pro
Read the project base point, survey point, and rotation from true north, and check whether shared coordinates are usable, before placing anything by Easting and Northing.
get_coordinate_system
Where are the project base point and survey point, and can I place by Easting and Northing in this model?
Pro
Read the grid layout, pattern and node count of a divided surface.
get_divided_surface
What is the grid layout on the divided surface of the tower mass?
Pro
Get all grids
get_grids
List all the grids in the model
Free
Get all levels with elevations
get_levels
List the levels with their elevations and element counts
Free
Read materials with their thermal asset, physical asset, identity fields and chosen custom parameters - scoped by name, by use in wall, floor, roof and ceiling types, or to those missing an asset. Writes an .xlsx when asked.
get_material_properties
List the materials used in wall and floor types with their thermal conductivity and density, and flag any without a thermal asset
Pro
List the reference planes of a project or family with their ends, direction and normal in millimetres, plus pinned state and scope box.
get_reference_planes
List the reference planes in this project with their positions
Pro
Get room area summary grouped by level, department, or room name
get_room_areas
Give me the room areas grouped by level
Free
Return a room's boundary loops and segments with start/end points, lengths, and bounding element details.
get_room_boundaries
Get the boundary of the Meeting Room with the length of each wall
Pro
Get rooms with area, volume, boundaries
get_rooms
List all the rooms on Level 1 with their areas
Free
List available wall sweep types (cornices) for skirting, baseboards, and mouldings, with ID, name, and family.
get_wall_sweep_types
What wall sweep types do I have for skirting?
Pro
Join or unjoin geometry between pairs of elements, with the cutting order set explicitly.
join_geometry
Join the selected walls to the floor they sit on
Pro
Merge adjacent parts of the same material back into one.
merge_parts
Merge the selected parts back into one
Pro
Mirror elements about a named reference plane or any origin-and-normal plane, keeping the originals or flipping them in place.
mirror_elements
Mirror the two legs about the Centre reference plane and keep the originals
Pro
Move elements by a millimetre offset in X, Y, and Z, in projects and in the family editor, with dry-run preview.
move_elements
Move those chairs 500mm in X and 250mm in Y - dry run first
Pro
Offset the faces of parts inwards or outwards by a distance.
offset_part_faces
Offset the top face of the selected parts down by 20 mm
Pro
Paint the reveal faces inside window and door openings - jambs, head and sill - across many walls in one call, scoped by wall IDs, a wall type name, or the current selection, with dry run and paint removal.
paint_opening_reveals
Paint the window reveals on every External Brick wall with the Plaster material - dry run first
Pro
Place adaptive components on divided surface nodes or explicit point sets.
place_adaptive_components
Place the curtain panel adaptive component on every node of the divided surface
Pro
Place area boundary lines in an area plan - trace the level's exterior walls at the inside face, outside face, or centreline, or draw explicit loops, optionally placing an area in each closed loop.
place_area_boundary_lines
Trace Level 1's exterior walls at the inside face on the GIA area plan and close the loops
Pro
Place areas at points in an area plan, each inside a region enclosed by area boundary lines, with optional names and numbers.
place_areas
Place an area in each closed region on the Level 1 GIA area plan and number them from 01
Pro
Place family instances in bulk from an .xlsx or .csv coordinate table - one row per instance, mixing families, types, levels, and rotations, in project or shared survey coordinates.
place_families_from_excel
Place the trees from tree-schedule.xlsx by Easting and Northing with units in metres - dry run first
Pro
Place loaded family types at points. Doors/windows automatically select walls that fit the opening elevation and width; ambiguous hosts return candidate IDs. Checks explicit hosts and stored sill heights. Revit warning/error batches roll back with native diagnostics. Supports survey coordinates, rotation and flips; target=family places nested families in the open family session. Optional terrainId samples native terrain Z at XY for unhosted project families, with terrainOffsetMm; explicit Z/host and nested-family terrain placement are refused. Placement is static and verified, including Planting offsets.
place_family_instances
Place the Armchair type at these three points on Level 1, rotated 90 degrees
Pro
Place wall-sweep skirting along the base of room-bounding walls on the interior face, cut at openings.
place_skirting_in_rooms
Place skirting in every room on Level 1 using the Base Simple sweep type
Pro
Rename wall, floor, roof and ceiling types to a naming standard from a template with tokens for category, function, structural material, width and layer stack, with code and material-alias overrides. Clashes get a numeric suffix; dry run shows the old and new names.
rename_compound_types
Rename all the wall types to AML_WAL_{FUNC}_{MATERIAL}_{WIDTH} and show me the old and new names first
Pro
Renumber grids by position and levels by elevation with a naming rule, avoiding name collisions.
renumber_datums
Renumber the grids left to right as A to K and the levels bottom to top as L00 upwards
Pro
Rotate elements by an angle about a vertical axis through a point, an arbitrary axis, or the centre of the set.
rotate_elements
Rotate the selected desks 45 degrees about the centre of the group
Pro
Apply or change the colour fill scheme on an area plan.
set_area_color_fill
Apply a colour fill by department to the Level 1 area plan
Pro
Set the 3D extents of grids and levels: a grid's vertical range, a plan rectangle for level lines and straight grids, or exact ends for one grid.
set_datum_3d_extents
Stretch all the grids to run from the lowest level to the roof, with a 2000mm margin
Pro
Set a material's physical and thermal assets, identity fields and custom parameters, singly or in batch; strip assets, delete orphaned ones, or apply one set of values to every material matching a filter.
set_material_properties
Set Concrete, Cast-in-Place to conductivity 1.8, specific heat 880 and density 2400, with a concrete physical asset at 32 MPa
Pro
Exclude parts from the model or bring them back.
set_parts_excluded
Exclude the selected parts from the model
Pro
Show parts, the original element, or both in a view.
set_parts_visibility
Show parts instead of the original in this view
Pro
Resize reference planes to one length or match a chosen plane, with an align option to line parallel planes up into a single band.
set_reference_plane_extents
Make all the reference planes the same length as the one I have selected and line their ends up with it
Pro
Set upper limit, limit offset and base offset on rooms in bulk, and the computation height of levels.
set_room_extents
Set every room on Level 2 to an upper limit of Level 3 with a 0 offset
Pro
Make walls vertical, slanted (one angle from vertical) or tapered (an inward angle per face, on a type with a variable-width layer), optionally setting the doors and windows they host to follow the lean, with the angles and top and bottom widths read back.
set_wall_cross_section
Slant the selected walls 10 degrees outward and make their doors and windows follow the wall
Pro
Set the location line of walls - wall or core centreline, finish or core faces - controlling which face holds still when the type's thickness changes and how the wall flips.
set_wall_location_line
Change the selected walls' location line to finish face exterior
Pro
Ungroup model or detail group instances, releasing their members in place.
ungroup_elements
Ungroup every instance of the Furniture Layout group and delete the group type if it ends up empty
Pro

Reporting Pack

Manage revisions and the drawing register, run quantity and finish takeoffs, compare elements, and produce analysis reports.

Tool Example prompt Edition
Add one or more revisions to selected sheets, by sheet number, ID, or all sheets.
add_revision_to_sheets
Add revision P01 to sheets A101 to A116
Pro
Read a company drawing register / issue sheet template (.xlsx) and detect its header row and column layout, ready for update_drawing_register.
analyze_drawing_register
Read my drawing register template at C:\Project\Register.xlsx and work out its column layout
Pro
Compare two or more elements side-by-side, showing parameter differences, matching values, and type variations.
compare_elements
Compare the two selected doors and show me the parameter differences
Pro
Create a new revision row in the Sheet Issues/Revisions table with description, date, issuer, visibility, and numbering sequence.
create_revision
Create a new revision dated today with the description Issued for Planning, issued by JG
Pro
Delete revision clouds by view, sheet or revision.
delete_revision_clouds
Delete every revision cloud on sheet A201
Pro
Write sheet and revision data to an .xlsx drawing register - simple one-row-per-sheet list format, into a template workbook or a new workbook.
export_drawing_register
Export a drawing register for all the A-series sheets to C:\Project\Register.xlsx
Pro
Export model warnings to a CSV or JSON health-check report with descriptions, counts, severity, and affected element IDs.
export_warnings_report
Export all the model warnings to a CSV health report at C:\Project\Warnings.csv
Pro
Aggregate material volume and area across model elements for takeoff, filtered by category or material and grouped flexibly.
get_material_quantities
Total up the material volumes for walls and floors, grouped by material
Pro
Report revision settings and available numbering sequences to find the correct sequence ID before creating revisions.
get_revision_settings
What revision numbering sequences does this model use?
Pro
List all revisions in the document with sequence number, date, description, and issued status.
get_revisions
List all the revisions in the model with their dates
Pro
Report room finish data including wall, floor, and ceiling finishes, bounding elements, and contained furniture counts.
get_room_finishes
Report the wall, floor, and ceiling finishes for the rooms on Level 1
Pro
Get schedule data as structured JSON
get_schedule_data
Show me the data in the Door Schedule
Free
List all schedules
get_schedules
List all the schedules in this model
Free
List sheets with their assigned revisions and current revision details, for drawing issue registers.
get_sheet_revisions
Which revisions are on sheets A101 to A116?
Pro
Remove a revision from selected sheets, optionally deleting associated revision clouds and the revision itself.
remove_revision_from_sheets
Remove revision P01 from sheet A105 and delete its revision clouds
Pro
Fill a matrix-style drawing issue sheet (one row per drawing, one column per revision with date headers) from sheet and revision data, using your company's own .xlsx template - the AI maps the columns, no fixed layout assumed.
update_drawing_register
Update my drawing issue sheet at C:\Project\Issue Sheet.xlsx in place with the current sheet and revision information, overwriting the template
Pro
Edit, issue, unlock or delete a revision: description, date, issued by and to, numbering and visibility.
update_revision
Issue revision 3 and lock it
Pro

Selection Pack

Pin and unpin elements to lock down or release your selection.

Tool Example prompt Edition
Pin the selected elements (or a passed elementIds set) so they can't be moved or accidentally deleted. Skips already-pinned, reports un-pinnable elements, and previews with dryRun.
pin_selection
Pin the selected grids so nobody can move them
Pro
Unpin the selected elements (or a passed elementIds set) so they can be moved or edited again. Previews with dryRun.
unpin_selection
Unpin the selected elements
Pro

Structural Pack

Frame the building - beams, beam systems, columns, braces and foundations - then cope the framing, cut slab openings, and read the analytical model for handoff.

Tool Example prompt Edition
Sweep for structural elements with no support found - framing ends, column bases and floor undersides. Geometric probing within a tolerance plus the analytical model, so treat the output as a list to review rather than a verdict.
check_structural_supports
Check the model for unsupported beams and columns and list what needs looking at
Pro
Apply Revit's coping cut where structural framing meets columns or other beams, scoped by element ids or by level.
cope_framing
Cope the beams against the columns on Level 3
Pro
Create a beam system filling a bay. The boundary comes from points or four grid lines, with the direction and spacing set from a grid or given explicitly.
create_beam_system
Create a beam system in the bay between grids A, B, 1 and 2 spanning north to south at 2400mm centres
Pro
Create straight structural beams on a reference level. Each entry is a point pair, a column pair, or a run along a grid between two crossing grids.
create_beams
Add beams along grid B between grids 1 and 5 on Level 2
Pro
Create structural braces between two levels, with each end given as a grid intersection or a millimetre point.
create_braces
Add braces from Level 1 to Level 2 between grids A1 and A2
Pro
Create isolated footings under structural columns, or at explicit points on a named level. Under a column the footing takes that column's base level and position.
create_foundations
Add isolated footings under every structural column on the Foundation level
Pro
Cut rectangular, rounded or round openings through the web or flanges of beams and braces using Revit's own beam opening, with no void family.
create_framing_openings
Cut a 300mm diameter opening through the web of this beam, 1500mm from its start
Pro
Cut a rectangular opening through a structural floor, given either a centre with width and depth or two opposite corners.
create_slab_openings
Cut a 1200 x 800 opening through the Level 2 slab centred at 4500,3000
Pro
Create vertical structural columns at points and at grid intersections, between a base and a top level.
create_structural_columns
Place 300x300 concrete columns at every grid intersection from Level 1 to Level 2
Pro
Read the structural analytical model for handoff to analysis - each analytical element, the physical element it belongs to, and the member line endpoints or panel boundary loops.
get_analytical_model
Read the analytical model for the frame so I can hand it to the engineer
Pro
Read structural framing, columns, foundations, structural floors and structural walls - family, type, level, structural material, structural usage and key geometry.
get_structural_elements
List the structural framing on Level 3 with sizes, materials and lengths
Pro
Batch parameter writes on structural framing - z and y offsets in millimetres, plus z and y justification.
set_framing_parameters
Set the selected beams to top justification with a -50mm z offset
Pro

Sustainability Pack

Store carbon factors on materials, calculate embodied carbon per element and per material, find the hotspots, compare constructions, and present it as a coloured view, a schedule or a report. Quantities are scoped like a Revit schedule: main model plus primary design options, elements present at the end of the last phase.

Tool Example prompt Edition
Calculate embodied carbon per element and per material for a category, level or selection, scoped like a schedule.
calculate_embodied_carbon
Calculate the embodied carbon of the structure on Levels 1 to 5
Pro
Report how much existing fabric is retained versus demolished by area and mass.
calculate_existing_retention
How much of the existing fabric is retained by area and mass?
Pro
Calculate the glazing ratio of an elevation, orientation or the whole envelope.
calculate_glazing_ratio
What is the glazing ratio of the north elevation?
Pro
Compare the embodied carbon of two constructions or type substitutions over the same elements.
compare_construction_carbon
Compare the carbon of the external wall type against a timber frame alternative
Pro
Create a 3D view coloured by embodied carbon per element.
create_carbon_analysis_view
Create a 3D view coloured by embodied carbon per element
Pro
Create a schedule of embodied carbon by category, type or material with totals.
create_carbon_schedule
Create a schedule of embodied carbon by category with totals
Pro
Write the embodied carbon results to an xlsx or csv file and return the path.
export_carbon_report
Export the carbon report to C:\Reports\carbon.xlsx
Pro
Rank elements, types or materials by embodied carbon and return the top of the list.
find_carbon_hotspots
Which ten elements carry the most embodied carbon?
Pro
Break an element down by material with volume, mass and carbon.
get_element_material_breakdown
Break down the selected wall by material, volume, mass and carbon
Pro
Read the carbon factors stored on materials and list the materials without one.
get_material_carbon_data
Which materials in this model have no carbon factor?
Pro
Store an embodied carbon factor, density and source on a material, singly or in batch.
set_material_carbon_data
Set the embodied carbon factor on Concrete C35 to 0.12 kgCO2e per kg with a density of 2400
Pro

Views & Sheets Pack

Build out the documentation set - create views and sheets, place and align viewports, manage templates, scope boxes, and sheet sets.

Tool Example prompt Edition
Adjust viewport title-line length to match the title text width or a fixed length across sheets.
adjust_viewport_title_line
Set the viewport title line length to 60mm on sheets A101 to A116
Pro
Align viewport positions across target sheets to match a chosen reference sheet.
align_viewports
Align the viewports on sheets A102 to A110 to match sheet A101
Pro
Audit RVT link display across views - which views show a link By Linked View or Custom, and which view from the linked model is displayed. (Revit 2024+)
analyze_linked_view_usage
Which views show the structural link By Linked View or with a custom setting?
Pro
Diagnose why elements are not visible in a view, checking categories, filters, phases, view range, and more. Select the elements in a view where they show (the default 3D view works well), or pass IDs from get_elements.
analyze_visibility
I have selected a door in the 3D view - why is it not showing in the Level 1 floor plan?
Pro
Apply a scope box to specified views so their crop follows the box.
apply_scope_box
Apply the Block A scope box to all the Level 1 and Level 2 floor plans
Pro
Apply or remove a view template across specified views, view types, or name-matched views.
apply_view_template
Apply the Architectural Plan template to every floor plan with WIP in the name
Pro
Put grids, levels and reference planes into a named scope box.
assign_scope_box
Put grids A to F and Levels 1 to 4 in the Block A scope box
Pro
Set parameters across multiple sheets using literals, formulas, view-derived values, and scale calculations.
batch_fill_sheet_parameters
On sheets A101 to A116 set Drawn By to JG, Checked By to AB, and Sheet Issue Date to today in dd/MM/yy format
Pro
Build a chip-and-label legend from a view's filter overrides or from custom entries, creating the legend view when it is new.
build_legend
Build a legend from the fire rating filters in this view with a colour chip and label for each
Pro
Capture the active or named view as a PNG image so a vision-capable AI can inspect the model.
capture_view
Capture the active view as an image and tell me what you can see
Pro
Compare view templates and report where their settings differ - scale, detail level, hidden categories, overrides, filters, and controlled parameters - grouped by view type, with common vs only-in breakdowns.
compare_view_templates
Compare all my floor plan view templates and show me where they are inconsistent
Pro
Copy view-specific elements at the same position into other views, sheets or another open project, creating a drafting view or legend there when needed.
copy_view_elements
Copy the detail lines and text from this callout into its drafting view at the same position
Pro
Copy view filters and their graphic overrides from a source view to target views.
copy_view_filter
Copy the view filters from the Level 1 plan to all the other floor plans
Pro
Copy scale, template, detail level, display style, discipline, phase, and crop from one view to others.
copy_view_setup
Copy the scale, detail level, and crop settings from the Level 1 plan to the Level 2 and Level 3 plans
Pro
Copy view templates between two open documents, with their view filters and visibility settings travelling with them.
copy_view_templates
Copy the RCP and elevation view templates from this model into the Phase 2 model I have open
Pro
Create an assembly from a set of elements, named and typed, ready for assembly views.
create_assembly
Make an assembly from the selected precast panel and its connections and name it PCP-01
Pro
Generate the standard view set - 3D, detail sections, part list, and per-category schedules - for an assembly, optionally on an assembly sheet.
create_assembly_views
Create the standard view set and an assembly sheet for the selected assembly
Pro
Create multiple sheets in bulk with auto-incrementing numbers, prefixes, suffixes, and zero-padding.
create_batch_sheets
Create 10 sheets numbered A201 to A210 called Working Sheet using the A1 title block
Pro
Create front, back, left, right, and top section views oriented to selected elements.
create_element_sections
Create front and left section views through the selected wall at 1:20
Pro
Create an empty legend view at a given scale and return its ID.
create_legend
Create a legend view called Wall Types at 1:20
Pro
Create interior elevations, 3D views, plans, and RCPs for selected rooms, optionally laying them out on sheets.
create_room_elevations
Create four interior elevations for every room on Level 1 at 1:20 and place each room's views on its own sheet in a 2x2 grid
Pro
Create a regular, key, material takeoff, sheet list, view list, note block or keynote legend schedule with fields, filters, sorting, formatting, header image and text styles in one call.
create_schedule
Create a door schedule with Mark, Level, Width, Height and Fire Rating, sorted by Level then Mark
Pro
Create a scope box by duplicating an existing one (optionally offset and renamed), or at exact dimensions from an origin and width/depth/height or min/max corners.
create_scope_box
Create a scope box called Block B by copying Block A and offsetting it 20000mm in X
Pro
Auto-create longitudinal and transverse section views centred on each selected room.
create_section_by_room
Create longitudinal and transverse sections through the Meeting Room
Pro
Create one or more sheets with a title block, optionally placing views at given positions.
create_sheets
Create sheet A301 called Details using the A1 title block
Pro
Create sheets in bulk from a drawing-register .xlsx - sheet number, name, title block, and optional view and scale per row - in one pass, with a dryRun preview.
create_sheets_from_excel
Create sheets from the drawing register at C:\Project\Register.xlsx - dry run first
Pro
Create a named rule-based view filter from categories and parameter rules (equals, contains, greater, less, has value...), combined with AND or OR, optionally applied to views with visibility and graphic overrides.
create_view_filter
Create a view filter called Fire Rated for walls where Fire Rating has a value and colour them red in the active view
Pro
Create a named view template from an existing view - captures its visibility, filters, scale, and detail level - and optionally assign it to views.
create_view_template
Create a view template called Working Plan from the Level 1 plan and assign it to all floor plans
Pro
Create floor plans, reflected ceiling plans, and 3D views with level, scope box, scale, and template options.
create_views
Create a floor plan and a ceiling plan for Level 3 at 1:50
Pro
Create a named saved perspective from internal-origin eye/target millimetres, horizontal FOV and aspect ratio. Verifies native camera metadata after commit; activate and capture the view to check actual model visibility.
create_perspective_view
Create a perspective named Site camera from eye [20000, -30000, 12000] toward [0, 0, 2000], with a 60 degree horizontal field of view and 16:9 aspect
Pro
Update an existing 3D camera, converting to perspective where permitted. Preserves existing far/section clipping unless explicitly changed, protects locked/template-controlled views, and distinguishes saved camera state from rendered visibility.
set_view_camera
Update Site camera to a 45 degree horizontal field of view while retaining its clipping settings
Pro
Delete sheets by name or number (or all except a keep-list), preserving the active sheet.
delete_sheets
Delete every sheet except A101 and A102
Pro
Delete views, by default keeping views placed on sheets and the active view; templates and schedules optional.
delete_views
Delete all the views that are not placed on sheets - dry run first
Pro
Duplicate existing sheets, optionally copying their views onto the new sheets.
duplicate_sheets
Duplicate sheets A101 to A104 including the views on them
Pro
Duplicate one or more views - plain, with detailing, or as dependents - with up to 20 copies per view, name patterns, and a dry-run preview.
duplicate_views
Duplicate the Level 1 plan three times with detailing, named Level 1 - Study {n}
Pro
Find which views and sheets graphically show given elements, scanning sheet-placed views first, with view-type filters and a time budget for large models.
find_element_locations
Which views and sheets show these selected elements?
Pro
Find missing model elements without knowing their IDs. Narrow with categories, e.g. Doors. Searches across document levels and outside the view range; auto scope prioritises the plan level without excluding others. Results distinguish diagnostic candidates from confirmed hidden elements, include vertical-range evidence, and report scan/analysis limits.
find_hidden_elements
Find everything hidden in this view and explain why each one is hidden
Pro
Get current active view details
get_active_view
What view am I in right now?
Free
Read the project browser organisation for views and sheets, including grouping and sorting rules.
get_browser_organization
How is the project browser organised for views and sheets?
Pro
Get visible elements in active view
get_current_view_elements
List the doors visible in the active view with their Mark values
Free
List scope boxes with their extents and optionally the views each is applied to.
get_scope_boxes
List the scope boxes in the model and which views each one is applied to
Pro
List all sheets with viewport info
get_sheets
List all the sheets and the views placed on each one
Free
List project, sheet, and title block parameters usable as naming placeholders in export tools.
get_title_block_info
What parameters are available on sheet A101 that I could use in export filenames?
Pro
List sections and elevations with where each one cuts the model: a point on the cut plane, the direction the view looks and its far clip.
get_view_cut_planes
Where does Section 3 cut the model, and which way does it look?
Pro
List view filters applied to a view, with their visibility state, graphic overrides, and rules.
get_view_filters
What filters are applied to the Level 1 plan and what do they override?
Pro
Read a view template's settings: scale, detail level, display style, discipline, phase filter, view range, controlled vs not-controlled parameters, hidden categories, overrides, and applied filters.
get_view_template_settings
What settings does the 1:50 Plan view template control?
Pro
List view family types, levels, title blocks, scope boxes, and existing view names for the project.
get_view_types
List the view types, levels, and title blocks available in this project
Pro
List the viewport types in the project (Title w Line, No Title, Title Only...) with their title settings and how many viewports use each.
get_viewport_types
What viewport types does this project have, and how many viewports use each?
Pro
List views (floor plans, sections, elevations, 3D, etc.)
get_views
List all the elevation views in the model
Free
Hide, isolate, or reset element visibility
hide_isolate_elements
Isolate the selected elements in the active view
Free
Rearrange existing viewports on a sheet using grid, row, column, or auto layouts to avoid overlaps.
layout_sheet_viewports
Rearrange the viewports on sheet A105 into a two column grid with 10mm spacing
Pro
Manage sheet sets: list, create, delete, rename, add or remove sheets, and export to PDF.
manage_sheet_sets
Create a sheet set called Planning Issue with sheets A101 to A110 and export it as a single PDF
Pro
Manage viewport Saved Positions so Revit enforces the same layout on every sheet - list, create, capture a placed viewport's layout, assign a position to views, clear, or delete, with dry-run preview. (Revit 2026+)
manage_view_positions
Save this viewport layout as a position called GA Standard and assign it to all the level plans so every sheet uses it
Pro
Edit a schedule's fields, headings, widths, units, filters, sorting, appearance, header rows, logo, phase and segments, or read it back.
modify_schedule
On the Room Schedule hide Level, rename Number to No. and total the Area column
Pro
Move the cut plane of a section or elevation by an offset along its viewing direction, or so that it passes through a point.
move_view_cut_plane
Move Section 3's cut plane 500mm further into the building
Pro
Orient and zoom the active 3D view onto specified elements, setting a section box around them. Set orientToFace with a wall or face to rotate the section box square-on (parallel) to it, fitted around the element.
orient_view_to_elements
Zoom the 3D view onto the selected stair and put a section box around it
Pro
Apply graphic overrides (colour, line weight, transparency, halftone) to elements in a view, colour-code elements by a parameter's value with an auto legend, or clear overrides.
override_element_graphics
Colour the walls in the active view by their Fire Rating value and add a legend
Pro
Place views on sheets with auto-layout that sizes viewports to prevent overlaps.
place_views_on_sheets
Place all the room elevation views on sheets grouped by room, numbered sequentially from A201 rather than by room number
Pro
Refit existing interior elevations to the room as it is now after a resize: crop width and height to the room, view depth to the furthest wall face, sheets and viewports untouched. Dry run reports the before and after per view.
refit_room_elevations
Room 203 has been resized - refit its elevations to the new room, 300 mm above and below, and show me the before and after first
Pro
Duplicate a set of sheets with views and detailing as a new drawing issue: renumber, suffix names, set status, strip old revisions and stamp a new one.
reissue_sheets
Reissue sheets A101 to A110 as Tender issue: duplicate with views, suffix names with -T, add revision T1
Pro
Clear a scope box from views or delete the scope box element from the model.
remove_scope_box
Remove the scope box from the Level 1 and Level 2 floor plans
Pro
Rename views by stripping copy/duplicate suffixes or rewriting from a per-view-type naming template.
rename_views
Strip the Copy suffixes from all view names - preview first
Pro
Renumber sheets with a prefix and a zero-padded incrementing sequence, ordered by current number or name.
renumber_sheets
Renumber all the sheets from A100 upwards in steps of 1, ordered by their current number
Pro
Renumber viewport detail numbers with zero-padding, ordered by position, name, or existing number.
renumber_viewport_detail_numbers
Renumber the detail numbers on sheets A101 to A116 by position, starting at 1
Pro
Reset temporary hide/isolate state in the active view
reset_temporary_hide_isolate
Reset the temporary hide and isolate in this view
Free
Switch active view by ID or name
set_active_view
Switch to the Level 2 floor plan
Free
Set a view's crop region to a rectangle in project coordinates so only that area draws - the way to plan one building out of several.
set_crop_region
Crop the Level 1 plan so only Block B draws
Pro
Set a view's display style (wireframe, hidden_line, shaded, shaded_with_edges, consistent_colors, realistic, realistic_with_edges) and optionally its detail level (coarse, medium, fine). Display style is a view property set_parameter cannot reach. A 3D view must be in hidden_line to export as vector line work to PDF; shaded views rasterise. Optional shadow/sunlight intensity, fixed sun angles or UTC still study, and sky/solid/gradient/image backgrounds protect shared sun settings and template controls. Cast/ambient-shadow enable and background None have no supported public setter.
set_view_display_style
Set the 3D Working Model view to hidden line at fine detail
Pro
Set the viewport type on every viewport of the chosen sheets in one call - the active sheet, all sheets, specific sheets or explicit viewports - optionally limited to certain view types or detail numbers.
set_viewport_type
Set every viewport on sheets A501 and A502 to No Title, except detail 01
Pro
Assign a view template to many views at once, matched by view type, name substring, or explicit view IDs.
standardize_view_templates
Make sure every section view uses the Section view template
Pro
Clear the permanent per-view element hide override (Hide in View, Elements) so hidden elements show again - specific elementIds, or every hidden element in the view.
unhide_elements_in_view
Unhide everything that has been hidden in the active view
Pro
Update a view template in place - scale, detail level, display style, discipline, phase filter, hidden categories, filters, and which parameters it controls - applying instantly to every assigned view.
update_view_template
In the RCP template, hide Furniture and set the detail level to Fine
Pro

Warnings Pack

Automated resolvers for Revit's most common warning types - fix every warning matching a pattern in a single call.

Tool Example prompt Edition
Fix identical-instances-in-the-same-place warnings by deleting duplicates, keeping either the original or the newest element.
resolve_duplicate_instances
Resolve the identical instances warnings, keeping the original elements
Pro
Fix duplicate instance Mark warnings by clearing or renumbering marks, with filters, patterns, and batched processing.
resolve_duplicate_marks
Resolve the duplicate Mark warnings on doors by renumbering them
Pro
Fix duplicate Type Mark warnings by clearing or renumbering type marks, with configurable patterns and numbering scope.
resolve_duplicate_type_marks
Resolve the duplicate Type Mark warnings by clearing the values
Pro
Fix joined-but-do-not-intersect warnings by unjoining the highlighted elements.
resolve_joined_not_intersecting
Resolve the elements joined but do not intersect warnings
Pro
Fix multiple-areas-in-the-same-enclosed-region warnings by selecting or deleting redundant areas by a chosen rule.
resolve_multiple_areas_same_region
Fix the multiple areas in the same region warnings by keeping the original area in each and deleting the rest
Pro
Fix multiple-rooms-in-the-same-enclosed-region warnings by selecting or deleting redundant rooms by a chosen rule.
resolve_multiple_rooms_same_region
Fix the multiple rooms in the same region warnings, keeping the original room in each
Pro
Fix 'Area Boundary line is slightly off axis' warnings by snapping to clean angles.
resolve_off_axis_area_boundary
Fix the off axis area boundary line warnings
Pro
Fix 'Grid is slightly off axis' warnings by snapping grids to clean angles.
resolve_off_axis_grids
Snap the slightly off axis grids back to true
Pro
Fix 'Line is slightly off axis' warnings for model and detail lines.
resolve_off_axis_lines
Fix the off axis warnings on model and detail lines
Pro
Fix 'Reference Plane is slightly off axis' warnings.
resolve_off_axis_reference_planes
Fix the off axis reference plane warnings
Pro
Fix 'Room separation line is slightly off axis' warnings.
resolve_off_axis_room_separation
Fix the off axis room separation line warnings
Pro
Fix 'Line in Sketch is slightly off axis' warnings in floor, ceiling, and wall sketches.
resolve_off_axis_sketch_lines
Resolve the line in sketch is slightly off axis warnings
Pro
Fix 'slightly off axis' wall warnings by snapping walls to the nearest clean angle.
resolve_off_axis_walls
Resolve all the off axis walls in the model
Pro
Read the room volumes overlap warnings and cap each lower room at the upper room's base.
resolve_room_volume_overlap
Fix the room volumes overlap warnings by capping the lower rooms
Pro
Select and isolate elements that have warnings, optionally creating a dedicated 'Warnings Review' 3D view, filterable by warning type.
select_warning_elements
Isolate the elements with warnings in a 3D view
Pro

Troubleshooting

Connection Issues

If Claude Desktop, ChatGPT Desktop or Cursor cannot connect to Revit:

  • Ensure Revit is running and has a document open
  • Restart your AI application after configuring
  • Check that the Bridge executable is not blocked by antivirus
  • Try running the ping tool to test connectivity
  • Claude Desktop: make sure the message box is set to Chat, not Cowork - connectors are not available in Cowork (see Claude Desktop Settings)
  • ChatGPT Desktop: run your prompt in Work, not a regular Chat conversation - only Work loads MCP servers
  • ChatGPT Desktop: if a conversation reports the Revit MCP is not connected, start a new conversation - the MCP session is per-conversation and drops after sitting idle

Claude Desktop may need to be restarted by closing it in the system tray, then reopening it. The same applies to ChatGPT Desktop - both apps only read their config files at launch.

Fully quitting Claude Desktop from the system tray so it reconnects to MCP Connector for Revit on restart

Tools Not Appearing

If MCP tools are not visible in your AI application:

  • Verify the configuration file was updated correctly
  • Restart your AI application completely (not just refresh)
  • Check the MCP server logs for errors
  • Check the bridge is running in Claude Desktop
Checking the MCP Connector for Revit bridge is running in Claude Desktop

Frequently Asked Questions

MCP Connector for Revit works with the active document in Revit. Whichever project is in the foreground is what your AI assistant will interact with. To work with a different document, click on it in Revit to make it active, or name the model in your request - every tool can act on any open document by name. If more than one Revit is running, ask your AI assistant to list the Revit sessions and switch to the one you want, by the model it shows. With no session chosen, the connector stays with the Revit instance it first connected to.

MCP Connector for Revit adds 416 MCP tools across 14 packs - Annotation; Coordination; Data; Family Editor; Issue/export; MEP; Model Management; Modelling; Reporting; Selection; Structural; Sustainability; Views & Sheets; and Warnings. These include the 39 free read-only tools for querying and reading model data.

The most common cause is having the Microsoft Store version of Claude Desktop installed. The Store build does not read the standard %APPDATA%\Claude config folder - Windows redirects it into a sandboxed package location that auto-configuration never writes to, so no tools load. Install the standalone build from claude.ai/download and re-run Configure Claude Desktop, or copy your config file into the redirected package folder. Otherwise, make sure Revit is running with a document open and that you fully quit and reopened Claude Desktop from the system tray after configuring.

Yes. When the ChatGPT Desktop app is installed, it appears in the connector dialog and Configure ChatGPT / Codex sets it up in one click. The configuration is written to %USERPROFILE%\.codex\config.toml, which ChatGPT shares with the Codex CLI - so Codex CLI picks up the Revit tools too. Fully quit ChatGPT and reopen it after configuring, then ask it to "ping Revit" with a model open to confirm the connection. Note that the Revit tools are available in ChatGPT's Work area, not in regular Chat, and the connection is per-conversation - if ChatGPT reports the Revit MCP is not connected, start a new conversation in Work.

Changelog

v3.8.3 Latest 11 October 2026
  • Live licence discovery. The Bridge gets tool availability from the running plug-in, so a stale Free manifest no longer hides tools from a licensed Pro session. The local manifest remains the fallback when the host cannot be reached.
  • Licence enforcement. Improved consistency when licence state changes. Paid operations still require entitlement in the native plug-in; tool discovery does not grant it. Existing signed offline allowances remain supported.
  • Tool catalogue. Large live tool lists load correctly, including the new terrain and camera tools.
  • Visibility diagnostics. Category searches can find model elements above or below a plan view range without requiring a known element ID. Reports distinguish vertical range, crop and other possible causes; collector membership is not proof that an element is drawn.
  • Grid bubbles. Choose the displayed side consistently even when grids were drawn in opposite directions. Swapping checks the saved bubble state without reversing grid geometry.
  • Dimensions and links. Clear and overall wall dimensions select the appropriate faces. CAD link reports separate loaded cached geometry from a missing source file. The new Pro link_revit_model tool supports origin or shared positioning.
  • PDF scaling. Original-size 100% remains the default. An optional exact zoomPercentage, including 50%, is separate from automatic fit. Title-block registration is retained when it fits; centred fallback and possible clipping are reported. A nominal A1 sheet at exactly 50% is 0.5 mm wider than A3.
  • Warnings and approval hints. Optional per-call policies can accept explicitly named warning IDs or roll back instead of waiting for a modal response. Interactive handling remains the default. File and session side effects are reflected in tool annotations.
  • Native Toposolids. Create explicit concave boundaries with holes, subdivisions, point edits and sampled pad/batter grading. Revit 2024+ is required, with update-specific checks for point operations. Grading preserves the source by default and does not create native cut/fill or a continuing level association.
  • Terrain following. Optional family/group placement, floor shape fitting, straight wall/fence profiles and supported terrain-hosted railing paths. Sampling is bounded; static results do not imply a continuing terrain association.
  • Perspective cameras. Create and update eye/target, horizontal field of view and aspect ratio, with verified native readback and separate clipping controls. Optional display settings respect template and API restrictions.
v3.8.2 October 2026

Removal tools preview first and wait for your go-ahead, permissions can be set by person through Group Policy, and tags, spot elevations and geometry reach into linked models

  • Removal tools preview first. remove_links, purge_unused, prune_design_options and purge_families list what would go and change nothing on a plain call. The AI is asked to show you the list and wait for your go-ahead before it calls again with dryRun false.
  • CAD links and CAD imports. remove_links tells a CAD import from a CAD link. Imports are left alone unless cadImports is set, and can be removed on their own. The preview gives the file each CAD link points to.
  • A question in Revit before a removal. An administrator can have Revit ask Allow or Refuse before any tool that deletes, removes, purges or ungroups runs. The question names the tool, the AI app, the model and the elements, and only you can answer it. It is off unless the policy switches it on.
  • Permissions by person. The administrator policy is also read from Group Policy, for a computer or for chosen users, so a tool can be blocked for some people and not for others. Where more than one policy applies, the stricter one holds. A Group Policy template is in the install folder, and get_session_info says where each setting came from.
  • Revit's warnings in every reply. Whichever tool makes a change, its reply lists the warnings Revit raised, any step that was not saved, and any step saved after your answer in Revit.
  • Several Revit sessions. With more than one Revit open, calls go only to the session you choose. list_revit_sessions shows every model each session has open or linked, select_revit_session takes a model by file name, title or path, and every reply names the session it came from.
  • Tags in linked models and in more views. tag_elements, tag_elements_in_view and get_tags take linkId to tag and read the elements and rooms of a linked model. The view sweep works in sections, elevations, detail views and drafting views, takes any category that has a tag of its own, and names the tag type it used for each category. Keynote tags show their keynote, where the model already holds one element keynote tag. A leader is optional, with leaderOffset in the model's own units. A tag the view does not draw is taken out and reported.
  • Spot elevations and spot coordinates. create_spot_dimensions places them on the top, bottom or nearest surface of an element, in plans, sections, elevations and orthographic 3D views, in the open model or a link. get_spot_dimensions reads them back with the text each one shows.
  • Geometry of linked elements. get_element_geometry and get_boundary_curves take linkId and return every point in the open model's coordinates.
  • What a view draws. get_elements with a view and get_current_view_elements say where each element lies against the crop region, and get_active_view gives the crop region and the annotation crop. create_text_note and create_dimensions take out and report a note or dimension the view does not draw.
  • Material textures and images. get_material_textures lists the image files materials use and which are missing. repath_material_textures points them at where the files are now, remove_missing_material_textures takes off images that cannot be found, and remove_unused_images deletes images nothing uses. The three that change the model preview first.
  • API object reader. inspect_api_object reads an element, the document or the active view as the Revit API presents it, property by property, and steps into whatever a property returns. It changes nothing.
  • Captured views as pictures. capture_view, capture_family_view and create_family_thumbnail return a picture the AI can look at.
  • Parameters that share a name. set_parameter and batch_set_parameters take id: or guid: in place of a name to pick exactly one parameter. A write by name says when more than one parameter has that name and which one was written.
  • Tool hints. Every tool that changes the model is marked either as one that only adds or as one that can overwrite or delete, checked tool by tool.
  • Smaller changes. export_pdf takes the page orientation of a sheet with a hidden title block from the title block frame, and reports the page sizes of the written PDF. place_area_boundary_lines seats each area inside its traced loop. batch_link_cad at origin puts the link's origin at model height zero when the host view has no level. create_dimensions between two points takes the wall faces spanMode names. create_toposolid_from_dwg counts an elevation offset already given when it advises on heights. divide_parts reports the parts it cut and the parts it left. purge_unused takes only to keep a purge to unused materials (Revit 2024 and later), and on Revit 2022 and 2023 uses Revit's own check for unused families and types. remove_links counts a CAD link as removed once it has gone from the model. The batch parameter tools leave a level's Name to the tools that rename a level. get_grids and get_area_boundaries give millimetres beside feet.
  • Connection. When no call can be sent, the bridge says which is the case: Revit is not running, the connector is switched off, or no session is chosen. A timeout and a lost connection are two separate messages.
v3.8.1 October 2026

Revit's warnings and errors are yours to answer, and the warning fixers leave grouped elements alone

  • Revit asks you, not the AI. When a tool's change makes Revit raise a warning or an error, Revit shows its own message and waits for your answer, as it does when you make the change by hand. The AI cannot answer it. The reply says whether the step was saved.
  • Warning fixers leave groups alone. The off-axis fixers, resolve_duplicate_instances, resolve_multiple_rooms_same_region and resolve_multiple_areas_same_region skip anything inside a group and list it with the group's name, to be changed in Edit Group mode.
  • Warnings are reported. Every reply lists the warnings Revit raised while the tool ran, with the elements they name.
  • Area boundary lines keep their dimensions. resolve_off_axis_area_boundary no longer removes dimensions attached to a line. removeConstraints is off by default. When on, only locked dimensions and constraints are removed, and each one is listed.
  • Plain words for what a tool does. deep_purge says that single_instance_detail_groups ungroups detail groups placed only once, leaving the linework, and counts them as ungrouped. The room and area fixers say that every action except the default deletes, and list only what was deleted. A move, rotate or delete refused inside a group now points to edit_in_group.
v3.8.0 October 2026

Exact tagging, detail lines and wires, stairs, railings and ramps, MEP sizes and fittings, geometry read back as true curves, dialogs the AI can read and answer, sessions and documents chosen by name, an administrator policy with an audit log, and a model review export

  • Tagging by element. tag_elements tags exact elements by ID in any view, including assembly views, each with its own tag type, head position and leader, and leaves alone an element that already carries that tag type. Switches and other electrical devices, wires, rebar and embeds can be tagged. get_tags reads the text each tag shows, its type, host, head and leader, and flags blank and orphaned tags. tag_elements_in_view keeps each tag inside the view's crop region.
  • Detail and model lines. create_detail_lines draws lines, arcs and circles in a view with a line style and rounded corners; modify_detail_lines moves ends, redraws arcs, changes the style and fillets two lines; create_model_lines draws the same shapes as real 3D lines on one level or on every level.
  • Wires, sizes and fittings. create_wires draws electrical wires through points and onto a device's connector. get_mep_sizes and add_mep_sizes read and extend pipe and conduit size tables; get_routing_preferences and set_routing_preferences read and set the fittings each type routes with; create_flex_duct_or_pipe, add_mep_insulation_lining, cap_mep_open_ends and set_mep_system_type finish a run.
  • Stairs, railings and ramps. create_stairs builds a native stair from straight and spiral runs; create_railing, edit_railing_path and edit_railing_type place, re-route and configure railings, with the path, rails and extents read back; create_ramp makes a straight ramp with optional railings. create_hosted_sweep adds fascias, gutters and slab edges; edit_curtain_grid sets grid lines and mullions; create_framing_openings cuts beam openings; edit_floor_boundary reshapes a floor in place; duplicate_element_type makes a new type with its parameters set.
  • Geometry as it is. get_element_geometry returns vertices, edges and faces in millimetres, and get_boundary_curves returns sketch boundaries and location curves as true lines, arcs, ellipses and splines. get_view_cut_planes and move_view_cut_plane read and move where a section or elevation cuts. get_reference_planes, create_project_reference_planes and set_datum_3d_extents cover reference planes and the 3D extents of grids and levels. get_bounding_boxes and get_element_by_id take fullPrecision for unrounded values.
  • Family editor. Dimensions and locks to a family level, sketch locks on sweeps, blends and revolves, and radius, diameter and angular dimensions through create_family_dimension. create_boolean_solid makes one solid from two forms and join_family_geometry joins solids. A void that removes nothing is reported as failed, flex_family reports a size the rig cannot reach, and new families are kept in a working folder rather than on the Desktop.
  • Dialogs. A call that Revit holds behind one of its own dialogs is answered with the dialog's title, text and buttons instead of timing out, and a call made while a dialog is open is refused naming it. get_open_dialog reads the dialog and press_dialog_button presses the button you choose. Renaming a level through rename_elements, renumber_datums or set_parameter no longer stops on Revit's prompt: viewsFollowLevel decides whether the plans follow, and the reply lists the views renamed.
  • Sessions and documents. With more than one Revit open, list_revit_sessions shows each session with the model it has in front and select_revit_session switches by process or by model, and start_revit_session starts an installed Revit release when none is running. If the chosen session closes, calls fail and say so rather than moving to another Revit. Every tool takes an optional document naming the open model to act on. undo and redo report which steps ran. create_model makes a new project from a template, save_document and save_as report the file as it is on disk, and open_model with checkOnly says whether a long open has finished.
  • Administrator policy and audit log. An administrator can switch packs off and block or allow named tools for every user of a computer, alongside the existing read-only lock; the connector dialog shows what is locked. An audit log, off unless an administrator turns it on, keeps one line per tool call - time, user, computer, model, AI app, tool, whether it reads or writes, the outcome and the start of its arguments - with a copy to a folder the administrator names. Both need Pro. Two ready-made views of the log are under Power BI Dashboards.
  • Model review export. export_model_review saves a snapshot of the open model, or of every model in a folder, as tables for Power BI or any other reporting tool: warnings and Performance Adviser results with their Element IDs, model checker figures and element counts. Each run adds a snapshot, so trends build up over time. A ready-made Power BI dashboard charts them.
  • Tool hints. Every tool is marked as read-only or not, and as destructive or not, so an AI app that asks for approval before each call can let reads through.
  • Fixes and smaller changes. Sections are created on Revit 2022, 2023 and 2024 by create_views, create_element_sections and create_section_by_room. mirror_elements no longer removes a hosted door or window, and takes flipHosted to flip it in place. place_family_instances and place_families_from_excel correct a family that doubles its height above the level. divide_parts divides an element again after a first division. A blank DWG, DXF or PDF export is reported as failed, and DWG and DXF replies carry an entity count. export_pdf takes fitToPage. batch_link_cad reports each link's level and height and takes originZMm or levelName. create_walls and create_floor take units in millimetres, and create_floor takes openings. create_filled_region subtracts holes from the area it reports. attach_walls and join_geometry read the result back off the model before reporting success. set_parameter reports a change Revit rolled back as a failure, and a parameter name a tool does not know is reported rather than ignored. capture_view can frame chosen elements, a rectangle or the current viewport.
  • Connection. The bridge never repeats a call whose outcome it could not confirm: it says so, and get_bridge_recovery shows what to check first. "Empty response from Revit" is replaced by a plain statement of what is wrong.
v3.7.1 September 2026

Sustainability pack, schedules with a house style placed on sheets, filled and masking regions, a legend builder, and drawing reissue in one call

  • Sustainability pack (11 tools). Carbon factors stored on materials with set_material_carbon_data and read back with get_material_carbon_data; calculate_embodied_carbon and get_element_material_breakdown give a deterministic figure per element and per material; find_carbon_hotspots, compare_construction_carbon, create_carbon_analysis_view, create_carbon_schedule and export_carbon_report (xlsx or csv) present it; calculate_glazing_ratio and calculate_existing_retention cover the fabric checks. Quantities are scoped the way a Revit schedule scopes them: main model plus primary design options, elements present at the end of the last phase, with includeDemolished and includeNonPrimaryOptions as opt-ins, and every reply says what was counted. get_material_quantities uses the same scope.
  • Schedules with a house style. create_schedule and modify_schedule take headerImage (a logo in its own row above the title), headerStyle (background, text colour, font, size, bold, alignment and border line style for the title row and the column heading rows), headerRows (insert, write, merge, clear and delete rows in the header), units per column (the Format Unit button: unit, accuracy, symbol, trailing zeros, digit grouping), phase and phaseFilter, split into segments, and striped rows with both colours and a sheet-only switch. Reading a schedule back now lists its header rows, units, phase and segments.
  • Schedules on sheets. place_views_on_sheets places schedules, which Revit refuses as viewports, one instance per segment side by side, and reports the drawn size. Views and schedules sit inside the title block's drawing area, read from the block's own border lines and title column, with the sheet size taken from the placed title block rather than the family's parameters, so imperial blocks without them no longer lay out as A1.
  • Filled and masking regions. create_filled_region draws project loops with holes, view-frame outlines, a crop band hugging chosen sides of the crop, and regions in a family; fill by type name, by a colour that creates a solid type, or as a masking region, across many views in one call. build_legend makes chip-and-label legends from a view's filters or from custom entries.
  • Drawing reissue. reissue_sheets duplicates a set of sheets with their views and detailing as a new issue: renumber by rule, suffix sheet and view names, set status parameters on the sheet or title block, strip inherited revisions and clouds, and stamp one new revision, with a dry run and one undo step per call. update_revision edits, issues, unlocks or deletes a revision and delete_revision_clouds clears clouds by view, sheet or revision. duplicate_sheets falls back to duplicating with detailing when Revit refuses the with-views option.
  • Smaller changes. Cell border line styles are accepted with or without Revit's angle brackets. attach_walls needs Revit 2026 or later and says so on 2025 instead of failing.
v3.7.0 September 2026

Paste aligned across views and projects, background documents, true dimension lines, schedule editing, datum tools, and survey placement that refuses rather than shifts

  • Paste aligned to selected views. The new copy_view_elements copies view-specific elements at the same position into other views or sheets - a callout's detail lines into its drafting view, a generic annotation stamp onto a list of sheet numbers - and into another open project, creating the drafting view or legend there when it is missing. Sketch internals are filtered out, a mixed set falls back per category and per element, and the rename notice Revit raises on a cross-project paste is captured instead of left in a dialog.
  • Background documents. save_document saves any open document in place; save_as and close_document take a documentTitle; activate_document lists the open documents and brings one to the front.
  • The dimension line itself. Every dimension read now carries dimensionLineMm (start, end, direction) and the text positions, separate from the bounding box that also spans the witness lines and text. The distance between two dimension lines is now the real distance, and move_elements shifts a line by a vector.
  • Linked openings in elevation. auto_dimension_openings_in_elevation takes linkId, so every auto-dimension tool now works on a loaded link.
  • Schedules edited, not just created. modify_schedule adds, removes and reorders fields, sets headings, column widths, hidden columns, alignment, totals and min/max, per-column bold, font, size and colour, grouped column headers, filters, sorting, appearance, title/header/body text styles, combined-parameter columns and the name, and reads a schedule back. create_schedule takes the same blocks. A filter on a Level, Phase or Type field now takes the element's name. Formula and percentage fields and conditional formatting are not exposed by the Revit API and are said so in the tool.
  • Grids and levels. set_datum_extents switches heads between 3D and 2D per end across many views; set_datum_leaders adds the jog to a grid or level head; assign_scope_box puts grids, levels and reference planes into a scope box; create_radial_grids makes arc and spoke grids about a centre; renumber_datums renames grids by position and levels by elevation without name collisions.
  • Rooms. set_room_extents sets upper limit, limit offset and base offset in bulk and the computation height of levels; resolve_room_volume_overlap reads Revit's "Room volumes overlap" warnings and caps the lower room at the upper room's base.
  • Survey placement. create_toposolid_from_dwg matches the file's linework to the imported linework on the same entities and only accepts a fit that agrees to within 10 mm; anything else is refused with the numbers rather than shifted. The boundary is the convex hull of the accepted points, lifted to survey level, so Revit no longer drops hull points, and the result reports retained and lost points. manage_shared_coordinates acquires from a linked DWG. export_dwg reports file size and entity count and flags a blank export.
  • Annotation clashes. check_annotation_clashes measures a dimension by its line and text, not its witness lines, and tests door tags against the door's swing.
v3.6.9 September 2026

Practice template tools, a Parts pack, nested-family placement, and title block labels copied from a master

  • Schedules. The new create_schedule builds regular, key, material takeoff, sheet list, view list, note block and keynote legend schedules. Columns, sorting and filters are named by field, checked against the category's own schedulable fields, and a filter on a measurable field takes a unit ("900 mm") or reads a bare number in the project's display unit.
  • Project standards. create_project_parameter makes a shared parameter and binds it to categories, extending an existing binding rather than refusing it, and puts the shared parameter file back where it found it. create_line_pattern, create_line_style, create_legend, manage_keynotes and get_browser_organization cover the rest of a practice template checklist.
  • Templates saved as templates. save_as writes a .rte; open_family and close_family take .rft, so a family template is authored and saved as one with no rename afterwards.
  • Title blocks per sheet size. create_title_block scaffolds one family per size from the installed templates, reading the sheet extent from the paper-edge linework. Revit has no API for labels, so copy_family_elements copies them from a master title block into every other size with their parameter bindings intact, aligned on a sheet corner.
  • Nested families placed, not just loaded. place_nested_family (and place_family_instances with target set to family) places a nested component inside the open family - by point, on a named reference plane, or in a view, following the nested family's own placement type. It works from a background session with no project open. set_family_shared turns a family's Shared flag on so it schedules on its own.
  • Library search. find_library_family searches the library places Revit is configured with, plus any folders you add, and loads a single match - refusing to overwrite a loaded family of the same name unless told to.
  • Parts. create_parts, divide_parts (by levels, grids and reference planes, or by curves, with a gap), set_parts_excluded, offset_part_faces, merge_parts and set_parts_visibility.
  • Assemblies from the start. create_assembly makes the assembly that create_assembly_views needed you to make by hand.
  • Multi-category and keynote tags. tag_elements_in_view takes a tagFamily to tag every chosen category with one tag type.
  • Fewer tokens for content authors. A Family-pack-only profile now keeps nested placement, so a content author can switch every other pack off - about a sixth of the full tool list.
v3.6.7 September 2026

Gross internal area through phased openings, elevation crops, a fixed sheet anchor, and the linked-model tools

  • Gross internal area survives phased openings. Putting a door or window into a wall of a different phase makes Revit generate an infill wall: a real wall carrying the host's whole location line while its solid covers only the opening. place_area_boundary_lines was tracing it as a wall in its own right, laying a second boundary line over the host's and committing a slither of the real area. Walls sharing a centreline now collapse to the one that physically spans it, and every excluded wall comes back with its phase and its span so the trace can be checked
  • No more waiting on a dialog nobody can see. An overlap or an unenclosed region used to open Revit's own modal warning behind the call, where it sat until the client gave up. Area boundary work now carries a failure handler: warnings come back as data, errors roll the whole transaction back, and every reply says plainly whether it committed or rolled back
  • Loops are checked before anything is written. A closed area loop needs three distinct vertices, a measurable area and no revisited point. Segments that would be drawn on top of one another are refused outright, with their coordinates, because that is what raises the overlap warning. Re-running a scheme needs an explicit existingLines choice instead of quietly stacking a second set of lines, and an area already sitting in the region is kept rather than duplicated
  • Elevation and section crops. A project X/Y rectangle cannot say how high to crop an elevation, so both corners landed at the same height and Revit clamped the result to a strip. set_crop_region takes viewLocalMin and viewLocalMax instead, in millimetres across and up the view itself, and reports the crop in both frames along with the far clip
  • Sheets stop moving when a title block is hidden. Forcing a paper size centred whatever was currently printing, so hiding the title block re-centred the drawing and moved it. export_pdf now anchors on the title block's own frame, which a graphic override cannot move. Measured across a hidden and visible pair: 0.078 mm, against 15.4 mm before
  • Honest visibility counts. The auto-dimension tools were inferring visibility from three dozen speculative checks and reporting dimensions as hidden that were plainly on the drawing. Membership of the view's own element set is now the answer, and the diagnostic engine is only asked why afterwards. Fixes the count across every auto_dimension_* tool
  • Say which face to measure. create_dimensions takes a spanMode of clear for the internal span or overall for the external one, so the same two walls no longer answer differently depending on how the request was phrased
  • Linked models. manage_links sets a link's reference type between Attachment and Overlay, moves a link instance, and repaths one - which is how a link is swapped for a different model while keeping its position and every instance. get_linked_files reports the reference type and path type alongside each link
  • Shared coordinates. The new audit_shared_coordinates answers whether each link is on shared coordinates or reads <Not Shared>, with its offset and rotation from the host origin. The new manage_shared_coordinates acquires a grid from a link, publishes this model's into one, or resets it. Publishing writes into the linked file, so it refuses without an explicit confirmation
  • Host families on a linked model. The new place_family_on_linked_face places face-based families on the faces of elements inside a link, without copying the linked geometry in. A point that misses is pulled to the nearest face with the distance reported, and a dry run lists every face's extent so a point can be aimed. Wall-hosted families such as doors and windows cannot host on a linked wall at all, which Revit does not allow, and that is refused with the reason
v3.6.6 September 2026

Slanted and tapered walls, roofs, hosted doors and windows, external elevations, and a batch of fixes

  • Slanted and tapered walls. create_walls takes a crossSection of slanted or tapered with the angles per wall or shared, and the new set_wall_cross_section changes existing walls and can set the doors and windows they host to follow the lean. Dimensions to a leaning wall reference its cut line, gross internal area traces follow the real face at the level, and hosted placement takes a hostOrientation of match. Draw exterior walls clockwise: the exterior face sits to the left of the drawing direction and the lean, taper and door facing follow it
  • Attach top and base in batch. The new attach_walls attaches the top or base of any set of walls to a roof, floor, ceiling, toposolid or wall, finding the nearest one above or below each wall when no target is named, and detaches on request. Revit 2025 and later
  • Native roofs. create_roof builds footprint roofs again on every roof type, with slope (rise over run) and slopeEdges for mono-pitch, dual-pitch and hipped roofs, overhang for eaves, baseOffset, a units parameter, and a read-back of every edge's slope and the roof's elevation range. A roof type name that matches nothing is an error listing the types, never a silent substitute
  • Hosted doors, windows and rooflights. place_family_instances and place_families_from_excel place wall-hosted families on the nearest wall to each point, or an explicit hostElementId, with sillHeightMm, flipHand and flipFacing, and report the host and the sill each instance ended up with
  • External elevations and sections. create_views creates elevations from a marker at originMm in a plan view, one direction or all four on one marker, and sections from a start and end point with depth and height
  • Dimensions between walls. create_dimensions references wall side faces perpendicular to the dimension, runs the line through linePoint, refuses two references that resolve to the same wall, and names the element and face behind every reference
  • PDF paper size honoured. export_pdf applies paperSize at 100% centred, and every export reports the sheet outline, the page it produced and why, with a warning when a hidden title block leaves the sheet with no size
  • Faithful sheet duplication. duplicate_sheets carries sheet-level text, lines, regions, legends and schedules, viewport types and label positions, and title block parameters, and reports anything it could not copy
  • Gross internal area on any wall direction. place_area_boundary_lines picks the inside or outside face from the enclosed side of the loop rather than the wall's drawn direction, warns on mixed loops, and returns the traced loops with vertices, perimeter and area for checking
  • Room preview matches placement. auto_place_rooms dry run reads the same plan topology the placement uses and reports a read failure instead of zero regions
  • Unit-safe room export. export_room_data writes the room Name and Number from their own parameters and quantities in the project's display units with the unit in the column header
  • Discovery. ping and get_session_info report the connector version, edition, tool count and unit conventions
  • Grok Build. One-click setup for xAI's Grok Build CLI alongside Claude Desktop, ChatGPT / Codex, Cursor and GitHub Copilot
  • Fixes. A JSON-encoded string in a walls, types or boundaryPoints array is parsed, and anything else is named per item instead of failing the call or returning an empty failure list
v3.6.5 September 2026

Wall types from the spec, a model checker, and material assets

  • New tool: create_compound_types. Wall, floor, roof and ceiling types from a spec build-up in one call: give it the layers (function, material, thickness, exterior first) and it duplicates a base type, replaces the stack, creates any material the project lacks, and reports the result per type. Revit's layer rules are checked before the type is built and explained per layer when they bite - membrane layers must be 0 mm thick, and outside the core the layers must step up in priority as they move outward (Structure, Substrate, Thermal/Air, Finish 1, Finish 2) - with a fixShellOrder option that reorders or re-functions the layers for you
  • Vertically compound walls can be edited. Every wall type in Revit reports as vertically compound, so edit_compound_structure was refusing all of them. It now only stops when the type carries split regions, sweeps or reveals, tells you what it would drop, and replaces the structure only with your say-so. Layers can be set in full, re-ordered, re-functioned and given a priority; wall sweeps and reveals survive a layer change and can be added to a type; and wallPositionImpact plus keepFace show which face of every wall would move and pin the one you choose, on edits, type updates and change_element_type
  • New tool: rename_compound_types. Rename types to a naming standard from a template with tokens for category, function, structural material, width and layer stack. Dry run shows every old and new name; get_compound_structure with listAll audits every type in one call
  • New tool: model_checker_report. A model review in one call - views, sheets, warnings with a critical count, imports and links, families, text, groups, materials, Performance Adviser rules, unused views, import line patterns, empty elevation markers and the Area and Volume Computations setting - written to an .xlsx with a history row for Power BI. set_area_volume_computation switches Areas only / Areas and Volumes and the area basis
  • New tools: set_material_properties and get_material_properties. Thermal and physical assets (isotropic or orthotropic), identity fields and custom parameters such as an embodied carbon factor, read and written singly or in batch, with an .xlsx export and a scan for materials missing an asset
  • New tool: override_dimensions_by_value. Every dimension under, over or between given values coloured across a view, a sheet or every view, and cleared again
  • New tool: copy_from_link. Elements of a category, or chosen ids, copied from a loaded link into the host model in place. Host types win on a name clash, and Revit's own "renamed to avoid conflicts" notices no longer roll the copy back
  • New tool: create_family_types. One type per finish or size in the open family, with parameter values converted by their own units, materials by name and identity fields filled. Family authoring also gained straight profile segments that snap onto an axis in create_revolve and create_extrusion, reference planes whose extents match in every view, and a colour-only fallback in create_material when no appearance asset matches
  • Sheet annotation batch. set_viewport_type and get_viewport_types switch every viewport on chosen sheets to No Title or Title w Line in one call; align_annotations works per sheet and per view, measures tags the way the ribbon does on Revit 2025 and later, and can align in columns so notes on the other side of a detail stay put; adjust_viewport_title_line fits and aligns title lines to the measured label; renumber_viewport_detail_numbers orders by position in rows
  • Fixes. close_document with save off no longer saves; auto_dimension_grids keeps its stack inside an elevation's crop; imperial projects can give thicknesses and offsets in inches and fractions; purge_unused and deep_purge reach the open family session
v3.6.4 August 2026

Two new tools, and Codex everywhere

  • New tool: create_fill_pattern. Model and drafting fill patterns, named as you specify. Ask for a sized preset - herringbone, chevron, running bond, stack bond, basketweave, hexagon, lines or crosshatch, all in millimetres - or draw the pattern in any view, put a rectangle round it to mark the repeat tile, select the lines and turn the drawing into a pattern: angles are snapped to the nearest repeating angle and every correction is reported, drafting patterns come out at the drawn size via the view scale, and flips, rotation and a scale multiplier are there when you need them. Import from a .pat file (or search a whole folder of them by name), and every pattern comes back as .pat text you can save or export straight to a file
  • New tool: paint_opening_reveals. Paint the jamb, head and sill faces inside window and door openings across many walls in one call - scope by wall IDs, a wall type name or the current selection, choose which faces, dry-run to count the faces first, and strip it all off again with removePaint
  • Startup fix for recent Codex builds. Newer ChatGPT / Codex releases read the tool list strictly and refused a draft-specification field the Bridge included, failing the whole connection at startup with "Unexpected response type". The field is gone. The Bridge also now answers the handshake immediately and looks for the Revit session in the background, so a client that starts its first conversation quickly still sees every tool
  • One-click setup covers Codex everywhere. The dialog entry is now ChatGPT / Codex: it detects ChatGPT Desktop, the Codex app, the Codex CLI and the Codex extension for VS Code - and when Codex runs inside WSL, the connector writes the WSL-side configuration too, so the tools appear there without any manual editing
v3.6.3 August 2026

Room elevations that follow the room

  • New tool: refit_room_elevations. Revit fits an interior elevation to its room once, when the marker is placed, and never again - resize the room and every elevation stays cropped to the old one. This tool finds the existing elevations for a room (by the marker sitting inside it, or by the view name pattern they were created with) and re-crops them to the room as it is now: width and height to the room, view depth to the furthest wall face. Sheets and viewports are left where they are. Optional crop offsets per side, and a dry run that reports the before and after of every view without changing the model
  • Far clip lands on the furthest wall. create_room_elevations used to set the view depth from a single line through the room centre, which on an L-shaped room stopped at the inner corner rather than the far wall. Both tools now sample the depth across the full crop width and clip past the deepest face, with the margin exposed as farClipMargin (300 mm by default)
v3.6.2 August 2026

Two fixes to MEP connection preview and view capture

  • connect_mep_elements preview no longer writes to the model. The dry run used to make each connection for real and roll it back. Every rollback queues Revit's own background MEP network calculation on a worker thread, and across a large batch that work could collide with a following read and bring the session down. The preview is now a read-only classification - it measures the connector geometry and names the route it would take, creating nothing. It also flags two pairs in the same batch competing for the same open connector, which the old preview could not see
  • capture_view fixed on shaded views. Revit selects the image format from two separate settings, one for hidden line and wireframe views and one for shaded views. Only the first was being set, so a shaded 3D view was written as a JPG while the tool looked for a PNG and reported a failure on a capture that had actually succeeded. Both are now set, and the written file is found whatever Revit named it - which also covers localised view-type names on non-English installs
  • A dry run is now a prediction rather than a proof of execution. It reports the route the connection would take, but Revit can still refuse at execution - for example where the routing preferences hold no fitting family for that size. The live run is verified exactly as before, with both connectors read back from the model
  • Preview response renamed. connect_mep_elements in dry run now reports routable and notRoutable, where v3.6.0 and v3.6.1 reported connected and failed. The old names read as though the connection had been made, which was never true of a preview. Anything reading the preview response directly needs a small update
v3.6.1 August 2026

Linked-model queries, and point-mode dimensions that snap to datums

  • Query tools reach inside loaded Revit links. get_elements and search_elements now take a linkId, so you can find elements inside a linked model and dimension them directly without opening the link as its own document. Link results return their ids inline rather than as an element-set handle, because a handle resolves against the host model and would point at the wrong elements
  • Point-mode dimensions now snap to grids and levels. create_dimensions in point mode previously skipped datums entirely - grids and levels carry no location point or curve, so nothing was found at the point given. Datums are now measured against their view-projected curve
v3.6.0 August 2026

MEP and Structural packs, display style control, and text notes

  • New MEP pack. Draw ducts, pipes, cable tray and conduit, build duct and piping systems, circuit fixtures to panels, create and re-sync MEP spaces from a linked model's rooms, and read panel schedules. Connection state is read from the model's own connector data rather than inferred from proximity, so check_disconnected_mep and get_mep_connectors report what is actually joined
  • New Structural pack. Beams, beam systems, columns, braces and foundations, plus framing coping, slab openings, framing parameter writes, a support check, and analytical model read-out for handoff to analysis
  • New tool: set_view_display_style. Display style is a view property rather than a parameter, so set_parameter could never reach it - which also meant 3D views stayed shaded and vector PDF export could not fire
  • New tools for text: create_text_note with a leader that must point at an element visible in the view, plus get_text_notes, update_text_notes and find_replace_text
  • New tool: purge_families. Purges inside loaded families and reloads them, reporting the file size saved on each
  • export_dwg honours format: "dxf", and confirms the file exists on disk before reporting the path
  • export_view_image accepts imageWidth as an alias for pixelSize, and reports the path Revit actually wrote rather than the one requested
  • set_parameter and batch_set_parameters accept unit suffixes such as "150 mm", and get_parameter_values_by_category gained offset pagination
  • tag_elements_in_view covers MEP categories
v3.5.2 August 2026

Units parity, cleaner auto-dimension replace, and on-sheet visibility reporting

  • Auto-dimension replace fixed on templated views. All seven auto_dimension_* tools now detect existing dimensions even when the view template hides them, so replace and skip behave correctly instead of leaving an orphan dimension per run
  • Visibility reported beside created counts. The auto-dimension tools now report visibleInView with a hiddenReason for each result - what was created in the model and what actually shows on the sheet are both explicit
  • get_element_by_id units parity. Full unit labels, metric twins and rounded values matching get_elements, plus the element's bounding box in millimetres
  • fit_room_tags reporting split. stillNotFitting becomes stillTooBig and outsideTheirRoom, separating tags too large for their room from tags sitting outside it
  • get_bounding_boxes measures view-specific annotations in their owning view, and a missing box now says the element exists and names its category instead of returning an empty result
v3.5.1 August 2026

Working with groups, viewport alignment that lines the drawing up, and reference plane setout

  • Groups become a first-class workflow. Five new tools: get_groups (inventory of group types, instances and members), create_group, edit_in_group (move, retype or delete elements inside a group in one atomic call - the legal ungroup, modify, regroup loop handled for you, with the type name preserved and an option to push the edit to every instance), place_group_instances and swap_group_type
  • Clear guidance instead of dead ends on grouped elements. Move, rotate, mirror, delete and type-change tools now explain exactly why a group member is blocked and which route works, naming the containing group - no more misleading unpin advice or unanswerable Revit dialogs
  • align_viewports rebuilt. Viewports match their originals by view name, then detail number, then position - so sheets with several views of the same type pair correctly - and matched pairs align by the drawing content itself, so crop or annotation differences cannot shift the layout. View titles come along too
  • New tool: set_reference_plane_extents. Set reference planes to one length or match a selected plane, with alignEnds to line parallel planes up into a single band - and it finds a view each plane is visible in by itself
  • New tool: copy_view_templates. Copy view templates between two open models in one call, filters and settings included
  • Saved Positions support (Revit 2026+). New manage_view_positions tool - list, create, capture a viewport's layout, and assign positions so Revit itself enforces the layout across sheets. create_sheets and align_viewports understand position-controlled views instead of fighting them, and sheet placement is measured from the title block corner in millimetres or inches
  • delete_elements now protects group members: deleting one removes it from every instance of the group, so it asks for explicit confirmation first
  • ungroup_elements reliably deletes emptied group types when asked
v3.5.0 August 2026

Dimension into linked models, and every write verified

  • Dimension to linked models. All seven dimension tools can now reference elements inside loaded Revit links. create_dimensions takes an {elementId, linkId} pair per reference, and the auto_dimension_* tools take a linkId - so a structural grid or an MEP element in a link can be dimensioned from the host model
  • Verified writes. Every write tool now checks its own work after Revit commits, reporting what was requested against what was actually created - a silent partial failure is no longer possible
  • Dimensions now use the project's default dimension style instead of the first type found
  • New tool: set_crop_region - set a view's crop to a rectangle in project coordinates, the way to plan one building out of several
  • New tool: fit_room_tags - make room tags fit their rooms by rotating them, dropping to a smaller type, or pushing them onto a leader, with the action taken reported per tag
  • auto_dimension_rooms gains sidePreference to control which side of the room the strings land on
  • place_views_on_sheets now accepts a sheetId, so views can be placed on an existing sheet directly
  • Wrong parameter names now fail loudly with a suggestion of the nearest valid name, instead of being silently ignored
  • CSV exports now write a UTF-8 byte order mark, so they open correctly in non-English versions of Excel
  • Measurements in tool responses now carry explicit unit labels
v3.4.0 July 2026

Tool pack toggles, area plans, and batch family authoring

  • New Tool Packs section in the connection dialog: enable only the packs you need, so your AI client sees a smaller, sharper tool list. Changes apply live in supporting clients - no restart needed
  • New tools: get_areas and get_area_boundaries - read area schemes, placed areas and their boundary loops. Included in the free tier
  • New tools: create_area_scheme, place_area_boundary_lines and place_areas in Modelling - trace a level's exterior walls at the inside face, outside face or centreline for gross and net internal area plans, close the loops, and place an area in each
  • New tools: move_elements, rotate_elements and mirror_elements in Modelling - batch move by a millimetre offset, rotate about any axis, and mirror about a named reference plane or any origin-and-normal plane, in projects and in the family editor. Model one raked leg, mirror it, get all four
  • Batch family authoring: create_revolve, create_extrusion, add_family_parameter and create_material now accept arrays - several solids, parameters or materials in one call, with per-item results. Parameters are created in order, so a formula can reference one defined earlier in the same call
  • New tools: delete_elements and rename_elements - delete or rename elements, views and materials by ID, so the AI can correct its own work cleanly
  • New tool: set_family_element_visibility - choose which detail levels each piece of family geometry shows at, for example a simple stand-in at Coarse and the full profile at Medium and Fine
  • Family editor refinements: labelled dimensions now place themselves clear of the geometry, and imported CAD underlays can be nudged into position after import
  • Families created with create_family now save to your Desktop instead of the connector's application data folder, so your work survives an uninstall or upgrade
v3.3.1 July 2026

Bulk family placement from a spreadsheet, and shared licences

  • New tool: place_families_from_excel. Place family instances in bulk from an .xlsx or .csv coordinate table, one row per instance. X and Y are the only required columns; Z, Family, Type, Level and Rotation are optional, so one file can place a single family across a site or many different families in a single pass
  • Place in project coordinates or in shared survey coordinates, reading Easting and Northing straight from the file, with units in millimetres, centimetres, metres or feet
  • New tool: get_coordinate_system. Read the model's project base point, survey point and rotation from true north, and check whether shared coordinates are usable, before placing anything by Easting and Northing
  • Reads European spreadsheet exports directly: semicolon separators and decimal commas are detected automatically. Where a value is genuinely ambiguous the tool stops and names it rather than placing everything a hundred times out
  • Write any spreadsheet column onto the placed instances as a parameter value, for example Mark or Comments
  • Every instance is placed in a single transaction, so one undo straight afterwards removes the whole placement
  • Floating licences. A licence can now be shared across a team as a pool of concurrent seats. A seat returns to the pool when that machine closes Revit, so there is no need to deactivate one machine before working on another
  • New Licences In Use view under Manage Licence, listing the machines currently using the licence, when each took a seat, and when each was last seen
  • Update notifications: the connector now tells you when a newer build is available
  • Fixed: an AI client could be reported as configured when the application was not actually installed
v3.2.0 July 2026

Curtain wall dimensioning

  • New tool: auto_dimension_curtain_walls. Dimension curtain wall panels in elevation and section views - one chained string reading every panel, a separate dimension per segment, or a dimension across each individual panel, edge to edge
  • Measure gridline to gridline, or to the mullion faces for alternating mullion width and clear glass width
  • Place strings on any side - top and bottom for panel widths, left and right for panel heights - with overall dimensions and wall-end terminations included
  • Set how far per-panel dimensions sit from the panel edge, or leave them running through the middle
  • create_dimensions now resolves curtain grid line references, so passing grid line IDs directly works
v3.1.0 July 2026

Family Editor pack, 30 new tools, and multi-conversation connections

  • New Family Editor pack: 15 tools for authoring loadable families end to end - create from a template or open an existing family, build a named reference-plane rig, label it with parameters, flex it to prove it, model extrusions and revolves, trace imported CAD drawings, generate clean thumbnails, and load the result into your project
  • New tool: place_family_instances. Place loaded family types at given points on a level, with per-placement rotation
  • New tools: duplicate_views, find_element_locations, and find_hidden_elements in Views & Sheets - duplicate views in bulk, find every view and sheet that shows an element, and explain why elements are not displaying
  • New tool: find_untagged_elements. QA pre-check for untagged doors, windows, rooms, and more before issuing drawings
  • New tools: deep_purge and get_element_history in Model Management - targeted cleanup beyond a standard purge, and per-element worksharing history
  • New tool: change_element_type. Swap many instances to a different type in one transaction, with a dry-run preview
  • New tools: get_compound_structure and edit_compound_structure in Modelling - read and edit the layer build-up of wall, floor, roof, and ceiling types: resize the structural layer, swap materials, add or remove finish layers, all with a dry-run preview and the option to edit a duplicate of the type
  • New tools: set_wall_location_line and create_walls in Modelling - change walls' location line (centrelines, finish faces, core faces) and batch-create walls from centreline segments
  • New tool: undo. Post Revit's native Undo or Redo, up to 10 steps - revert an unwanted change straight from the chat
  • New tools: get_view_template_settings, compare_view_templates, and update_view_template in Views & Sheets - read what a template controls, find inconsistent settings across templates, and fix them in place
  • Connection reliability: the connector now serves multiple AI client connections at once - every new ChatGPT Desktop conversation connects instantly, and Claude Desktop and ChatGPT Desktop can drive the same Revit session side by side
  • Documentation links across the installer and connector dialog now point at this docs page
v3.0.1 July 2026

Tool accuracy and safety patch

  • Example prompts added to every tool in the reference tables - click any prompt to copy it
  • create_section_by_room now asks for specific rooms (or an explicit all-rooms confirmation) instead of silently sectioning every room in the model
  • create_sheets reports an error listing the available title blocks when a requested title block ID does not resolve, instead of silently substituting the project's first title block
  • check_model_interferences now states clearly that clash detection runs within the current model - linked models are listed for context, not clash-tested
  • get_session_info now reports the Revit build number, username, and memory usage as documented
v3.0.0 July 2026

One product: free tier plus Pro licence

  • The free and Pro editions are unified into a single product: the 37 free read-only tools work out of the box, and a Pro licence key unlocks the full 170+ tool set in place - no separate download, no reinstall
  • New Buy Pro Licence and Activate Key buttons in the connection dialog; the dialog title and licence controls follow your tier
  • One identity everywhere: the connector registers as AUTOM8LABS_Revit in your AI apps. Upgrading migrates your settings and cleans up the old AUTOM8LABS_Revit_Pro entry from every AI app configuration automatically
  • Installed bundles from earlier editions (website Pro and App Store Pro) are removed automatically on upgrade
  • Programs and Features entry renamed to "MCP Connector for Revit"
v2.2.0 July 2026

ChatGPT Desktop support and smarter AI app setup

  • ChatGPT Desktop is now a fully supported AI app: the Enable MCP toggle configures it automatically alongside Claude Desktop and Cursor
  • The setup dialog now shows only the AI apps detected on your machine
  • The Microsoft Store build of Claude Desktop is configured automatically - no manual config copying
  • More reliable first conversations: the connector now tells the AI it is operating a live Revit session, so requests run as tool calls instead of mock-ups
  • Installer improvements: prompts to quit running AI apps before setup, and uninstalling now removes the connector's entries from every AI app configuration
v2.1.0 July 2026

Views, drawing registers, and warning resolvers - 15 new tools

  • New tool: create_view_filter. Create rule-based view filters from categories and parameter rules, and apply them to views with visibility and graphic overrides
  • New tool: create_view_template. Capture an existing view's settings as a named view template and assign it to views
  • New tool: override_element_graphics. Colour, line weight, transparency, and halftone overrides per view, plus colour-coding by parameter value with an auto legend
  • New tool: analyze_linked_view_usage. Audit how RVT links display across views, and which linked view each one shows (Revit 2024+)
  • New tools: analyze_drawing_register, update_drawing_register, and export_drawing_register. Read your company's own drawing issue-sheet template, then fill it from live sheet and revision data - including non-destructive updates to an already-populated register
  • New tools: seven automated resolvers for 'slightly off axis' warnings, covering walls, grids, lines, reference planes, room separation lines, sketch lines, and area boundaries
  • New tool: create_toposolid_from_dwg. Build a toposolid straight from a linked CAD survey's contours or spot heights
  • Drawing register upgrades: composite document numbers, extra parameter columns, distribution block fill, and multi-worksheet templates
  • Fixes across per-sheet revision numbering, linked-view analysis, and toposolid placement
v2.0.0 July 2026

Licensing platform and element sets

  • New tool: get_element_set. Page through the element IDs behind the compact element-set handles (ES-xxxx) that query tools return for large result sets
  • Query tools now return element-set handles for large result sets, and bulk tools accept them directly
  • Moved to the shared AUTOM8LABS licensing platform for more reliable activation and seat management
  • Clearer tool descriptions across the export tools
v1.2.0 June 2026

Fixes and new tools

  • New tool: create_sheets_from_excel. Build a whole set of sheets in one pass from an Excel drawing register, with sheet number, name, title block, and an optional view and scale per row
  • New tool: unhide_elements_in_view. Reveal elements that are permanently hidden in a view, one at a time or all at once
  • Orient the active 3D view's section box square-on to a selected wall or face, fitted neatly around it
  • Create scope boxes at exact dimensions, from an origin and size or from min and max corners
  • Revision tools now fully support per-sheet revision numbering, not just per-project
  • More reliable IFC export
  • MEP opening tools now resolve their host wall or floor correctly when cutting or placing openings
  • Faster model-health audit on large models
  • Remove PDF, image, and point-cloud links, not just Revit and CAD links
  • More accurate worksharing relinquish reporting, including what still needs a sync
  • Smarter file-path handling so exports land where you expect
  • Dry-run previews added to more bulk-modify tools
  • Reliability fixes across sheet sets, section views, view capture, dimensioning, and room finishes
v1.1.0 June 2026

Coordination and polish

  • Added the Coordination pack: clash detection, MEP penetration detection, openings, and dedicated clash review views
  • Grew the tool set and refined how the packs are organised
  • Reliability and performance improvements across the packs
v1.0.0 June 2026

Initial Release

  • 160+ MCP tools across 10 packs, including the 36 free read-only tools
  • Create, modify, audit, coordinate, and export
  • Supports Claude Desktop, Cursor, and Claude Code

Need Help?

Can't find what you're looking for? Our support team is here to help.

Contact Support