Skip to content

Pilotage de session Revit

Ouvrir et sauvegarder des fichiers .rvt depuis Claude — sans cliquer dans Revit.

Ces 2 tools sont la fondation du vibe coding sur Revit : Claude peut maintenant ouvrir un projet, le modifier (via tous les autres tools MCP), puis le sauvegarder ailleurs — sans intervention manuelle.

Pré-requis

  • Revit doit déjà être ouvert avec un document (n'importe lequel — Snowdon, projet vide, etc.). Le bridge MCP ne se connecte qu'après l'activation d'une vue.
  • Pour le 1er fichier d'une session : utiliser Start-Process au niveau OS (voir Diagnostic).

revit_open_document — ouvrir un .rvt

Ouvre et active un .rvt depuis un chemin local ou UNC (NAS agence par exemple).

Paramètres

ParamTypeDéfautDescription
pathstring (requis)Chemin du .rvt (ex: C:/projets/villa.rvt ou \\nas\projets\villa.rvt)
worksharing_modeenum"default"detach_preserve (recommandé MCP), detach_discard, ou default (refuse central sauf override)
auditboolfalseAudit du fichier à l'ouverture (plus lent, recommandé si soupçon de corruption)
allow_open_for_editboolfalse Danger : autorise la prise du central. À n'utiliser que manuellement.

Comportement

  • Validation du chemin : path non vide, existence vérifiée pour chemins locaux/UNC (chemins cloud BIM360 passent sans vérif et Revit gère l'erreur)
  • Idempotence : si le fichier est déjà ouvert dans la session Revit, retourne already_open: true sans réouvrir. La réponse est instantanée (duration_ms ~ 0)
  • Worksharing :
    • Fichier non workshared → ouverture directe
    • Fichier workshared + worksharing_mode="detach_preserve" → ouvre détaché avec worksets (recommandé pour MCP)
    • Fichier workshared + worksharing_mode="default" (sans allow_open_for_edit) → refuse avec message clair (protection automation)

Réponse

json
{
  "opened": true,
  "already_open": false,
  "path": "\\\\192.168.1.114\\91studio\\0-REVIT\\XX_FAISA PLIANE\\XX_FAISA PLIANE_01.rvt",
  "title": "XX_FAISA PLIANE_01",
  "is_workshared": false,
  "worksharing_mode_used": "n/a (not workshared)",
  "audit": false,
  "duration_ms": 63059
}

Exemple

bash
curl -X POST http://127.0.0.1:9711/tool-call \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "revit_open_document",
    "params": {
      "path": "\\\\192.168.1.114\\91studio\\0-REVIT\\XX_FAISA PLIANE\\XX_FAISA PLIANE_01.rvt",
      "worksharing_mode": "detach_preserve"
    }
  }'

revit_save_as — sauvegarder sous un nouveau nom

Enregistre le document actif sous un nouveau chemin. Utile pour créer des versions (_v2, _DCE, _PC…) ou archiver.

Paramètres

ParamTypeDéfautDescription
pathstring (requis)Chemin cible (extension .rvt obligatoire)
overwriteboolfalseSi true, écrase un fichier existant à ce chemin
compactboolfalseCompacte le fichier à la sauvegarde (plus lent, fichier plus petit)
max_backupsint ≥ 1défaut Revit (3)Nombre max de .0001, .0002… conservés
create_dirbooltrueCrée le répertoire parent s'il n'existe pas

Comportement

  • Validation : extension .rvt, répertoire parent existant ou créé si create_dir
  • Protection écrasement : refuse si le fichier cible existe et overwrite=false
  • Worksharing : statut workshared du document source préservé dans la réponse (was_workshared)
  • Performance : sauvegarde d'un fichier de 1.2 GB sur UNC ≈ 90 secondes

Réponse

json
{
  "saved": true,
  "path": "\\\\192.168.1.114\\91studio\\0-REVIT\\XX_FAISA PLIANE\\XX_FAISA PLIANE_02.rvt",
  "title": "XX_FAISA PLIANE_02",
  "was_workshared": false,
  "overwrote": false,
  "compact": false,
  "max_backups": null,
  "duration_ms": 92881
}

Exemple

bash
curl -X POST http://127.0.0.1:9711/tool-call \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "revit_save_as",
    "params": {
      "path": "\\\\192.168.1.114\\91studio\\0-REVIT\\XX_FAISA PLIANE\\XX_FAISA PLIANE_02.rvt",
      "overwrite": false
    }
  }'

Workflow type : versionner un projet

Cas d'usage : créer une nouvelle version d'un projet client pour une phase suivante.

  1. Revit a déjà un projet ouvert (peu importe lequel — Snowdon, vide, ancien projet)
  2. revit_open_document sur le projet cible avec worksharing_mode="detach_preserve" si workshared
  3. Vos modifications via les autres tools MCP (sélection, tags, nomenclatures, etc.)
  4. revit_save_as sur le nouveau chemin

Diagnostic

Le bridge n'est pas connecté ("Revit plugin not connected")

  • Vérifier que Revit est ouvert avec un document chargé et une vue activée
  • curl http://127.0.0.1:9711/status doit retourner "connected": true

Pour le 1er fichier d'une session

Le bridge MCP démarre après l'activation de la 1re vue dans un document. Donc pour la première ouverture d'une session Revit, on ne peut pas encore utiliser revit_open_document :

powershell
# Lancer Revit avec le .rvt en argument
Start-Process "C:\Program Files\Autodesk\Revit 2024\Revit.exe" -ArgumentList "C:\projets\villa.rvt"

Puis attendre que la vue s'active. À partir de là, tous les revit_open_document suivants fonctionnent.

Timeout trop court

Si vous voyez "Timeout (30000ms) pour revit_open_document" : c'est un fichier très gros (> 1 GB) sur réseau lent. Les défauts production sont :

  • revit_open_document : 10 min (600 s)
  • revit_save_as : 10 min (600 s)

Si insuffisant : ajuster TOOL_TIMEOUTS dans src/mcp-server/src/config.ts puis rebuilder.

Plugin propriétaire — équipe 91STUDIO