Autodesk Revit MCP Server
Servidor MCP de Autodesk Revit
Documentación
English | 简体中文 | Español | हिन्दी | العربية | Português (BR) | Русский | 日本語 | Deutsch | Français | Bahasa Indonesia | Türkçe | 한국어 | Tiếng Việt | Italiano | Polski | 繁體中文
Pregúntale a tu IA sobre el modelo de Revit que tienes abierto. De forma predeterminada, las herramientas de escritura están bloqueadas hasta que apruebes un plan.
Servidor MCP de código abierto y complemento nativo para Revit 2024–2027. Funciona con Claude, Codex y otros clientes MCP.
Comenzar | Flujos de trabajo de ejemplo | Herramientas | Documentación | Descargar
Estado: en la rama de desarrollo, aún no publicado.
AEC Model Bridge es el servidor MCP de Revit de código abierto que permite a Claude, Codex, Cursor y otros asistentes de IA leer y editar tu modelo de Revit abierto. De forma predeterminada, apruebas cada cambio primero. Tiene dos partes: un servidor MCP en Python y un complemento nativo de Revit. Las herramientas de solo lectura inspeccionan el modelo de inmediato. Los cambios en el modelo requieren un plan aprobado de forma predeterminada. Consulta el flujo de aprobación.
Para quién es. Coordinadores y gestores de BIM que quieren un asistente de IA para comprobar la calidad del modelo, encontrar elementos afectados y preparar correcciones de parámetros, mientras una persona mantiene el control de cada cambio. No necesitas escribir scripts.
Estado y limitaciones. Este es software de prelanzamiento.
- Nada en este producto se ha verificado aún en una sesión real de Revit. El servidor Python se prueba con proveedores simulados, y la CI compila el complemento para Revit 2024 a 2027 pero no inicia Revit. Trata cada comportamiento de Revit descrito aquí como NO VERIFICADO hasta que una persona lo haya comprobado. La lista ordenada está en la lista de verificación de lanzamiento.
- Esta página describe la rama de desarrollo. La última versión de GitHub puede no incluir todo lo descrito aquí.
- Pruébalo primero en una copia de un proyecto. Aprobar un plan cambia el modelo abierto.
- Algunas limitaciones son conocidas y se enumeran en Cómo funciona la aprobación y en docs/security.md.
- La rama de desarrollo registra más herramientas (241 en modo simulado al momento de escribir esto; consulta la rama de desarrollo).
La configuración está documentada para Claude Desktop, VS Code con GitHub Copilot, Cursor y Codex. El servidor es un servidor MCP stdio estándar, por lo que otros clientes como Claude Code, Windsurf, Cline, Continue, Zed y Gemini CLI también deberían funcionar. La página de compatibilidad enumera lo que está documentado y lo que no está probado.
El mismo servidor también inspecciona archivos IFC, automatiza Rhino y Grasshopper, y se conecta a Speckle. El estado de integración muestra qué proveedores están disponibles y cuáles aún están en progreso.
Flujos de trabajo de ejemplo
Para coordinadores de BIM: comprueba la calidad del modelo, revisa los elementos afectados, aprueba una corrección de parámetros y luego verifica el resultado y exporta un informe. Estos ejemplos usan herramientas del catálogo actual.
| Flujo de trabajo | Solicitud de ejemplo | Herramientas utilizadas |
|---|---|---|
| Revisión del modelo | "Muestra el documento activo, enumera sus advertencias y encuentra los elementos afectados." | revit_get_document_info, revit_get_warnings, revit_get_elements_by_type |
| Actualizaciones de parámetros | "Encuentra muros en el Nivel 02, muestra sus valores de Comentarios y propón una actualización por lotes." | revit_get_elements_by_type, revit_get_element_parameters, revit_batch_set_parameters |
| Producción de dibujos | "Prepara una lista de láminas desde este CSV y luego propón crear las láminas y colocar las vistas." | revit_batch_create_sheets_from_csv, revit_place_viewport_on_sheet |
| Revisión de IFC | "Muestra los niveles de este archivo IFC, inspecciona las propiedades de los muros e informa los problemas de validación de esquema." | ifc_get_spatial_structure, ifc_get_properties, ifc_validate |
Para una primera ejecución en Revit, prueba:
Read the active model's warnings. Group them by description and show the
affected element IDs. Then suggest which issues to investigate first.
Luego prueba una corrección de parámetros, reemplazando el nivel y el valor para tu proyecto:
Find walls on Level 02 and show their current Comments values. Propose setting
Comments to "Coordination reviewed" for the elements I choose. After I approve
the plan in Revit, apply it and read the values back to confirm the result.
Para ediciones, el asistente crea un plan con plan_actions. Lo revisas en el panel de Revit, y solo entonces execute_plan lo aplica. La revisión de IFC se ejecuta sin Revit.
Los módulos de instantáneas QA/QC e informes necesitan una instantánea guardada compatible. La transferencia de Revit a estos módulos actualmente necesita que el nombre de archivo y el espacio de trabajo coincidan. Si omites snapshot_id, la mayoría de estos módulos ahora se niegan en modo puente con un mensaje claro, y devuelven datos de muestra generados solo en modo simulado. No todos los módulos tienen esa protección aún (model_bloat no la tiene), así que siempre pasa snapshot_id. Para inspección en vivo, usa las herramientas directas de Revit anteriores. Correcciones planificadas y demostración.
Inicio rápido
En 60 segundos, sin Revit (modo simulado)
- Instala uv.
- Agrega el servidor a tu cliente con el JSON en Configuración manual y establece
"MCP_REVIT_MODE": "mock". Los botones de un clic a continuación inician en modobridge, que necesita Revit. - Reinicia el cliente y pídele que enumere las herramientas de AEC Model Bridge.
- Pídele que lea el documento activo. El modo simulado devuelve datos de muestra generados, nunca tu modelo, por lo que las respuestas son una forma de ver las herramientas y el flujo de aprobación antes de conectar Revit.
- Para tu propio modelo, instala el complemento de Revit (pasos de instalación) y cambia el modo a
bridge.
Instalación con un clic
Los botones necesitan uv y nada más. El servidor usa ~/Documents/AEC Model Bridge como su espacio de trabajo a menos que establezcas el tuyo propio. Para Claude Desktop, descarga el archivo .mcpb de la última versión y ábrelo. El trabajo en vivo con Revit aún necesita Revit y el complemento. El modo simulado no necesita ninguno.
Configuración manual
Para automatización en vivo de Revit necesitas Windows, una licencia de Revit 2024 a 2027, Python 3.11 o más reciente, uv y el complemento de Revit (pasos de instalación). Luego agrega esto a tu claude_desktop_config.json (Codex, Cursor y VS Code usan los mismos valores; las dos variables de directorio son opcionales y tienen como valor predeterminado el espacio de trabajo anterior):
{
"mcpServers": {
"aec-model-bridge": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Sam-AEC/aec-model-bridge#subdirectory=packages/mcp-server-revit",
"aec-model-bridge"
],
"env": {
"MCP_REVIT_MODE": "bridge",
"MCP_REVIT_WORKSPACE_DIR": "C:\\RevitProjects",
"MCP_REVIT_ALLOWED_DIRECTORIES": "C:\\RevitProjects"
}
}
}
}
¿Quieres ver las herramientas primero, sin Revit? Establece "MCP_REVIT_MODE": "mock". El servidor entonces se inicia en cualquier máquina, enumera cada herramienta con su esquema y devuelve respuestas predefinidas. No toca un modelo. Un Dockerfile para el mismo modo simulado está en la raíz del repositorio (docker build -t aec-model-bridge ., luego docker run -i --rm aec-model-bridge).
¿Usas VS Code? El código fuente de la extensión y los pasos de instalación local registran el servidor MCP y muestran el estado de conexión de Revit. No se ha publicado en el Marketplace.
Herramientas de un vistazo
| Área | Herramientas | Qué hacen |
|---|---|---|
| Revit | 103 | Leer el modelo, crear y editar elementos, parámetros, vistas, láminas, programaciones, exportaciones, trabajo compartido |
| Aprobación | 6 | Planificar, revisar, aprobar, ejecutar y revertir cambios en el modelo |
| Módulos | 34 | Inspección de instantáneas, cuadrículas de parámetros, controles QA/QC, recetas, informes, selecciones |
| Rhino y Grasshopper | 19 | Geometría, capas, materiales, operaciones booleanas |
| Speckle | 17 | Proyectos, modelos, versiones, enviar y recibir |
| Navisworks | 15 | Árbol del modelo, puntos de vista, pruebas de interferencias (en progreso) |
| IFC | 7 | Leer archivos IFC sin Revit: estructura, propiedades, validación |
| Gráfico, instantáneas, exportaciones, trabajos | 18 | Auditorías de gráfico semántico, diferencias de instantáneas, exportación SQLite, trabajos en segundo plano |
219 herramientas están enumeradas en la configuración predeterminada (contadas desde el servidor actual en modo simulado). Las herramientas de Autodesk Data aparecen cuando se configuran las credenciales de APS. La referencia de herramientas enumera cada herramienta. Cada herramienta lleva anotaciones MCP (readOnlyHint, destructiveHint, idempotentHint, openWorldHint), para que los clientes puedan distinguir lecturas de escrituras.
Automatización avanzada de Revit
Además de consultas de modelo y actualizaciones de parámetros, las herramientas de Revit crean elementos de construcción, vistas, láminas, programaciones, etiquetas y cotas, y exportan archivos IFC, DWG, imágenes y Navisworks. Consulta la referencia de herramientas para conocer las operaciones y entradas compatibles.
Para cualquier cosa que el catálogo de herramientas no cubra, revit_invoke_method, revit_reflect_get y revit_reflect_set funcionan con miembros públicos de la API de Revit. revit_execute_python ejecuta IronPython dentro de Revit. Estas herramientas avanzadas tienen los mismos permisos que el proceso de Revit. Úsalas solo con clientes MCP y mensajes en los que confíes.
Cómo funciona
El cliente MCP se comunica con un centro Python. El centro envía cada llamada al proveedor que posee la herramienta. Los proveedores para aplicaciones de escritorio se comunican con un pequeño complemento dentro de esa aplicación a través de localhost.
Fuente del diagrama: architecture.mmd. Regenera las imágenes con python scripts/render_diagrams.py.
Las cajas de color verde azulado funcionan hoy. Las cajas discontinuas de color ámbar están en progreso. Las formas índigo son datos y servicios externos.
Cómo funciona la aprobación
En palabras sencillas:
- Dos modos que usarás.
look_onlypermite al asistente leer pero rechaza cada herramienta que cambia el modelo.ask_first(el predeterminado, también escritorequired) le permite redactar cambios, pero nada se ejecuta hasta que una persona aprueba. Un tercer valor,auto, desactiva la verificación y está destinado solo para pipelines controlados. - Solo una persona aprueba. Aprobar, rechazar y revertir planes no se ofrecen a clientes de IA. Una persona aprueba en el panel de Revit o con el comando
aec-model-bridge-approve. - Nada se aplica por sí solo. Un cambio se ejecuta solo si coincide con una acción aprobada de un plan aprobado, una vez.
- Deshacer es por acción. Ctrl+Z de Revit deshace una acción por pulsación.
El centro detiene cualquier llamada de herramienta que cambie el modelo a menos que lleve un plan aprobado. La IA propone un plan, tú lo revisas y el complemento lo ejecuta en el hilo principal de Revit. La lista de Planes del panel muestra las herramientas, los argumentos y, cuando se capturó uno, el valor anterior de cada plan pendiente. Para la revisión completa de un plan, incluido cualquier razonamiento y advertencias que el asistente adjuntó, ejecuta aec-model-bridge-approve show <plan_id>; el panel no muestra ese texto de revisión. Las acciones de parámetros y edición de modelo se ejecutan cada una en su propia transacción nombrada; algunas acciones (guardar, sincronizar, scripts) no lo hacen, por lo que Ctrl+Z no las cubre.
Fuente del diagrama: approval-flow.mmd. Regenera las imágenes con python scripts/render_diagrams.py.
Si un plan resulta incorrecto, deshazlo con Ctrl+Z de Revit. Cada escritura de parámetro es su propia transacción con nombre, por lo que un plan puede requerir varias pulsaciones. Un deshacer de un solo paso para un plan completo está planificado, pero no construido. Una segunda ruta es un plan de reversión: el asistente redacta uno con plan_revert a partir de la prueba de un plan ejecutado, y tú lo apruebas como cualquier otro plan. rollback_plan también escribe los valores previos registrados en orden inverso y puede omitir una acción cuando no se registró un valor previo, pero es solo para personas y aún no tiene botón de panel ni comando de línea de comandos, así que no cuentes con ello. Ninguna de estas rutas está verificada en una sesión de Revit en vivo todavía (SIN VERIFICAR). Las operaciones que no se pueden revertir, como la salida de archivos, no se deshacen con ninguna de ellas y aún no reciben una segunda confirmación (planificado). La lista de Planes del panel muestra solo planes pendientes; aec-model-bridge-approve show <plan_id> funciona para un plan en cualquier estado, mientras que los paquetes proofs/ existen solo para planes que se ejecutaron (o se intentaron). El ciclo de vida está en ADR 0008.
Para pipelines desatendidos, puedes configurar MCP_REVIT_APPROVAL_MODE=auto. Eso desactiva la verificación humana, así que úsalo solo en un entorno controlado.
Versiones de Revit compatibles
| Versión de Revit | Destino del complemento | Herramientas de compilación |
|---|---|---|
| 2024 | .NET Framework 4.8 | SDK de .NET 8 y paquete de desarrollador de .NET Framework 4.8 |
| 2025 | .NET 8 para Windows | SDK de .NET 8 |
| 2026 | .NET 8 para Windows | SDK de .NET 8 |
| 2027 | .NET 10 para Windows | SDK de .NET 10 |
Estos son los destinos de compilación. CI compila el complemento para los cuatro años, pero ningún año se ha verificado en una sesión de Revit en vivo todavía.
También necesitas Windows 10 u 11, Python 3.11 o posterior, y una instalación de Revit con licencia para la versión que uses. El modo simulado ejecuta el servidor sin Revit, lo cual es útil para desarrollo y pruebas.
Otras integraciones
| Integración | Estado |
|---|---|
| Revit | Disponible. Complemento nativo en C#. |
| IFC (IfcOpenShell) | Disponible. Lee archivos IFC sin que Revit esté ejecutándose. |
| Rhino y Grasshopper | Disponible. Se conecta al complemento de Rhino en localhost:3004. |
| Speckle | Disponible. Necesita un ID de cliente de Speckle en tu entorno. |
| Navisworks Manage | En progreso. El proveedor y sus herramientas están registrados. El complemento de Navisworks no está terminado. |
| Power BI | En progreso. El proveedor y la herramienta existen pero no están registrados en el centro. |
| Excel, Parquet y DuckDB | Planificado. |
Los nombres de productos y logotipos pertenecen a sus propietarios. El banner los usa solo para mostrar con qué trabaja este proyecto.
Instalar el complemento de Revit
Más fácil (Windows): descarga AECModelBridge-Setup-<version>.exe desde la última versión, haz doble clic, elige tus versiones de Revit y reinicia Revit. Instala el complemento y el servidor Python incluido. Si marcas la casilla, también configura Claude Desktop y VS Code, y respalda tu configuración actual primero. Desinstálalo desde Configuración de Windows. Los pasos a continuación son para compilar desde el código fuente.
Instalas dos partes: el servidor MCP de Python y el complemento de Revit. La automatización de Revit en vivo necesita ambas.
1. Instalar el 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. Instalar el complemento de Revit
Configura la versión para que coincida con tu instalación de Revit. Si Windows bloquea los scripts descargados, haz clic derecho en cada archivo .ps1, abre Propiedades y selecciona Desbloquear antes de ejecutarlos.
$RevitVersion = Read-Host "Revit year (2024, 2025, 2026, or 2027)"
.\scripts\package.ps1 -RevitVersion $RevitVersion
.\scripts\install.ps1 -RevitVersion $RevitVersion
El instalador coloca binarios específicos de versión en:
C:\ProgramData\AECModelBridge\bin\<year>
El manifiesto del complemento se instala por usuario en:
%APPDATA%\Autodesk\Revit\Addins\<year>
Usa -AllUsers con install.ps1 para instalar el manifiesto en C:\ProgramData\Autodesk\Revit\Addins\<year> en su lugar.
Para preparar binarios para cada versión compatible en una sola pasada:
.\scripts\package.ps1 -RevitVersion All
Cada versión de GitHub tiene un paquete listo por año de Revit, por ejemplo aec-model-bridge-revit-2026-<version>.zip. Descomprímelo y ejecuta .\install.ps1 -RevitVersion 2026 en lugar de compilar desde el código fuente. Para un instalador de Windows con doble clic, scripts/build-installer.ps1 compila uno con Inno Setup. La guía completa, con solución de problemas, está en docs/install.md.
Conectar Claude Desktop a Revit
Agrega el servidor a tu configuración de cliente MCP. Para Claude Desktop, esa es la sección mcpServers de claude_desktop_config.json. Codex, Cursor, VS Code y otros clientes MCP usan los mismos valores command, args y env en su propio formato de configuración.
Usa el ejecutable de Python de tu entorno virtual y elige una carpeta de trabajo a la que el servidor pueda acceder:
{
"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"
}
}
}
}
Omite MCP_REVIT_HOST_VERSION para apuntar a la instancia de Revit abierta más reciente. Configúralo a un año como 2024 o 2026 para fijar una entrada de cliente a esa versión de Revit. MCP_REVIT_BRIDGE_URL anula el endpoint para configuraciones avanzadas.
Los usuarios de VS Code pueden comenzar desde .vscode/mcp.json. Los usuarios de Hermes Desktop pueden comenzar desde docs/examples/hermes-desktop.json después de reemplazar la ruta de Python de marcador de posición. Los clientes que admiten MCP Bundles pueden instalar el archivo .mcpb desde la última versión. El complemento de Revit sigue siendo necesario, porque el servidor se comunica con la aplicación de escritorio en ejecución.
Verificar la conexión
Reinicia Revit después de instalar el complemento, abre un modelo y ejecuta:
$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"
La respuesta debe informar healthy y la versión de Revit en ejecución. En Revit, busca la pestaña de cinta AEC Bridge. Su panel Workflows tiene Open Panel, Health Check, Pending Actions y Reports. Su panel Tools tiene Config, Help y About.
Seguridad
- El puente de Revit escucha solo en localhost.
- El servidor lee y escribe solo dentro de las carpetas en
MCP_REVIT_ALLOWED_DIRECTORIES. - Las herramientas de mutación necesitan un plan aprobado a menos que desactives la aprobación, y el modo
look_onlylas rechaza por completo. - La aprobación se registra con el canal (panel o línea de comandos) y tu cuenta de sistema operativo. No prueba quién está escribiendo, así que no le des a un cliente de IA un shell en la cuenta con la que apruebas planes.
- Las llamadas a herramientas se escriben en un registro de auditoría y los secretos se redactan.
Los detalles están en docs/security.md. Para informar una vulnerabilidad, sigue SECURITY.md.
Preguntas frecuentes
¿Qué es un servidor MCP para Revit?
El Protocolo de Contexto de Modelo (MCP) es un estándar abierto que permite a los asistentes de IA llamar herramientas en otro software. Un servidor MCP para Revit publica operaciones de Revit como herramientas. El asistente elige las herramientas y el complemento las ejecuta dentro de Revit.
¿Qué asistentes de IA funcionan con él?
Cualquier cliente MCP que pueda iniciar un servidor stdio local. La configuración está documentada para Claude Desktop, VS Code con GitHub Copilot, Cursor y Codex, y para clientes que leen una configuración estándar mcpServers. Windsurf, Cline, Roo Code, Continue, Zed, Claude Code y Gemini CLI deberían funcionar de la misma manera, pero no se han probado. Consulta compatibilidad. El chat del panel también puede usar una clave de API de Anthropic, o las herramientas de línea de comandos claude o codex si están instaladas. Consulta ADR 0012.
¿Puede la IA cambiar mi modelo sin preguntar?
No en el modo predeterminado. Las herramientas que cambian el modelo están bloqueadas hasta que una persona apruebe un plan, en el panel de Revit o con el comando aec-model-bridge-approve. Las herramientas de solo lectura se ejecutan sin aprobación. En el modo look_only, nada que cambie el modelo se ejecuta en absoluto. Si configuras MCP_REVIT_APPROVAL_MODE=auto, se omite la aprobación.
¿Envía mi modelo a la nube?
El servidor y el complemento se ejecutan en tu máquina, y el puente escucha en localhost. El asistente de IA ve lo que devuelven las herramientas, y esos resultados van al proveedor de modelos detrás de tu cliente. Los proveedores en la nube, como Speckle, solo se ejecutan cuando los configuras y llamas a sus herramientas.
¿Funciona con archivos IFC sin Revit?
Sí. El proveedor IFC lee archivos con IfcOpenShell. Puede devolver metadatos de archivo, la estructura espacial, propiedades de elementos y cuadros delimitadores, ejecutar consultas por clase, GUID, nombre o propiedad, y validar el esquema. No edita archivos IFC.
¿Puedo usarlo sin Revit instalado?
Solo en modo simulado, que está destinado a desarrollo y pruebas. El trabajo de modelo en vivo necesita Revit 2024 a 2027 y el complemento.
Versiones y lanzamientos
AEC Model Bridge sigue Versionado Semántico. Las versiones están etiquetadas como vX.Y.Z en GitHub, y un archivo raíz VERSION contiene el número de versión. Consulta docs/versioning.md para el proceso de lanzamiento y CHANGELOG.md para lo que cambió en cada versión.
Desarrollo
# Python tests
python -m pytest packages/mcp-server-revit/tests
# Build one Revit version, for example 2026
.\scripts\build-addin.ps1 -RevitVersion 2026 -Configuration Release
# Build all supported versions
.\scripts\package.ps1 -RevitVersion All
CI compila el servidor Python y los destinos del complemento para Revit 2024 a 2027. Consulta CONTRIBUTING.md antes de abrir una solicitud de extracción.
Documentación
- Guía de instalación
- Referencia de herramientas
- Arquitectura
- Referencia de configuración
- Seguridad
- Clientes MCP y registro
- Versionado y lanzamientos
- Lista de verificación de lanzamiento
- Primera verificación después de la instalación
- Runbook de demostración
- Paquetes de prueba y planes de reversión
- Privacidad
- Hoja de ruta
- Toda la documentación
- Contribución y Código de conducta
- Colaboradores
Construido con
AEC Model Bridge se basa en trabajo de código abierto. Es independiente y no está afiliado ni respaldado por ningún proyecto mencionado aquí.
- Model Context Protocol SDK de Python (MIT) para el servidor MCP
- IfcOpenShell (LGPL-3.0-o-posterior) para archivos IFC
- specklepy (Apache-2.0) para Speckle
- pydantic, httpx, NetworkX, openpyxl y PyYAML (MIT o BSD)
- Anthropic Python SDK (MIT) para el chat de agente integrado
- Serilog, IronPython y Microsoft WebView2 en el complemento de Revit
- Autodesk Revit y Navisworks y McNeel Rhino son productos separados que licencias tú mismo. Este proyecto no incluye su código.
Los textos de licencia y la lista completa de paquetes están en THIRD_PARTY_NOTICES.md. Las licencias se leyeron de los metadatos de los paquetes; las filas que no se pudieron verificar están marcadas como tales.
Proyecto y licencia
Mantenido por A. Sam Mohammad. LinkedIn | Issues
GPL-3.0-o-posterior con la Excepción de Enlace de Revit, o una licencia comercial.