La 煤ltima revisi贸n de la API de Renga

El sistema para el dise帽o de edificios y estructuras de Renga se est谩 desarrollando activamente, tiene herramientas para arquitectos, dise帽adores de ingenieros de KZh y KM, VK, OV, EO y ES. Con cada versi贸n, el sistema, que ahora se divide en Renga Architecture, Renga Structure y Renga MEP, y pronto se convertir谩 en uno, crea funcionalidad. Junto con esto, crece y cambia, convirti茅ndose en API cada vez m谩s popular. De hecho, en Renga puede crear un modelo de informaci贸n de un edificio, pero no puede (y no planea) obtener un hermoso render, una estimaci贸n para la construcci贸n o el c谩lculo de tuber铆as. Por supuesto, puede exportar el modelo de Renga a formatos comunes como OBJ, IFC, STEP y muchos otros, pero para prescindir de intermediarios y evitar posibles interpretaciones err贸neas de los datos durante la exportaci贸n / importaci贸n, es mejor actuar a trav茅s de la API.

Eurodiputado Renga

Inicialmente, cuando surgi贸 la cuesti贸n de crear la API de Renga (despu茅s del lanzamiento de la primera versi贸n de Renga Architecture), nos centramos solo en la API de C ++, en funci贸n de los requisitos que ten铆amos en ese momento.

A medida que Renga se desarroll贸, comenzamos a recibir preguntas de los desarrolladores sobre si es posible escribir en C # y otros lenguajes en Renga y qu茅 versiones de Visual Studio son compatibles.

Luego, despu茅s de analizar la disponibilidad de la API para los usuarios, pensamos en cambiar la tecnolog铆a.

El hecho es que la API de C ++ es bastante dif铆cil. Depende mucho del compilador, es decir si el compilador de Visual Studio compila el SDK, entonces probablemente no pueda compilarlo usando, por ejemplo, gcc, ya que el cambio de nombre no est谩 estandarizado, puede haber diferencias en la implementaci贸n de tablas virtuales, plantillas, etc. En Visual Studio, tambi茅n puede haber diferencias en la configuraci贸n de compilaci贸n y el soporte para el est谩ndar de una versi贸n a otra.

En general, uno podr铆a vivir con esto, por ejemplo, usando funciones virtuales al m铆nimo (y como consecuencia, herencia), no usando plantillas y arreglando el est谩ndar utilizado y el entorno de desarrollo durante un cierto per铆odo de tiempo.

Adem谩s, podr铆amos crear varias versiones de la API para diferentes entornos y / o versiones del sistema.
Pero a煤n as铆, decidimos mirar para otro lado. Y despu茅s de la investigaci贸n, eligieron COM.
Este est谩ndar se desarroll贸 en 1993, es decir, no es solo antiguo, sino superestrella), pero nos permiti贸 proporcionar a los usuarios una 煤nica API, con la que puede escribir complementos en C ++, C # u otro lenguaje compatible con COM, adem谩s, puede usar la API COM para acceder a Renga desde aplicaciones de terceros, incluidas las escritas en lenguajes con escritura din谩mica, por ejemplo, en Python.

Ayuda API Renga

Debo decir que la Ayuda de Renga API detalla c贸mo comenzar, qu茅 y c贸mo usarlo. Pero a煤n le decimos lo que necesita para escribir una extensi贸n para Renga.

Entonces, para escribir una extensi贸n para Renga en cualquier idioma, necesitar谩:

  1. Renga y comprender qu茅 es exactamente lo que desea automatizar al trabajar con el sistema.
  2. Kit de desarrollo de software Renga.
  3. Microsoft Visual Studio. Cualquier versi贸n anterior a 2012.
  4. Conocimiento de los conceptos b谩sicos de programaci贸n.

