Mi primer script de Dynamo fue un desastre. 47 nodos conectados como espagueti, tres listas anidadas que no entendía, y un error que no podía encontrar. Cerré Dynamo y no lo abrí en dos semanas.
Después, un colega me dijo algo que me cambió la perspectiva: "No intentes automatizar todo. Automatiza una cosa que haces todos los días."
Esa cosa fue renombrar vistas. 8 nodos. 15 minutos. 150 vistas corregidas en 2 segundos. Desde ese día, Dynamo dejó de ser el enemigo y se convirtió en mi asistente más eficiente.
Si estás empezando y te sientes perdido, este es el camino que yo hubiera querido tener desde el día uno.
¿Por qué aprender Dynamo si ya usas Revit?
Cuando trabajé en un proyecto hospitalario con 4,000 puertas, el cliente me pidió enumerarlas. Hacerlo manualmente en Revit hubiera tomado días, pero con Dynamo, el script se ejecuta en solo 4 segundos.
Dynamo es un entorno de programación visual dentro de Revit. No necesitas ser un experto en programación; simplemente conectas "nodos" y formas secuencias lógicas que procesan datos en tu modelo BIM.
Desmitificando Dynamo: Tu Primer Script
Muchos ingenieros evitan Dynamo por su apariencia complicada, pero su lógica es sencilla. La mayoría de los scripts siguen tres fases:
- Selección (Inputs): Definir qué elementos tomar del modelo.
- Procesamiento: Manipular la información usando filtros y condicionales.
- Acción (Outputs): Devolver resultados creando datos en Revit.
El Reto: Renumerar todas las vigas de un modelo
Vamos a crear tu primer script. Al modelar, las vigas a menudo quedan con marcas vacías o desordenadas. Nuestro objetivo será renumerarlas como "VIGA-01", "VIGA-02", etc., en el campo "Mark".
Fase 1: Selección
Abre Revit, ve a Manage y selecciona Dynamo. Crea un nuevo archivo.
Seleccionamos todas las vigas. Busca e inserta estos nodos:
Categories (Selecciona Structural Framing)
All Elements of Category
Conecta el output de Categories al input de All Elements of Category. ¡Listo! Dynamo ya tiene todas las vigas.
Fase 2: Procesamiento
Ahora crearemos la lista de textos "VIGA-01", "VIGA-02", etc. Primero, inserta:
List.Count (Conecta las vigas a este nodo para obtener el número total).
Luego, inserta:
Sequence
- Input start: 1
- Input amount:
List.Count
- Input step: 1
Esto genera una lista: 1, 2, 3... hasta
⚠️ Ojo en obra: En Perú, los planos de las oficinas de ingeniería muchas veces difieren de lo que el inspector de obra ejecuta. Deja todo por escrito y con fecha.
el total de vigas.
Para unir "VIGA-" con los números, inserta un Code Block y escribe:
"VIGA-" + String.PadLeft(numero, 2, "0");
Fase 3: Escribir en Revit
Con los elementos y valores listos, escribimos en el modelo. Inserta:
Element.SetParameterByName
Conecta:
- element: Desde
All Elements of Category.
- parameterName: Un nodo de texto con "Mark".
- value: Tu lista de textos generada.
[!WARNING]
Asegúrate de que Dynamo esté en modo "Manual" antes de ejecutar.
Presiona Ejecutar y verás cómo todas tus vigas están enumeradas correctamente.
Por qué Dynamo Cambiará tu Carrera Profesional
Lo que acabas de lograr te ahorra tiempo valioso. Las empresas buscan profesionales que resuelvan problemas a gran escala.
Ejemplos de procesos que automatizo:
- Auditoría de Modelos: Identificar muros sin parámetros llenos.
- Extracción de Coordenadas: Obtener coordenadas para exportar a Excel.
- Creación de Vistas por Habitaciones: Generar automáticamente vistas 3D para múltiples habitaciones.
El Siguiente Nivel: Paquetes y Python
Dynamo tiene un potencial increíble, pero puedes ampliarlo con "Packages" gratuitos. Mis recomendaciones son:
- Clockwork: Para gestión de listas.
- Data-Shapes: Para interfaces de usuario.
- GeniusLoci: Para manipulación de datos complejos.
Con el tiempo, quizás necesites un Python Script para tareas más complejas.
Conclusión
Aprender Dynamo es accesible. Es lógica visual, algo que todos los ingenieros manejamos. Una vez que experimentes automatizar tareas, te será difícil volver a hacerlas manualmente. Descarga Dynamo, abre un modelo de prueba y comienza hoy.
📚 Fuentes y Referencias
El proceso que me ahorró 4 horas semanales
Antes de Dynamo, cada viernes dedicaba 4 horas a revisar que los 150+ planos tuvieran el nombre correcto según ISO 19650. Con Dynamo: abrir script → correr → verificar en 30 segundos.
Tu primer script: Renombrar vistas masivamente
Paso 1: Abrir Dynamo (Manage > Visual Programming > Dynamo)
Paso 2: Obtener todas las vistas
Categories → "Views" → All Elements of Category → Watch
Paso 3: Filtrar vistas de planta
Element.GetParameterValueByName "View Type" → List.Filter "Floor Plan"
Element.Name → String.Replace ("Level" → "PLANTA-N0") → String.PadLeft → Element.SetName
Resultado: 150 vistas renombradas en 2 segundos.
3 scripts esenciales
Categories → Structural Elements → GetParameterValue "Volume" → GroupByKey (nivel) → Sum → Export to Excel
Script 2: Verificar parámetros BIM
Revisa que cada elemento tenga: "Mark", "Comments", "Structural Usage", "Fire Rating"
Script 3: Crear planos automáticamente
Toma vistas de planta → crea sheet con titleblock → coloca vista centrada
Consejos
- Empieza con 5 nodos: Si puedes resolverlo con 5 nodos, perfecto.
- Usa Preview: Verifica datos antes de transformar.
- Guarda versiones: v1, v2, v3 para poder volver atrás.
- No tengas miedo de romper cosas: Dynamo no destruye tu modelo.
Preguntas frecuentes
📚 Artículos relacionados que te pueden interesar:
¿Dynamo es gratis?
Sí, viene incluido con Revit desde la versión 2021.
¿Puedo ejecutar sin abrir Dynamo?
Sí. Con Dynamo Player (Manage > Dynamo Player) ejecutas scripts guardados directamente.
Nodos esenciales que debes conocer
| Nodo | Función | Categoría |
|---|
| Categories | Seleccionar categoría | Revit |
| All Elements of Category | Obtener elementos | Revit |
| Element.GetParameterValueByName | Leer parámetro | Revit |
| Element.SetParameterByName | Escribir parámetro | Revit |
| List.Filter | Separar por condición | List |
| List.GroupByKey | Agrupar | List |
| List.Sum | Sumar valores | List |
| String.Replace | Reemplazar texto | String |
| Watch | Ver resultado | Core |
| Code Block | Código directo | Core |
Ejemplo práctico: Contar elementos por nivel
- Categories → Structural Columns
- All Elements of Category
- Element.GetParameterValueByName → "Level"
- List.GroupByKey
- List.Count
- Watch
Resultado: "Nivel 1: 20 | Nivel 2: 20 | Nivel 3: 18"
Atajos de teclado útiles en Dynamo
| Atajo | Función |
|---|
| Ctrl + Z | Deshacer |
| Ctrl + C/V | Copiar/pegar nodos |
| Space | Rotar nodo |
| Tab | Ciclar opciones de conexión |
| F1 | Ayuda del nodo seleccionado |