Gerald Pachari Millio
• Ingeniería Civil Universidad Nacional de San
Agustín
• Instructor Autodesk con certificación ACP
(Autodesk Certified Professional)
• Desarrollador de aplicaciones y pluggins para
automatización y mejora de flujos de trabajo BIM
usando Revit API y Dynamo
1. DYNAMO REVIT GENERALIDADES
Dynamo Revit y Sandbox
Programación visual
Dynamo SandBox (Open Source)
Dynamo Revit (Addin de Revit, usa Revit API)
Versión utilizada en el curso Dynamo Core 1.3.4
1. DYNAMO REVIT GENERALIDADES
Python Script
Dynamo ofrece posibilidad de escribir código (Design Script,
Python)
Existen dos nodos para escribir Python Script
Podemos crear un paquete de nodos personalizados
Adicionalmente se puede elaborar Nodos personalizados usando
el lenguaje de programación C#
1. DYNAMO REVIT GENERALIDADES
Partes de Nodo Python Script
2. Conceptos Básicos del Lenguaje Python
Definición Python
Lenguaje de programación de alto nivel
Lenguaje de fácil aprendizaje
Lenguaje usado ampliamente en muchas áreas y con muchas
aplicaciones
Tiene un tipado fuerte, dinamico
Lenguaje orientado a objetos
Lenguaje multiplataforma (PC, web, Android, Linux, IOS, etc)
2. Conceptos Básicos del Lenguaje Python
IronPython y Python
Revit y Dynamo esta escrito en C# (.NET)
Implementación Python para plataformas .NET
2. Conceptos Básicos del Lenguaje Python
Syntaxis básica
Se escribe las instrucciones en líneas o punto y coma(;)
Los comentarios de código van entre # o “””
La lectura de código es en orden de arriba hacia abajo
Hay palabras reservadas de código
Muchas veces se va usar la identacion o tabulación para ciertas
funciones predefinidas del lenguaje (es útil ´para leer el código)
2. Conceptos Básicos del Lenguaje Python
Variables en Python
Espacio en memoria para almacenar datos modificables
Puede cambiar su valor durante la ejecución
Definicion en Python es dinámica
Nombrar a las variables
Existen muchos tipos de variables
2. Conceptos Básicos del Lenguaje Python
Tipos de variables
Cadenas de texto
Números Enteros
Números Reales
Booleanos
Tuplas
Listas
Diccionarios
2. Conceptos Básicos del Lenguaje Python
Operadores en Python
Los operadores en Python son aquellos que tienen palabras
reservadas y que son usados para realizar operaciones de
distinta naturaleza con las varibles dentro de Python
2. Conceptos Básicos del Lenguaje Python
Operadores en Python
Los operadores en Python son aquellos que tienen palabras
reservadas y que son usados para realizar operaciones de
distinta naturaleza con las varibles dentro de Python
Fuente: Curso Python pildorasinformaticas
https://www.youtube.com/watch?v=G2FCfQj-9ig&list=PLU8oAlHdN5BlvPxziopYZRd55pdqFwkeS
2. Conceptos Básicos del Lenguaje Python
Ejemplo Operadores
2. Conceptos Básicos del Lenguaje Python
Ejemplo Declaración Variables
2. Conceptos Básicos del Lenguaje Python
Las Listas
Estructura de datos para almacenar varios valores
Se pueden expandir dinámicamente
Una lista puede tener diferentes tipos de variables
Numerados con un Índice, se accede individualmente
Lista1 = [elem1,elem2, elem3,… elemN]
2. Conceptos Básicos del Lenguaje Python
Operaciones con Listas
Longitud de una lista len(list1)
Insertar un valor list1.insert(índice,value)
Agregar valor al final list1.append(value)
Fusionar dos listas list1.extend(list2) o usar operador +
Obtener el índice list1.index(value)
Buscar dentro de una lista value in list1
Eliminar elementos list1.remove(value)
2. Conceptos Básicos del Lenguaje Python
Condicionales “IF”
Condición a evaluar, de acuerdo a la evaluación da una
sentencia
La condición toma un valor booleano es decir solo verdadero o
falso
Sintaxis del condicional IF
2. Conceptos Básicos del Lenguaje Python
Condicionales “IF”, “else”
Else significa que “y si no es verdad”
2. Conceptos Básicos del Lenguaje Python
Bucles “FOR”
Repetir Codigo
Existen bucles determinados e indeterminados
Los bucles determinados son una numero especifico de veces
Los bucles indeterminados dependen de la circunstancia
Sintaxis bucle FOR
2. Conceptos Básicos del Lenguaje Python
Funciones
Conocidos como Métodos en otros lenguajes
Conjunto de instrucciones reusables o pequeñas tareas
Pueden requerir argumentos y retornar valores
2. Conceptos Básicos del Lenguaje Python
Ejemplo Funciones
Evaluar si una nota es aprobado o desaprobado
2. Conceptos Básicos del Lenguaje Python
Ejemplo Funciones
Evaluar si una nota es aprobado o desaprobado
2. Conceptos Básicos del Lenguaje Python
POO (Programación Orientada a Objetos)
2. Conceptos Básicos del Lenguaje Python
Herencia de Clases
2. Conceptos Básicos del Lenguaje Python
Referencias (Common Language Runtime)
Para usar referencias de .NET se tiene que usar el modulo CLR
Usaremos el método AddReference()
Por defecto el nodo Python Script trae importado una librería de
Dynamo “ProtoGeometry”
2. Conceptos Básicos del Lenguaje Python
Principales Librerías
ProtoGeometry
RevitAPI
RevitAPIUI
RevitServices
RevitNodes
DSCoreNodes
2. Conceptos Básicos del Lenguaje Python
Nodos Personalizados a Partir de un Python Script
Una vez testeado el código es conveniente crear un nodo
Personalizado
Los nodos serán almacenados en un paquete que podremos
publicar posteriormente
Procedimiento para crear un nodo personalizado