Control a live Revit session via RevitMCP HTTP API. Use when asked to get Revit project info, select elements, query by category, export views, read/write element parameters, or query views from Revit. Requires Revit to be open on the Windows host with RevitMCP running. Direct Routes API at http://192.168.1.14:48884/revit-mcp-v1/ — no LLM key needed. Triggers on: "get revit data", "query revit", "select elements in revit", "revit project info", "export revit view", "revit element properties", "update revit parameter".
Connect to a live Revit 2026 session via pyRevit Routes API.
http://192.168.1.14:48884/revit-mcp-v1/http://192.168.1.14:8000/ (requires LLM key for natural language)Returns current project metadata.
exec(command="curl -s 'http://192.168.1.14:48884/revit-mcp-v1/project_info'")
Select elements in Revit by their element IDs.
exec(command="curl -s -X POST 'http://192.168.1.14:48884/revit-mcp-v1/select_elements_by_id' \
-H 'Content-Type: application/json' \
-d '{\"element_ids\": [123456, 789012]}'")
Select all elements of a given Revit category (selects in UI).
exec(command="curl -s -X POST 'http://192.168.1.14:48884/revit-mcp-v1/select_elements_by_category' \
-H 'Content-Type: application/json' \
-d '{\"category_name\": \"Walls\"}'")
Export a named Revit view as a base64-encoded PNG.
exec(command="curl -s -X POST 'http://192.168.1.14:48884/revit-mcp-v1/export_revit_view' \
-H 'Content-Type: application/json' \
-d '{\"view_name\": \"Level 1\"}'")
Returns the current Revit selection (element IDs + categories). No body needed.
exec(command="curl -s 'http://192.168.1.14:48884/revit-mcp-v1/selection/active'")
Get all elements in a category with basic info. Set include_parameters: true for full params.
exec(command="curl -s -X POST 'http://192.168.1.14:48884/revit-mcp-v1/get_elements_by_category' \
-H 'Content-Type: application/json' \
-d '{\"category_name\": \"Walls\", \"include_parameters\": false}'")
Read all instance + type parameters for a single element.
exec(command="curl -s 'http://192.168.1.14:48884/revit-mcp-v1/element/properties?id=123456'")
Write/modify element parameters. updates is a {param_name: value} dict.
exec(command="curl -s -X POST 'http://192.168.1.14:48884/revit-mcp-v1/element/parameters/update' \
-H 'Content-Type: application/json' \
-d '{\"element_id\": \"123456\", \"updates\": {\"Comments\": \"Reviewed\", \"Mark\": \"A1\"}}'")
Returns name, type, scale, and associated level of the currently active view.
exec(command="curl -s 'http://192.168.1.14:48884/revit-mcp-v1/views/active/info'")
Elements visible in the active view. Optional category_name filter.
exec(command="curl -s -X POST 'http://192.168.1.14:48884/revit-mcp-v1/views/active/elements' \
-H 'Content-Type: application/json' \
-d '{\"category_name\": \"Doors\"}'")
List all non-template views in the project.
exec(command="curl -s 'http://192.168.1.14:48884/revit-mcp-v1/views/list'")
Create a new sheet and place a named view on it.
exec(command="curl -s -X POST 'http://192.168.1.14:48884/revit-mcp-v1/views/place_on_sheet' \
-H 'Content-Type: application/json' \
-d '{\"view_name\": \"Level 1\", \"exact_match\": false}'")
Filter elements by category + parameter condition.
exec(command="curl -s -X POST 'http://192.168.1.14:48884/revit-mcp-v1/filter_elements' \
-H 'Content-Type: application/json' \
-d '{\"category_name\": \"Walls\", \"parameter_name\": \"Comments\", \"parameter_value\": \"Review\", \"match_type\": \"contains\"}'")
match_type options: equals, contains, startswith, endswith, greater_than, less_than, is_empty, is_not_empty.
List all loaded family types. Optional category_name filter.
exec(command="curl -s -X POST 'http://192.168.1.14:48884/revit-mcp-v1/family_types/list' \
-H 'Content-Type: application/json' \
-d '{\"category_name\": \"Doors\"}'")
High-level project schema: all levels, used categories, and loaded family names.
exec(command="curl -s 'http://192.168.1.14:48884/revit-mcp-v1/schema/context'")
exec(command="curl -s --max-time 3 'http://192.168.1.14:48884/revit-mcp-v1/project_info' | head -c 100")
If this times out, Revit/pyRevit is not running or the firewall blocked the connection.
The Python server at port 8000 exposes 22 tools but requires an Anthropic/OpenAI API key configured in RevitMCP settings. For direct programmatic use, prefer the Routes API above.
POST http://192.168.1.14:8000/send_revit_command — direct command passthrough (routes to Routes API internally).