Autodesk Revit MCP Server

Servidor MCP do Autodesk Revit

Documentação

AEC Model Bridge

AEC Model Bridge

O AEC Model Bridge é o runtime aberto e seguro que coloca Revit, Rhino, Navisworks e Power BI atrás de um único centro de chamadas MCP — permitindo que um agente de IA os orquestre diretamente, em vez de você transferir dados manualmente entre aplicativos desconectados.

MCP Registry License Python Revit


Disponível agora

Revit available Rhino and Grasshopper available IfcOpenShell available Speckle available

Em andamento

Navisworks Manage in progress Power BI in progress

Em breve

Microsoft Excel coming soon Parquet and DuckDB coming soon

Instalar | Ferramentas | Documentação | Última versão

Um único cliente MCP — Claude Desktop, VS Code, GitHub Copilot ou um agente personalizado — conversa com um hub Python, e o hub roteia cada chamada para o aplicativo que a tarefa realmente precisa: desenhar geometria no Rhino, consultar parâmetros no Revit, resolver conflitos no Navisworks, publicar um dashboard no Power BI. O agente planeja o fluxo de trabalho uma única vez; a ponte é o que permite que ele alcance cada aplicativo sem que você seja quem copia dados entre eles.

O hub Python gerencia a comunicação MCP e roteia cada solicitação para o provedor relevante de desktop, headless, nuvem ou computação:

  • Revit: Add-in nativo em C# (Revit 2024-2027) executando na thread principal via ExternalEvent.
  • Navisworks Manage: Add-in nativo em C# (Navisworks 2024-2027) expondo a API por uma ponte local (em andamento).
  • Rhino/Grasshopper: Conecta-se ao Rhino Bridge Add-in via HTTP localhost:3004.
  • Speckle: Provedor nativo em Python integrando Specklepy V3 para envio contínuo de modelos ao Power BI.
  • IfcOpenShell: Extração e análise semântica headless de IFC.

Status da Plataforma

O status abaixo reflete o blueprint do sistema AEC Model Bridge em junho de 2026. Integrações em andamento são implementadas como infraestrutura de roteamento, mas exigem registro adicional ou integração de fluxo de trabalho.

Disponível Agora

Revit, Rhino/Grasshopper, IfcOpenShell e Speckle são integrações disponíveis. O add-in C# do Revit (Revit 2024-2027) executa comandos na thread principal. O Rhino conecta-se ao Rhino Bridge Add-in via HTTP na porta 3004. O IfcOpenShell fornece análise headless de IFC, e o Speckle integra o envio de modelos via Specklepy V3.

Em Andamento

O Navisworks Manage está atualmente em andamento; embora a infraestrutura de roteamento do add-in C# esteja implementada, o provedor ainda não está registrado no hub distribuído. O Power BI também está em andamento, com o provedor e a ferramenta implementados, mas ainda não integrados ao runtime ativo do hub.

Em Breve

Esta onda adiciona idas e voltas de pastas de trabalho do Excel e um plano de dados Parquet/DuckDB para relatórios multiplataforma.

Destaques

  • Mais de 100 ferramentas MCP para criação de modelos, documentação, parâmetros, vistas, pranchas, exportações e QA.
  • Add-ins nativos para Revit e Navisworks sem dependências de Dynamo ou pyRevit.
  • Sincronização multiplataforma: consulta cruzada dinâmica de resultados de conflitos do Navisworks, parâmetros do Revit e modelos do Rhino.
  • Transferências automatizadas de dados com Speckle e PowerBI.
  • Orquestração assíncrona de trabalhos e centralização da redação de PII.
  • Reflexão e Python in-process para fluxos de trabalho avançados de API.
  • Ponte somente em localhost por padrão para segurança absoluta.
  • Modo mock para desenvolvimento e testes automatizados sem Revit.

Como Funciona

flowchart TD

subgraph group_clients["Clients and UI"]
  node_panel_ui["Bridge Panel<br/>[app.js]"]
end

