PYTHON SCRIPT NODE (I)


La programación visual con Dynamo constituye una poderosa herramienta que nos permite extender de forma relativamente fácil las capacidades de ciertos softwares como Autodesk Revit o Autodesk Civil3D en el ámbito de la automatización, geometría computacional, etc.

Si bien Dynamo nos permite a partir de los nodos incluidos por defecto en las distintas bibliotecas resolver innumerables problemas y cubrir un sinfín de necesidades, la posibilidad de programar nuestro propio nodo nos permitirá ampliar nuestros límites hasta prácticamente el infinito. 

El nodo Python Script nos ofrece esta posibilidad de programar nuevas soluciones dentro del propio entorno visual a través del lenguaje Python. 

Con esta primera entrada iniciamos una serie de capítulos cuyo objeto es presentar este nodo de Dynamo así como sus posibilidades dentro del ámbito de la Ingeniería Civil con Autodesk Civil3D.

EL NODO PYTHON SCRIPT

Cuando insertamos un nodo Python Script en Dynamo, éste aparece de la siguiente forma

Si pulsamos dos veces sobre el nodo podremos acceder al código asociado por defecto al mismo el cual se muestra a continuación.


Para la realización de nuestro primer ejemplo borraremos todo este código no sin antes hacer un par de comentarios.

En la línea 25 nos encontramos la sentencia dataEnteringNode = IN que transfiere los datos de entrada almacenados en la variable IN a la variable dataEnteringNode. La variable de entrada IN es una lista que gráficamente se muestra como un conjunto de elementos designados como IN[0] correspondiente al primer elemento de la lista, IN[1] correspondiente al segundo elemento de la lista, IN[2] correspondiente al tercer elemento de la lista y así, sucesivamente. Podemos añadir nuevos elementos a la lista de entrada pulsando sobre el botón '+' o eliminarlos pulsando sobre el botón '-' del elemento gráfico.

Por otro lado, en la línea 43 nos encontramos con la sentencia OUT=0. La variable OUT es la variable de salida, es única y podrá representar cualquiera de los tipos admitidos por Python.

EJEMPLO

Vamos a comenzar con un primer ejemplo muy sencillo que consiste en sumar un conjunto de números.


Gráficamente conectamos el nodo Code Block que contiene los datos - en este caso tres números enteros - con el nodo Python Script haciendo corresponder a cada elemento de la variable de entrada IN un número. De esta forma, la variable IN será una lista de la siguiente forma IN=[3,5,4]

Por otro lado, conectamos la variable de salida OUT a un nodo Watch para poder visualizar el resultado.

El código del nodo Python Script es el siguiente:


Como podemos ver, éste consta de tres partes:
  • Una primera parte donde transferimos el valor de la variable de entrada IN a la variable sumandos. Esto no es estrictamente necesario sino que podemos trabajar directamente con la variable IN si bien es recomendable asociar los datos de entrada a una variable más descriptiva.
  • Una segunda parte que contiene el algoritmo propiamente dicho y cuyo resultado se almacena en este caso en la variable suma.
  • Finalmente una tercera parte en la que se transfiere el contenido de la variable suma a la variable de salida OUT. Este paso es completamente necesario para que el resultado de la operación esté disponible a otros nodos de la red - en nuestro ejemplo, el nodo Watch.

RESUMEN

A modo de resumen podemos decir:
  • El nodo Python Script nos permite dentro del propio entorno visual obtener una cierta salida a partir de unos datos de entrada mediante la programación de algoritmos en lenguaje Python.
  • Los datos de entrada se recogen a través de la variable IN que representa un lista de elementos y la salida con la variable OUT que nos permite conectar nuestro nodo con otros nodos de la red.


Entradas populares