26 Mar Archicad + JupyterLab. Un python para controlarlos a todos.
Si teníamos pocas maneras de comunicarnos con Archicad… ahora tenemos otra.
API
Si te gusta la «droga dura» ahí esta la api C++ Programación de la dura, hace unos años recuerdo que llegue a hacer alguna cosita… aún me acuerdo de los ficheros cabecera y me dan escalofrios. Por contrapartida tenemos toda la potencia de la API a nuestra disposición. Una API bien documentada muy robusta y que da unos addins con un rendimiento perfecto y permite compilar en mac o windows de manera relativamente sencilla.
https://archicadapi.graphisoft.com/
GDL
La programación de los objetos. Con un poco de idea de GDL (si tiene orden GOTO no es una leyenda urbana, tambien GOSUB) se pueden hacer unos objetos muy muy entretenidos. En su día estuve un tiempo haciendo objetos en GDL (medusa, dragon… ) y tiene bastante potencia.
Rhino – Grasshopper
La liven connection te da la posibilidad de unir Rhino-Grasshopper-Archicad. Las posibilidades son cuasi infinitas. En la version actual 2.3 (o 2.4 no me acuerdo la verdad) tiene bastante estabilidad y te permite realizar bastante cositas. La deconstrucción de elementos y poder realizar geomtrias desde rhino y llevartelas a Archicad es muy util. Por otro lado tenemos la posibilidad de usar nodos de GHPython y trastear programaticamente… los modulos de grasshopper son infinitos.
https://graphisoft.com/downloads/addons/interoperability/rhino
Json Interface (acá python)
Lo nuevo es una interfaz que permite comunicarnos a una capa de la api a través de json (formato de texto para intercambio de datos que pueden leer maquinas y humanos). Para utilizar esta capa archicad «abre» un puerto de comunicacion al cual podemos mandarle mensajito en json, archicad los entiende y te permite acceder a ciertas cosas de la api. Para facilitar esta manera de comunicarnos a creado un wrapper en python que permite enviarle las «instrucciones» via python.
https://archicadapi.graphisoft.com/JSONInterfaceDocumentation/#Introduction
Ahora mismo podemos acceder a una paleta de «python», aún experimental, que nos permite acceder al wrapper, aunque a mi me gusta otra opción..
JupyterLab
JupyterLab y/ Jupyter Notebook son dos enternos que permiten utilizar ipython de una manera muy amigable. Son sin duda la manera mas sencilla para aprender python, los notebook (libretillas en mi jerga) te permiten ir picando trozos de código y comprobar pedacito a pedacito si funcionan o no (en mi caso me dedico principalmente a robar código de otros ;) …)
Pues ahora lo bueno es que podemos utilizar jupyter para comunicarnos con Archicad… lo malo es que todavía nos podemos comunicar para «poco». Se puede «extraer» mucha información de los elmentos (si, pandas y sus dataframes acaban de despertarse)… la mala noticia es que a la hora de crear… poco, muy poco. No tengo claro si se debe a una estrategia para segmentar: rhino para crear elementos, python para extraer información, api para cosas «serias»…o que aún es un producto en testeo. Supongo los clientes al final marcaran la decision de hacia donde centren sus esfuerzos.
Para proximas entregas empezaremos a hacer ejemplitos… (espero que para la proxima no tarde tanto en volver a escribir)
Un saludo.