subgraph group_hub["Hub and Governance"]
  node_mcp_hub["MCP Hub<br/>[mcp_server.py]"]
  node_provider_registry["Provider Registry<br/>[registry.py]"]
  node_job_manager["Job Manager<br/>[jobs.py]"]
  node_security_controls["Security Controls<br/>[workspace.py]"]
  node_audit_log["Audit Log<br/>[audit.py]"]
end

subgraph group_revit["Revit Runtime"]
  node_revit_bridge_client["Bridge Client<br/>[client.py]"]
  node_revit_addin["Revit Add-in<br/>[BridgeServer.cs]"]
  node_external_executor["External Executor"]
  node_revit_commands["Revit Commands"]
  node_revit_model[("Revit Model")]
end

subgraph group_providers["Integration Providers"]
  node_revit_provider["Revit Provider<br/>[revit.py]"]
  node_rhino_provider["Rhino Provider<br/>[rhino.py]"]
  node_rhino_addin["Rhino Add-in<br/>[BridgeCommands.cs]"]
  node_ifc_provider["IFC Provider<br/>[ifc.py]"]
  node_speckle_provider["Speckle Provider<br/>[cloud.py]"]
  node_navisworks_provider["Navisworks Provider<br/>[navisworks.py]"]
  node_navisworks_addin["Navisworks Add-in<br/>[BridgeServer.cs]"]
  node_powerbi_provider["Power BI Provider<br/>[powerbi.py]"]
  node_powerbi_tool["Power BI Tool<br/>[Program.cs]"]
end

subgraph group_intelligence["AEC Intelligence"]
  node_semantic_provider["Semantic Provider"]
  node_semantic_engine["Semantic Engine<br/>[engine.py]"]
  node_revit_modules["Revit Tool Modules"]
  node_approval_provider["Approval Provider"]
end

node_mcp_client(("MCP Client"))

node_mcp_client -->|"sends requests"| node_mcp_hub
node_panel_ui -->|"shows results"| node_mcp_hub
node_mcp_hub -->|"validates access"| node_security_controls
node_mcp_hub -->|"records calls"| node_audit_log
node_mcp_hub -->|"schedules jobs"| node_job_manager
node_mcp_hub -->|"dispatches tools"| node_provider_registry
node_provider_registry -->|"routes Revit"| node_revit_provider
node_provider_registry -->|"routes Rhino"| node_rhino_provider
node_provider_registry -->|"routes IFC"| node_ifc_provider
node_provider_registry -->|"routes Speckle"| node_speckle_provider
node_provider_registry -->|"routes semantics"| node_semantic_provider
node_provider_registry -->|"routes approvals"| node_approval_provider
node_provider_registry -.->|"routes clashes"| node_navisworks_provider
node_provider_registry -.->|"routes dashboards"| node_powerbi_provider
node_revit_provider -->|"calls tools"| node_revit_bridge_client
node_revit_bridge_client -->|"uses HTTP"| node_revit_addin
node_revit_addin -->|"queues commands"| node_external_executor
node_external_executor -->|"executes tools"| node_revit_commands
node_revit_commands -->|"reads and writes"| node_revit_model
node_revit_addin -->|"opens panel"| node_panel_ui
node_rhino_provider -->|"uses HTTP"| node_rhino_addin
node_ifc_provider -->|"extracts IFC"| node_semantic_engine
node_speckle_provider -->|"pushes models"| node_semantic_engine
node_navisworks_provider -.->|"uses bridge"| node_navisworks_addin
node_powerbi_provider -.->|"executes queries"| node_powerbi_tool
node_semantic_provider -->|"queries graph"| node_semantic_engine
node_approval_provider -->|"updates queue"| node_panel_ui

