Dynamo
Primer for v2.0
Español
Español
  • Acerca de
  • Introducción
    • ¿Qué es Dynamo y cómo funciona?
    • Manual de introducción, comunidad y plataforma de Dynamo
  • Configuración de Dynamo
  • Interfaz de usuario
    • Espacio de trabajo
    • Biblioteca
  • Nodos y cables
  • Nodos y conceptos básicos
    • Índice de nodos
    • Geometría para el diseño computacional
      • Descripción general de la geometría
      • Vector, plano y sistema de coordenadas
      • Puntos
      • Curvas
      • Superficies
      • Sólidos
      • Mallas
    • Los bloques de construcción de los programas
      • Datos
      • Matemáticas
      • Lógica
      • Cadenas
      • Color
    • Diseño con listas
      • ¿Qué es una lista?
      • Trabajo con listas
      • Listas de listas
      • Listas de n dimensiones
    • Diccionarios en Dynamo
      • ¿Qué es un diccionario?
      • Nodos de diccionario
      • Diccionarios en bloques de código
      • Casos de uso de Revit
  • Nodos y paquetes personalizados
    • Nodos personalizados
      • Introducción a los nodos personalizados
      • Creación de un nodo personalizado
      • Publicación en la biblioteca
    • Paquetes
      • Introducción a los paquetes
      • Caso real de paquete: Kit de herramientas de malla
      • Desarrollo de un paquete
      • Publicación de un paquete
      • Importación de Zero-Touch
  • Dynamo para Revit
    • La conexión de Revit
    • Selección
    • Edición
    • Creación
    • Personalización
    • Documentación
  • Dynamo for Civil 3D
    • La conexión con Civil 3D
    • Introducción
    • Biblioteca de nodos
    • Flujos de trabajo de ejemplo
      • Carreteras
        • Colocación de farolas
      • Land
        • Colocación de servicios
      • Servicios
        • Renombrar estructuras
      • Raíl
        • Envolvente libre
      • Topografía
        • Administración de grupos de puntos
    • Temas avanzados
      • Enlace de objetos
      • Python y Civil 3D
    • Dynamo Player
    • Paquetes útiles
    • Recursos
  • Dynamo en Forma (beta)
    • Configurar Dynamo Player en Forma
    • Añadir y compartir gráficos en Dynamo Player
    • Ejecutar gráficos en Dynamo Player
    • Diferencias en el servicio de cálculo de Dynamo con la versión de escritorio de Dynamo
  • Codificación en Dynamo
    • Bloques de código y DesignScript
      • ¿Qué es un bloque de código?
      • Sintaxis de DesignScript
      • Abreviatura
      • Funciones
    • Geometría con DesignScript
      • Conceptos básicos de geometría con DesignScript
      • Primitivas geométricas
      • Matemáticas vectoriales
      • Curvas: puntos interpolados y de control
      • Traslación, rotación y otras transformaciones
      • Superficies: interpoladas, puntos de control, solevación y revolución
      • Parametrización geométrica
      • Intersección y recorte
      • Operaciones booleanas geométricas
      • Generadores de puntos de Python
    • Python
      • Nodos de Python
      • Python y Revit
      • Configurar su propia plantilla de Python
    • Cambios en el lenguaje
  • Prácticas recomendadas
    • Estrategias gráficas
    • Estrategias de creación de secuencias de comandos
    • Referencia de secuencias de comandos
    • Administración del programa
    • Trabajar de forma eficaz con grandes conjuntos de datos en Dynamo
  • Flujos de trabajo de ejemplo
    • Flujos de trabajo para empezar
      • Jarrón paramétrico
      • Puntos de atractor
    • Índice de conceptos
  • Guía de introducción para desarrolladores
    • Compilar Dynamo a partir del código fuente
      • Compilar DynamoRevit a partir del código fuente
      • Administración y actualización de dependencias en Dynamo
    • Desarrollo para Dynamo
      • Introducción
      • Caso real de Zero-Touch (nodo de rejilla)
      • Ejecución de secuencias de comandos de Python en nodos Zero-Touch (C#)
      • Conceptos avanzados de Zero-Touch
      • Personalización avanzada de nodos de Dynamo
      • Uso de tipos COM (interoperabilidad) en paquetes de Dynamo
      • Caso real de NodeModel (interfaz de usuario personalizada)
      • Actualización de paquetes y bibliotecas de Dynamo para Dynamo 2.x
      • Actualización de paquetes y bibliotecas de Dynamo para Dynamo 3.x
      • Extensiones
      • Definición de la organización de paquetes personalizados para Dynamo 2.0+
      • Interfaz de línea de comandos de Dynamo
      • Integración de Dynamo
      • Desarrollo para Dynamo for Revit
      • Publicar un paquete
      • Compilar un paquete desde Visual Studio
      • Extensiones como paquetes
    • Solicitudes de incorporación de cambios
    • Expectativas de las pruebas
    • Ejemplos
  • Apéndice
    • Preguntas frecuentes
    • Programación visual y Dynamo
    • Recursos
    • Notas de la versión
    • Paquetes útiles
    • Archivos de ejemplo
    • Mapa de integración de anfitriones
    • Descargar PDF
    • Métodos abreviados de teclado de Dynamo
Powered by GitBook
On this page
  • ¿Qué opciones tengo?
  • Para Dynamo
  • En Dynamo
  • ¿Cuáles son las ventajas o las desventajas de cada método?
  • Descripción de las versiones de Dynamo y los cambios en las API (1.x → 2.x)
  • Permiso para distribuir archivos binarios en un paquete
  • Consideraciones sobre el rendimiento de la interfaz de usuario de Dynamo
Edit on GitHub
Export as PDF
  1. Guía de introducción para desarrolladores

Desarrollo para Dynamo

PreviousAdministración y actualización de dependencias en DynamoNextIntroducción

Last updated 2 months ago

Independientemente del nivel de experiencia, la plataforma Dynamo se ha diseñado para que todos los usuarios puedan colaborar. Existen varias opciones de desarrollo dirigidas a diferentes capacidades y niveles de habilidad, cada una con sus puntos fuertes y débiles en función del objetivo. A continuación, describiremos las distintas opciones y cómo elegir una sobre otra.

Tres entornos de desarrollo: Visual Studio, el editor de Python y DesignScript para bloques de código

¿Qué opciones tengo?

Las opciones de desarrollo de Dynamo se dividen principalmente en dos categorías: para Dynamo frente a en Dynamo. Las dos categorías se pueden definir de la siguiente forma: "en" Dynamo implica contenido que se crea mediante el IDE de Dynamo para su uso en Dynamo y "para" Dynamo implica el uso de herramientas externas a fin de crear contenido que se importará en Dynamo para su uso. Aunque esta guía se centra en el desarrollo para Dynamo, a continuación, se describen los recursos para todos los procesos.

Para Dynamo

Estos nodos permiten el mayor grado de personalización. Muchos paquetes se compilan con este método y es necesario para colaborar en el código fuente de Dynamo. El proceso de compilación de estos elementos se abordará en esta guía.

  • Nodos sin contacto

  • Nodos derivados de NodeModel

  • Extensiones

En el caso siguiente, se utiliza Visual Studio como entorno de desarrollo para los nodos Zero-Touch y NodeModel.

La interfaz de Visual Studio con un proyecto que vamos a desarrollar

En Dynamo

  • Los bloques de código muestran DesignScript en el entorno de programación visual, lo que permite flujos de trabajo flexibles de nodos y secuencias de comandos de texto. Cualquier elemento del espacio de trabajo puede llamar a una función de un bloque de código.

  • Los nodos personalizados son contenedores para recopilaciones de nodos o incluso gráficos completos. Son una manera eficaz de recopilar rutinas de uso frecuente y compartirlas con la comunidad.

  • Los nodos de Python son una interfaz de creación de secuencias de comandos en el espacio de trabajo de programación visual, similares a los bloques de código. Las bibliotecas de Autodesk.DesignScript utilizan una notación de punto similar a DesignScript.

El desarrollo en el espacio de trabajo de Dynamo permite obtener de forma eficaz una respuesta inmediata.

Desarrollo en el espacio de trabajo de Dynamo con el nodo de Python

¿Cuáles son las ventajas o las desventajas de cada método?

Las opciones de desarrollo para Dynamo se han diseñado para abordar la complejidad de una necesidad de personalización. Tanto si el objetivo es escribir una secuencia de comandos recursiva en Python como compilar una interfaz de usuario de nodos totalmente personalizada, existen opciones para implementar código que solo implican lo necesario para ponerse en marcha.

Bloques de código, el nodo de Python y los nodos personalizados de Dynamo

Estas son opciones sencillas para escribir código en el entorno de programación visual de Dynamo. El espacio de trabajo de programación visual de Dynamo proporciona acceso a Python y DesignScript, y la capacidad de incluir varios nodos en un nodo personalizado.

Con estos métodos, se puede realizar lo siguiente:

  • Empiece a escribir en Python o DesignScript con poca o ninguna configuración.

  • Importe bibliotecas de Python en Dynamo.

  • Comparta bloques de código, nodos de Python y nodos personalizados con la comunidad de Dynamo como parte de un paquete.

Nodos Zero-Touch

Zero-Touch hace referencia a un sencillo método de señalar y hacer clic que permite importar bibliotecas de C#. Dynamo leerá los métodos públicos de un archivo .dll y los convertirá en nodos de Dynamo. Puede utilizar Zero-Touch para desarrollar sus propios paquetes y nodos personalizados.

Con este método, se puede realizar lo siguiente:

  • Escriba métodos de C# y utilícelos fácilmente como nodos en Dynamo.

  • Comparta una biblioteca de C# como nodos con la comunidad de Dynamo en un paquete.

Nodos derivados de NodeModel

Estos nodos son un paso más en la estructura de Dynamo. Se basan en la clase NodeModel y se escriben en C#. Aunque este método proporciona la máxima flexibilidad y eficacia, la mayoría de los aspectos del nodo deben definirse explícitamente y las funciones deben residir en un montaje independiente.

Con este método, se puede realizar lo siguiente:

  • Cree una interfaz de usuario de nodo personalizable con controles deslizantes, imágenes, color, etc. (por ejemplo, un nodo ColorRange).

  • Acceda a lo que ocurre en el lienzo de Dynamo e influya en ello.

  • Personalice el encaje.

  • Cargue contenido en Dynamo como un paquete.

Descripción de las versiones de Dynamo y los cambios en las API (1.x → 2.x)

Dado que Dynamo se actualiza periódicamente, es posible que se realicen cambios en parte de la API que utiliza un paquete. Es importante realizar un seguimiento de estos cambios para garantizar que los paquetes existentes sigan funcionando correctamente.

Permiso para distribuir archivos binarios en un paquete

Tenga cuidado con los archivos .dll incluidos en un paquete que se cargue en Package Manager. Si el autor del paquete no ha creado el archivo .dll, debe tener los derechos necesarios para compartirlo.

Si un paquete incluye archivos binarios, al descargarlo, se debe indicar esto a los usuarios.

Consideraciones sobre el rendimiento de la interfaz de usuario de Dynamo

En el momento de escribir este artículo, Dynamo utiliza principalmente WPF (Windows Presentation Base) para renderizar su interfaz de usuario. WPF es un sistema complejo y eficaz basado en xaml/binding. Como Dynamo tiene una interfaz de usuario compleja, es fácil provocar bloqueos, fugas de memoria o agrupar la ejecución del gráfico y las actualizaciones de la interfaz de usuario de forma que se reduzca el rendimiento.

Dynamo Primer incluye una guía sobre la .

Aunque estos procesos existen en el espacio de trabajo de programación visual y son relativamente sencillos, son opciones viables para personalizar Dynamo. En Dynamo Primer, se describen estos temas de forma exhaustiva y se proporcionan consejos sobre la creación de secuencias de comandos y procedimientos recomendados en el capítulo .

Descargue un ejemplo de bloque de código (haga clic con el botón derecho y seleccione Guardar como) o vea un recorrido detallado en .

Descargue un ejemplo de nodo personalizado (haga clic con el botón derecho y seleccione Guardar como) o vea un recorrido detallado en .

Descargue un ejemplo de nodo de Python (haga clic con el botón derecho y seleccione Guardar como) o vea un recorrido detallado en .

Importe una biblioteca que no se haya desarrollado necesariamente para Dynamo y cree automáticamente un conjunto de nodos nuevos, como el en Dynamo Primer.

Se realiza un seguimiento de los cambios en las API en la página . Aquí se abordan los cambios realizados en DynamoCore, las bibliotecas y los espacios de trabajo.

Un ejemplo de un cambio significativo que se producirá próximamente es la transición del formato de archivo XML al formato de archivo JSON en la versión 2.0. Los nodos derivados de NodeModel necesitarán un ; de lo contrario, no se abrirán en Dynamo 2.0.

La documentación de las API de Dynamo aborda actualmente las funciones principales, .

Consulte la página wiki sobre las que le ayudará a evitar algunos errores comunes al realizar cambios en el código de Dynamo.

importación de bibliotecas Zero-Touch
Estrategias de creación de secuencias de comandos
Dynamo Primer
Dynamo Primer
Dynamo Primer
wiki de Dynamo de GitHub
constructor JSON
http://dynamods.github.io/DynamoAPI
consideraciones de rendimiento de Dynamo
Tres entornos de desarrollo
Interfaz de Visual Studio
Desarrollo en el espacio de trabajo de Dynamo con el nodo de Python
Bloque de código, secuencia de comandos de Python y nodo personalizado
Nodos Zero-Touch
Nodos derivados de NodeModel
Documento de cambios en las API de Dynamo
Documentación de las API
ejemplo de A-Forge