Puede obtener informaci贸n sobre el sistema Renga y sus capacidades en el sitio web del sistema , en la ayuda , en el blog de los desarrolladores , as铆 como en grupos en VK y Facebook , donde se publican anuncios y grabaciones de seminarios web, tambi茅n puede encontrar usuarios reales del sistema y chatear con ellos. Por lo tanto, omitiremos el punto de conocimiento del sistema, pero especificaremos qu茅 requisitos puede satisfacer ahora la API.

Usando la API de Renga, puedes:

  • seleccionar objetos en el modelo y manejar el evento de selecci贸n de objetos en Renga;
  • recibir y cambiar par谩metros de objeto,
  • ;
  • ;
  • , , ..;
  • , ;
  • 3D ;
  • IFC;
  • DWG/DXF;
  • , , ,
  • , .
  • .

Por el momento, no puede crear un nuevo objeto desde la API, est谩 en los planes, pero no para la pr贸xima versi贸n.

Cabe se帽alar que la API de Renga se est谩 expandiendo a pedido de los usuarios, y si no vio las capacidades de automatizaci贸n que necesita en esta lista, cont谩ctenos y discutiremos su idea.

Si continuamos trabajando solo en la API de C ++, lo m谩s probable es que el conjunto de caracter铆sticas sea el mismo, pero estamos casi seguros de que no nacer谩n todas las extensiones de Renga. Por cierto, puede ver la lista de extensiones que conocemos en el sitio .

Ahora veamos qu茅 ofrecemos al final a nuestros usuarios en t茅rminos de API. Para obtener el SDK de Renga, solo necesita descargarlo. Y para usarlo puedes estudiar y usar los ejemplos que est谩n en el archivo.

imagen

Hay ejemplos en el SDK para escribir extensiones en C ++ y C #, as铆 como ejemplos de conexi贸n a Renga en Python. La Ayuda de la API de Renga en las secciones de C贸mo se enumeran ejemplos que utilizan las t茅cnicas de esta secci贸n.

Los ejemplos de complementos de C ++ y C # demuestran casi todas las caracter铆sticas de la API, en los ejemplos de Python encontrar谩 c贸mo usarlo para crear una propiedad personalizada en Renga desde una aplicaci贸n de terceros, as铆 como tambi茅n c贸mo automatizar la apertura, el guardado y el cierre de un proyecto de Renga usando un script.

Actualmente, Renga puede cargar complementos desde archivos DLL binarios de C ++ y ensamblados .NET, y utilizando lenguajes de tipo din谩mico como Python, VBScript, 1C y otros, puede acceder a la API de Renga desde programas de terceros para obtener los datos necesarios.
En general, estamos satisfechos con la transici贸n a la API COM y las oportunidades que ha abierto para nuestros usuarios.

Cualquier extensi贸n de Renga que se llame desde Renga debe consistir en un archivo binario para el complemento y un archivo .xml con la extensi贸n .rndesc, con el siguiente contenido:

<RengaPlugin>
   <!--   -->
   <Name>Best Plugin</Name>
   <!--   -->
   <Version>1.0</Version>
   <!--    -->
   <Copyright>Copyright text</Copyright>
   <!--   Renga API -->
   <RequiredAPIVersion>2.3</RequiredAPIVersion>
   <!--   cpp/net -->        
   <PluginType>Plugin type</PluginType>
   <!--    -->                     
   <PluginFilename>Best_Plugin.dll</PluginFilename> ->
   <Vendor>Renga</Vendor>                           
</RengaPlugin>

Para conectar la extensi贸n a Renga, debe instalarla o copiarla a la carpeta de instalaci贸n de Renga \ Plugins. La informaci贸n contenida en el archivo .rndesc se muestra en la pesta帽a Extensiones de la ventana Configuraci贸n de Renga.

Estamos seguros de que, armados con el conocimiento adquirido y nuestro conocimiento de programaci贸n, cualquier desarrollador puede escribir una extensi贸n para Renga. Pero si tiene una idea de expandir Renga y hay problemas con su implementaci贸n, escriba en el foro o registre una solicitud en ServiceDesk . Damos la bienvenida a las preguntas!

All Articles