click node_panel_ui "https://github.com/Sam-AEC/aec-model-bridge/blob/main/panel/app.js"
click node_mcp_hub "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/mcp_server.py"
click node_provider_registry "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/providers/registry.py"
click node_job_manager "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/jobs.py"
click node_security_controls "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/security/workspace.py"
click node_audit_log "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/security/audit.py"
click node_revit_provider "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/providers/revit.py"
click node_revit_bridge_client "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/bridge/client.py"
click node_revit_addin "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/revit-bridge-addin/src/Bridge/BridgeServer.cs"
click node_external_executor "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/revit-bridge-addin/src/Bridge/ExternalEventHandler.cs"
click node_revit_commands "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/revit-bridge-addin/src/Bridge/BridgeCommandFactory.cs"
click node_rhino_provider "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/providers/rhino.py"
click node_rhino_addin "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/rhino-bridge-addin/src/BridgeCommands.cs"
click node_ifc_provider "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/providers/ifc.py"
click node_speckle_provider "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/providers/cloud.py"
click node_navisworks_provider "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/providers/navisworks.py"
click node_navisworks_addin "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/navisworks-bridge-addin/src/BridgeServer.cs"
click node_powerbi_provider "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/providers/powerbi.py"
click node_powerbi_tool "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/powerbi-bridge-tool/src/Program.cs"
click node_semantic_provider "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/providers/semantic_provider.py"
click node_semantic_engine "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/semantic/engine.py"
click node_revit_modules "https://github.com/Sam-AEC/aec-model-bridge/tree/main/packages/mcp-server-revit/src/revit_mcp_server/modules"
click node_approval_provider "https://github.com/Sam-AEC/aec-model-bridge/blob/main/packages/mcp-server-revit/src/revit_mcp_server/providers/approval_provider.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_panel_ui,node_mcp_client toneBlue
class node_mcp_hub,node_provider_registry,node_job_manager,node_security_controls,node_audit_log toneAmber
class node_revit_bridge_client,node_revit_addin,node_external_executor,node_revit_commands,node_revit_model toneMint
class node_revit_provider,node_rhino_provider,node_rhino_addin,node_ifc_provider,node_speckle_provider,node_navisworks_provider,node_navisworks_addin,node_powerbi_provider,node_powerbi_tool toneRose
class node_semantic_provider,node_semantic_engine,node_revit_modules,node_approval_provider toneIndigo

Instalação

Requisitos

Versão do RevitAlvo do add-inFerramentas de build necessárias
2024.NET Framework 4.8.NET 8 SDK e pacote de desenvolvedor .NET Framework 4.8
2025.NET 8 para Windows.NET 8 SDK
2026.NET 8 para Windows.NET 8 SDK
2027.NET 10 para Windows.NET 10 SDK

Você também precisa de Windows 10 ou 11, Python 3.11 ou posterior e uma instalação licenciada do Revit para a versão que deseja usar.

1. Instale o servidor MCP

git clone https://github.com/Sam-AEC/aec-model-bridge.git
cd aec-model-bridge

py -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e packages/mcp-server-revit

2. Instale o add-in do Revit

Defina a versão para corresponder à sua instalação do Revit. Se o Windows bloquear os scripts baixados, clique com o botão direito em cada arquivo .ps1, abra Propriedades e selecione Desbloquear antes de executá-los.

$RevitVersion = Read-Host "Revit year (2024, 2025, 2026, or 2027)"

.\scripts\package.ps1 -RevitVersion $RevitVersion
.\scripts\install.ps1 -RevitVersion $RevitVersion

O instalador coloca os binários específicos da versão em:

C:\ProgramData\AECModelBridge\bin\<year>

O manifesto do add-in é instalado por usuário em:

%APPDATA%\Autodesk\Revit\Addins\<year>

Use -AllUsers com install.ps1 para instalar o manifesto em C:\ProgramData\Autodesk\Revit\Addins\<year>.

Para preparar os binários para todas as versões suportadas de uma só vez:

.\scripts\package.ps1 -RevitVersion All

Pacotes pré-compilados são anexados aos lançamentos do GitHub quando disponíveis. A instalação a partir do código-fonte acima é o caminho canônico para todas as versões suportadas do Revit.

3. Configure seu cliente MCP

Use o executável Python do ambiente virtual e escolha um espaço de trabalho ao qual o servidor possa acessar:

