Desarrollo para Dynamo

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

Dynamo Primer incluye una guía sobre la importación de bibliotecas Zero-Touch.

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

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 Estrategias de creación de secuencias de comandos.

  • 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.

    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 Dynamo Primer.

  • 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.

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

  • 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.

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

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:

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

  • 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.

Se realiza un seguimiento de los cambios en las API en la página wiki de Dynamo de GitHub. 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 constructor JSON; de lo contrario, no se abrirán en Dynamo 2.0.

La documentación de las API de Dynamo aborda actualmente las funciones principales, http://dynamods.github.io/DynamoAPI.

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.

Last updated