Tradicionalmente la programación siempre ha estado reservada a personas con amplios conocimientos ténicos, la información existente es escasa, de difícil acceso y comprensión. El uso de aplicaciones, de programas informáticos para cualquier actividad laboral o de ocio, se va extendiendo. Igualmente, los usuarios, a la vez que aumentan en número, aumentan en conocimiento.
Las aplicaciones evolucionan y se popularizan. Últimamente, también están evolucionando los sistemas de programación. La mayoría de las aplicaciones que soportan su programación mediante una API, están incorporando la programación visual. Autodesk y Revit no son ajenas a esta tendencia, y en las últimas versiones de Revit están incorporando esta programación visual. En concreto a través de Dynamo, seguramente la técnica más utilizada por estas aplicaciones con API.
Existe la creencia de que la programación visual es más sencilla, que no hace falta saber programar, y en cierta forma es cierto. No necesitamos saber escribir código, pero si necesitamos conocer la API.
Técnicas de Programación en Revit
-
Programación visual, mediante Dynamo.
Dynamo en el ámbito de Revit es un plugin en sí mismo. Permite al usuario acceder a la API de Revit, mediante un entorno gráfico. Se arrastran una serie de fichas sobre un área de dibujo.
Grosso modo, cada ficha se corresponde con alguna funcionalidad de la API de Revit, que se han de conectar mediante hilos con otras fichas.
Sin entrar en mayores detalles la primera conclusión es clara, el tamaño de las pantallas es limitada, y si bien es posible crear plugins con Dynamo de cierta envergadura, resulta desaconsejable.
Dynamo se puede complementar con el uso de código escrito en diversos lenguajes. Pero claro está, la principal ventaja que tenía, que recordamos que era no necesitar tener conocimientos de programación, se pierde.
Este sistema de fichas funciona bien para pequeñas automatizaciones, a partir de aquí, todo se complica.
-
Programación tradicional con escritura de código y compilado del mismo.
Desde sus inicios Revit a expuesto su API al público, los usuarios han podido realizar sus plugins.
Formas de programar con Código en Revit
-
La utilización de Macros
Como por ejemplo también lo tienen las aplicaciones de Office, .. Tradicionalmente las macros se han utilizado para resolver pequeñas necesidades. Su uso en la actualidad es muy marginal y ha sido relegado por el uso de Dynamo
-
La programación de plugins.
Imprescindible para desarrollos de envergadura, bien por su extensión o bien por su complejidad. También es aconsejable cuando la velocidad de proceso sea un factor determinante. Los plugins en Revit se integran en Revit, Son aplicaciones compiladas, de acceso inmediato. Por el contrario, con Dynamo, el plugin lo constituye el núcleo de Dynamo, y es este el que se encarga de compilar en cada ejecución el script creado. Nos encontramos pues con que Dynamo utiliza una capa más. La velocidad de proceso se resiente
Lenguajes de programación en la API de Revit.
Los plugins de Revit se deben escribir en .NET, por lo tanto, cualquiera de los lenguajes soportados por .NET debe ser admitido por Revit.
Con independencia de lo anterior, básicamente nos encontramos con tres lenguajes. Todos ellos son lenguajes orientados a objetos
-
Visual Basic .NET (NET)
es un lenguaje de programación orientado a objetos que se puede considerar una evolución de Visual Basic implementada sobre el frameworks .NET. Su introducción resultó muy controvertida, ya que, debido a cambios significativos en el lenguaje, VB.NET no es retro compatible con Visual Basic, pero el manejo de las instrucciones es similar a versiones anteriores de Visual Basic, facilitando así el desarrollo de aplicaciones más avanzadas con herramientas modernas. Su uso en la actualidad es limitado y esta relegado a usos “no profesionales”.
-
C#
(pronunciado si sharp en inglés) es un lenguaje de programación multiparadigma desarrollado y estandarizado por la empresa Microsoft como parte de su plataforma .NET. C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.
Se trata de un lenguaje simple, eficaz y con seguridad de tipos. Las numerosas innovaciones de C# permiten desarrollar aplicaciones rápidamente y mantener la expresividad y elegancia, de los lenguajes de estilo de C.
El nombre C Sharp fue inspirado por el signo ♯, (el cual se lee como sharp en inglés) de notación musical. Es un juego de palabras, pues ‘”C#” significa, musicalmente hablando, “do sostenido”, donde el símbolo # indica que una nota (en este caso do, representada por C) debe ser un semitono más alta. Esto es una metáfora de la superioridad de C# sobre su antecesor C++ y a su vez hace alusión a la misma metáfora que se ideó para dar nombre a C++. Además, el símbolo # puede ser imaginado como la unión de cuatro símbolos +, continuando así con el sentido de progresión de los lenguajes C.
C# Es un lenguaje que ha de ser compilado. Se genera un código intermedio llamado MSIL (Microsoft Intermediate Language) y luego ese código se vuelve a compilar para obtener el formato nativo en la máquina en la que se ejecuta. Podemos asimilarlo como una compilación en dos pasos.
-
C++
es un lenguaje de programación orientado a objetos que toma la base del lenguaje C En la actualidad, el C++ es un lenguaje versátil, potente y general. Su éxito entre los programadores profesionales le ha llevado a ocupar el primer puesto como herramienta de desarrollo de aplicaciones. El C++ mantiene las ventajas del C en cuanto a riqueza de operadores y expresiones, flexibilidad, concisión y eficiencia. Además, ha eliminado algunas de las dificultades y limitaciones del C original.
A la hora de abordar el aprendizaje de la programación dentro de Revit, la mejor opción es C#, y lo es por varios motivos:
- C# en una apuesta de futuro. Es en lenguaje moderno, con una gran trayectoria, que cuenta con un gran apoyo por toda la comunidad. Cuenta además con el apoyo de Microsoft, lo cual es una garantía.
- Es un lenguaje fácil de aprender.
- La mayoría de los ejemplos, ayudas y consultas (con sus respuestas) que se pueden encontrar sobre Revit están escritas en C#
- Es un lenguaje fuertemente tipado, lo que ayuda, sobre todo si usamos Visual Studio.
No obstante, si su aplicación requiere una cantidad de cálculos importante puede ser interesante utilizar C++. Su velocidad es netamente superior a C#.
No obstante, con independencia de las consideraciones anteriores, la mejor elección sobre uno u otro lenguaje, consiste en escoger aquel con el que más cómodo te encuentres.