{
  "mcpServers": {
    "aec-model-bridge": {
      "command": "C:\\path\\to\\aec-model-bridge\\.venv\\Scripts\\python.exe",
      "args": ["-m", "revit_mcp_server.mcp_server"],
      "env": {
        "MCP_REVIT_MODE": "bridge",
        "MCP_REVIT_WORKSPACE_DIR": "C:\\RevitProjects",
        "MCP_REVIT_ALLOWED_DIRECTORIES": "C:\\RevitProjects"
      }
    },
    "aec-model-bridge-revit-2026": {
      "command": "C:\\path\\to\\aec-model-bridge\\.venv\\Scripts\\python.exe",
      "args": ["-m", "revit_mcp_server.mcp_server"],
      "env": {
        "MCP_REVIT_MODE": "bridge",
        "MCP_REVIT_HOST_VERSION": "2026",
        "MCP_REVIT_WORKSPACE_DIR": "C:\\RevitProjects",
        "MCP_REVIT_ALLOWED_DIRECTORIES": "C:\\RevitProjects"
      }
    }
  }
}

Omita MCP_REVIT_HOST_VERSION para direcionar a instância aberta mais recente do Revit, ou defina-o para um ano como 2024 ou 2026 para manter uma entrada de cliente bloqueada nessa versão do Revit. MCP_REVIT_BRIDGE_URL permanece disponível como uma substituição explícita de endpoint para configurações avançadas.

Usuários do VS Code podem começar por .vscode/mcp.json. Usuários do Hermes Desktop podem começar por Hermes.json; substitua o caminho do Python pelo caminho do seu ambiente virtual local.

Clientes que suportam MCP Bundles podem instalar o arquivo .mcpb do último lançamento. O add-in do Revit ainda é necessário porque o servidor MCP se comunica com o aplicativo desktop em execução.

4. Verifique a conexão

Reinicie o Revit após instalar o add-in, abra um modelo e execute:

$registry = Get-ChildItem "$env:LOCALAPPDATA\AECModelBridge\registry\revit-*.json" | Select-Object -First 1
$switch = Get-Content $registry.FullName -Raw | ConvertFrom-Json
Invoke-RestMethod "$($switch.endpoint)/health"

A resposta deve informar healthy e a versão ativa do Revit.

Acesso à API do Revit

As ferramentas MCP tipadas cobrem a superfície comum de fluxo de trabalho e são o padrão recomendado para agentes.

Para trabalhos fora do catálogo de ferramentas, invoke_method, reflect_get e reflect_set podem trabalhar com membros públicos da API .NET. execute_python executa IronPython dentro do Revit com doc, uidoc, uiapp e app disponíveis.

Essas ferramentas avançadas executam com as mesmas permissões do processo do Revit. Mantenha a ponte em localhost e use apenas clientes e prompts MCP confiáveis.

Desenvolvimento

# Python tests
python -m pytest packages/mcp-server-revit/tests

# Build one Revit version
$RevitVersion = Read-Host "Revit year (2024, 2025, 2026, or 2027)"
.\scripts\build-addin.ps1 -RevitVersion $RevitVersion -Configuration Release

# Build all supported versions
.\scripts\package.ps1 -RevitVersion All

O CI compila o servidor Python e os alvos do add-in para Revit 2024 a 2027.

Documentação

Projeto

Mantido por A. Sam Mohammad. LinkedIn | Problemas

A versão 1.1.0 e posteriores está disponível sob sua escolha de GPL-3.0-or-later com a Exceção de Vinculação do Revit, ou uma licença comercial separada. A opção GPL permite uso comunitário enquanto permite que o add-in opere por meio das APIs do Autodesk Revit. Termos comerciais estão disponíveis para distribuição proprietária e requisitos negociados. A versão 1.0.2 e anteriores permanece disponível sob a Licença MIT.

O AEC Model Bridge é um projeto independente e não é patrocinado, endossado ou fornecido pela Autodesk. Autodesk e Revit são marcas registradas do grupo Autodesk de empresas. Consulte TRADEMARKS.md.