💻 Desarrollo
Revit API
2021-12-26
7 min read
La tecnologia esta cambiando los habitos de las personas, desde mantenerlas informardas hasta volverlas mas exigentes, lo cual aporta en realización personal y laboral de cada persona, de tal manera que nos reinventemos para ofrecer buenas experiencias, responder a la demanda laboral, reducir costos, automatizar procesos, aumentar ingresos, etc. Es por ello que en este Post tratamos de compartir un granito de conocimiento de como ingresar al mundo de la API en Revit.
El aplicativo que crearemos mostrara un pequeño mensaje en el software de Revit.
Empezaremos creando un proyecto con la opción de Crear un Proyecto en el software de Visual Studio. La version usada es la version 2019, pero el interfaz para las otras versiones no varia de manera importante.
Crearemos una librería de clases (.dll) del cual encontraremos dos tipos en Visual Studio 2019, el .NET Framework con C# y .NET Framework con VB.
Lenguaje | Caracteristicas |
---|---|
Con C# | Existe mayor documentación para desarrolladores. |
Con VB | La cantidad de documentación es limitada. |
Para nuestro proyecto usaremos el .NET Framework con C#.
Luego definiremos el nombre de la solución y nombre de proyecto del aplicativo que procederemos a crear. Hay que entender la diferencia del nombre del proyecto y el nombre de la solución.
Nombre de la Solución Es la solución a un problema general que puede englobar varios proyectos.
Nombre del Proyecto: Dimension o parte de la solución del problema general
En el presente aplicativo nombraremos al proyecto y a la solución como “HelloWorld” dado que no hay mucha complejidad y solamente tendremos un proyecto. En posteriores aplicaciones crearemos proyectos más complejos y sera necesario manejar mejor esta nomenclatura.
Otro tema importante de ver al momento de crear nuestro aplicativo es tener en cuenta la version de .NET Framework. La elección de la version dependerá en la versión de Revit.
Version Revit | .NET Framework |
---|---|
2016 | Versión 4.5 |
2017 | Versión 4.5.2 |
2018 | Versión 4.6.2 |
2019 | Versión 4.7 |
2020 | Versión 4.7.2 |
2021 | Versión 4.8 |
Usaremos el .NET Framework 4.7.2 para aplicarlo en el Revit 2020.
Visual Studio es uno de los mejores IDE que existen en el mercado dado que te facilitan notablemente el trabajo que realizamos. Si seguimos paso a paso las configuraciones del procedimiento anterior llegaremos hasta este punto.
Procederemos a renombrar el nombre de la clase “Class1.cs” por “CmdHelloWorld”. Una buena práctica personal es nombrar al inicio de cada comando con la palabra “Cmd” para hacer más rápido la identificaciones entre las clases que creemos
Agregaremos las referencias (.dll) de las librerías de Revit que nos permitirá interactuar con los métodos y propiedades de Autodesk Revit. Para este pequeño aplicativo solo agregaremos “RevitAPI” y “RevitAPIUI” que la podremos encontrar en la ruta “C:\Program Files\Autodesk\Revit 20XX”
Una vez agregadas las referencias, seleccionamos ambos “RevitAPI” y “RevitAPIUI” y en sus propiedades cambiamos el campo de “Copia local” a “False”, esto por el siguiente motivo.
Visual Studio no sabe de que estamos trabajando un aplicativo para Revit, entonces la copia local significa que va a copiar localmente todos los archivos relacionados con la API de Revit, pero como en este caso crearemos un aplicativo que va a funcionar dentro del entorno de la API de Revit no es necesario volver a copiar las librerías porque ya los tiene internamente.
Ahora agregaremos los namespace necesarios a Visul Studio los cuales contienen clases, métodos y propiedades de Revit.
Podemos encontrar todos los namespace de Revit en el siguiente link:
Luego debemos crear un IExternalCommand(Comando externo) para eso implementaremos una interfaz de la cual se hereda propiedades y métodos, esto lo creamos con el fin de tener una estructura definida, para este caso Revit necesita una estructura denominada Execute.
Ya con la estructura implementada procederemos a devolver un resultado del aplicativo, para eso borramos el texto “throw new NotImplementedException()”.
Visual Studio nos muestra un error porque nosotros estamos creando un método que devuelva un resultado pero aun no hemos escrito el resultado, para eso ingresaremos el siguiente código.
Y procedemos a escribir lo siguiente.
return Result.Succeeded;
lo cual indica que el resultado que estamos devolviendo es exitoso.
Nota: Tener en cuenta que cuando escribimos un código siempre termina con punto y coma (;).
Luego crearemos un TaskDialog el cual es un método que tiene dos entradas un “titulo” y una “descripción”, para eso escribiremos el siguiente código.
TaskDialog.Show("Mi primer aplicativo", "Hola Mundo");
Ahora faltaria añadir el transaction que va entre corchetes [ ], el cual nos permitira comunicarnos con toda la base de datos de Revit, encontraremos dos tipos:
TransactionMode | Descripción |
---|---|
ReadOnly: | Solo modo de lectura. |
Manual: | Te permite realizar cambios a Revit. |
Luego crearemos el archivo manifiesto el cual es indispensable para generar el vinculo entre la (.dll) que estamos creando y Revit.
Luego ingresamos al siguiente Link donde encontraremos una porción del codigo que va en el archivo manifiesto.
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<RevitAddIns>
<AddIn Type="Command">
<Assembly>HelloWorld.dll</Assembly>
<AddInId>ecb76306-3561-43f3-adc7-01d1a178e74e</AddInId>
<FullClassName>HelloWorld.CmdHelloWorld</FullClassName>
<Text>Hola Mundo</Text>
<VendorId>ADSK</VendorId>
<VendorDescription>Lambda Ingenieria e Innovacion, https://lambda.com.pe</VendorDescription>
<VisibilityMode>NotVisibleInFamily</VisibilityMode>
<Discipline>Any</Discipline>
</AddIn>
</RevitAddIns>
Campos | Descripción |
---|---|
AddIn Type | Tipo de aplicativo que podria ser “Command” o “Aplication” |
Assembly | Es la ruta donde esta el aplicativo (.dll). |
AddInId | Es el Guid, es una codificación de microsoft para identificar sus documentos, archivos, elementos en general; esto podemos generarlo a partir del siguiente link. |
FullClassName | Es la clase donde esta el método execute. |
Text | Es el nombre como se va a mostrar dentro del aplicativo. |
VendorId | Puede ser cualquier texto. |
VendorDescription | Una descripción del aplicativo, para que sirve. |
VisibilityMode | NotVisibleInFamily: Que no se aplicara dicho applicativo en una familia. |
Discipline | Disciplina según la especialidad en que se trabajara (Arquitectura, Estructura, Electrica, Mecanicas, Etc). |
Luego agregaremos a Visual Studio los eventos de compilación, los cuales despues de compilar un addin dentro de Revit. Permite compilar los archivos .dll y .addin dentro de una caperta que Revit leera el manifiesto y podra cargar nuestro addin, podemos encontrar estos eventos en el siguiente link.
copy "$(ProjectDir)*.addin" "$(AppData)\Autodesk\REVIT\Addins\2020"
copy "$(ProjectDir)bin\debug\*.dll" "$(AppData)\Autodesk\REVIT\Addins\2020"
Como último paso, despues ingresar estos eventos procedemos a compilar el aplicativo, el cual nos dara como resultado que el aplicativo se compilo dentro de Revit.
Abrimos Revit 2020 y nos saldra una notificación indicando que se ingresera un aplicativo a Revit donde debemos seleccionar la opción “Cargar siempre”.
Una vez realizado eso abrimos un proyecto de ejemplo en Revit, nos vamos a la pestaña de complementos/Herramientas externas/Hola Mundo.
Como producto final vemos el mensaje que nos muestra nuestro primer aplicativo.
Y eso es todo. Es un proceso corto pero vale la pena intentarlo y probarlo, sumemonos todos para poder formar una comunidad de personas que tengan las ganas de ingresar a este nuevo mundo de la programación.
Para más contenido suscríbanse al canal y compártanlo para que este tipo de contenido llegue a más personas.
Si necesitan más información sobre este increíble mundo de la automatización de procesos a través de la creación de aplicaciones en Autodesk Revit no duden en escribirme a mi LinkedIn Bryan Espinoza Allcca o dejar comentarios debajo de este post.
Recibe semanalmente tutoriales, recursos, noticias sobre temas innovadores dentro del sector construcción y destaca profesionalmente.
Subscribiéndose, estás de acuerdo con los Términos y condiciones de la Política de Privacidad. de Lambda Ingeniería e Innovación
Deja tus comentarios