Caso real de Zero-Touch (nodo de rejilla)
Last updated
Last updated
Con un proyecto de Visual Studio en ejecución, veremos cómo generar un nodo personalizado que cree una rejilla rectangular de celdas. Aunque podríamos crear esto con varios nodos estándar, se trata de una herramienta útil que se puede incluir fácilmente en un nodo Zero-Touch. A diferencia de las líneas de rejilla, las celdas se pueden consultar para determinar su vértices de esquina o convertir en caras, o se puede ajustar su escala en relación con sus centros.
En este ejemplo, se abordarán algunas de las funciones y los conceptos que deben tenerse en cuenta al crear un nodo Zero-Touch. Después de generar el nodo personalizado y añadirlo a Dynamo, asegúrese de consultar la página Conceptos avanzados de Zero-Touch para obtener una visión más detallada de los valores de entrada por defecto, la devolución de varios valores, la documentación, los objetos, el uso de tipos de geometría de Dynamo y las migraciones.
Para comenzar a generar el nodo de rejilla, cree un nuevo proyecto de biblioteca de clases de Visual Studio. Consulte la página Introducción para obtener un recorrido detallado sobre cómo configurar un proyecto.
Seleccione
Class Library
como tipo de proyecto.Asigne el nombre
CustomNodes
al proyecto.
Dado que vamos a crear geometría, debemos hacer referencia al paquete NuGet adecuado. Instale el paquete ZeroTouchLibrary desde el administrador de paquetes NuGet. Este paquete es necesario para la instrucción using Autodesk.DesignScript.Geometry;
.
Busque el paquete ZeroTouchLibrary.
Utilizaremos este nodo en la compilación actual de Dynamo Studio, la 1.3. Seleccione la versión del paquete que coincida con esta.
Observe que también hemos cambiado el nombre del archivo de clase a
Grids.cs
.
A continuación, debemos establecer un espacio de nombres y una clase en los que resida el método RectangularGrid. Al nodo se le asignará un nombre en Dynamo en función de su método y clase. Aún no tenemos que copiarlo en Visual Studio.
Autodesk.DesignScript.Geometry;
hace referencia al archivo ProtoGeometry.dll del paquete ZeroTouchLibrarySystem.Collections.Generic
, que es necesario para crear listas.
Ahora podemos añadir el método para dibujar los rectángulos. El archivo de clase debería presentar el siguiente aspecto y se puede copiar en Visual Studio.
Si el proyecto presenta un aspecto similar al siguiente, continúe e intente compilar el archivo .dll
.
Seleccione Compilar > Compilar solución.
En la carpeta bin
del proyecto, busque un archivo .dll
. Si la compilación se ha realizado correctamente, podemos añadir el archivo .dll
a Dynamo.
El nodo personalizado RectangularGrids de la biblioteca de Dynamo
El nodo personalizado en el lienzo
El botón Añadir para añadir el archivo
.dll
a Dynamo
En el ejemplo anterior, hemos creado un nodo bastante sencillo que solo define el método RectangularGrids
. Sin embargo, es posible que deseemos crear información de herramientas para los puertos de entrada o proporcionar al nodo un resumen como los nodos estándar de Dynamo. La adición de estas funciones a nodos personalizados facilita su uso, sobre todo, si un usuario desea buscarlas en la biblioteca.
Un valor de entrada por defecto
Información de herramientas para la entrada de xCount
El nodo RectangularGrid necesita algunas de estas funciones básicas. En el código siguiente, se han añadido descripciones de puerto de entrada y salida, un resumen y valores de entrada por defecto.
Determine los valores por defecto de las entradas mediante la asignación de valores a los parámetros del método: RectangularGrid(int xCount = 10, int yCount = 10)
.
Cree información de herramientas de entrada y salida, palabras clave de búsqueda y un resumen con documentación XML precedida por ///
.
Para añadir información de herramientas, se necesita un archivo xml en el directorio del proyecto. Visual Studio puede generar automáticamente un archivo .xml
se activa la opción.
Active aquí el archivo de documentación XML y especifique una ruta de archivo. Esta acción generará un archivo XML.
Ya está. Hemos creado un nuevo nodo con varias funciones estándar. El siguiente capítulo Conceptos básicos de Zero-Touch profundiza en el desarrollo de nodos Zero-Touch y en los aspectos que se deben tener en cuenta.