Dynamo para Revit — Introducción Técnica

Fundamentos, flujo profesional y mejores prácticas para ingeniería BIM.

Dynamo Revit BIM Automatización Python Paquetes

Dynamo es un entorno de programación visual integrado en Revit que permite automatizar procesos, validar información y generar contenido paramétrico. Esta guía resume lo esencial para trabajar con enfoque profesional, incluyendo Python y Revit API cuando haga falta.

Contenido

¿Qué es Dynamo para Revit?

Es un sistema de nodos y conexiones (cables) que ejecuta lógica para leer/escribir parámetros, crear/editar elementos, y analizar datos del modelo. Para ingeniería BIM, es clave para automatizar tareas repetitivas y estandarizar información.

Beneficios

  • Automatización reproducible y auditable.
  • Interoperabilidad (Excel/CSV/JSON/IFC).
  • Iteración rápida y validación de reglas.

Limitaciones

  • Dependencia de paquetes y versiones.
  • Rendimiento inferior a C# en flujos masivos.
  • Curva de aprendizaje con listas/levels.

Arquitectura y versiones

Dynamo corre embebido en Revit. Incluye Workspace, librerías de nodos, motor de geometría (Shape Manager) y puente a Revit API. Las versiones de Dynamo se acoplan a la versión de Revit.

Fija una versión de Dynamo para el proyecto y evita mezclar paquetes entre equipos. Mantén un repositorio compartido de paquetes con versiones bloqueadas.

Instalación & compatibilidad

En Revit 2021–2025, Dynamo viene incluido. Verifica versión desde Manage → Dynamo. Para ambientes controlados (obra/producción), define rutas de paquetes centralizadas.

Rutas sugeridas de paquetes
  • Red compartida (solo lectura en producción).
  • Repositorio Git para custom nodes.

Nodos, tipos de datos y librerías

Conoce bien string, number, boolean, list, dictionary y tipos Revit (Element, Category, Parameter). Evita errores de niveles con List.Map y el control de lacing.

Conversión típica

ElementElementId, unidades internas (pies) vs unidades de proyecto.

Bibliotecas clave

Core, Revit, Geometry, List, Math; y paquetes según necesidad.

Flujo de trabajo profesional

  1. Definir objetivo: regla/validación/extracción/generación.
  2. Entradas: categorías, filtros, parámetros, Excel/JSON.
  3. Proceso: transformar, validar, limpiar duplicados.
  4. Salida: escribir parámetros, crear/editar elementos, reportes.
  5. Registro: log de cambios y tiempos por etapa.

Python & Revit API

El nodo Python permite operaciones transaccionales complejas, recorridos MEP, y control preciso de filtros. Úsalo para lotes grandes, manejo de excepciones y rendimiento.

Agrupa escrituras en una sola transacción y captura excepciones con try/finally.

Rendimiento y escalabilidad

  • Evita recálculos con nodos Freeze y booleans de activación.
  • Usa FilteredElementCollector en Python con filtros por categoría/param.
  • Divide grandes lotes (chunking) y registra a archivo en vez de usar Watch pesados.

Buenas prácticas BIM

  • Nombres claros y grupos por etapa; colores de guía.
  • Validación previa antes de modificar el modelo.
  • Subgrafos / custom nodes por responsabilidad única.
  • Encabezado del grafo con objetivo, alcance y versión.

Paquetes y versionado

Recomendados: Clockwork, Data-Shapes, Genius Loci, SteamNodes, Orchid (según compatibilidad de tu Revit).

Seguridad y robustez

  • Valida tipos/rangos de entrada antes de escribir.
  • Transacciones controladas y reversibles.
  • Backups y pruebas en vistas/elementos duplicados cuando sea viable.

Casos de uso

Normalización de parámetros

Estandariza nombres/tipos/valores; reporta cumplimiento.

Auditoría MEP

Conectividad, detección de elementos desconectados, verificación de pendientes.

Generación paramétrica

Creación y acomodación masiva de elementos bajo reglas.

Tabla comparativa

Aspecto Dynamo (Nodos) Dynamo (Python) C# Add-in
VelocidadMediaMedia–AltaAlta
MantenimientoVisualMedioFormal/IDE
Acceso a APIIndirectoDirectoDirecto
DespliegueScriptScriptADDIN/Instalador
Casos idealesRápidosAvanzados puntualesSoluciones robustas

Troubleshooting

  • List levels: alinea profundidades con List.Map y lacing.
  • Unidades: confirma conversiones (pies internos ↔ proyecto).
  • Paquetes: congela versiones; si falla un nodo crítico, reemplázalo por Python.

Recursos

  • Documentación oficial de Dynamo.
  • Foros de Revit API.
  • Repos de ejemplo y guías internas de tu organización.