La dernière révision de l'API Renga

Le système pour la conception des bâtiments et des structures de Renga est activement développé, il a des outils pour les architectes, les concepteurs des ingénieurs KZh et KM, VK, OV, EO et ES. Avec chaque version, le système, qui est maintenant divisé en Renga Architecture, Renga Structure et Renga MEP, et en deviendra bientôt un, construit des fonctionnalités. Parallèlement à cela, il grandit et change, devenant de plus en plus une API populaire. En effet, dans Renga, vous pouvez créer un modèle d'information d'un bâtiment, mais vous ne pouvez pas (et ne prévoyez pas) obtenir un beau rendu, une estimation pour la construction ou le calcul de pipelines. Bien sûr, vous pouvez exporter le modèle de Renga vers des formats courants tels que OBJ, IFC, STEP et bien d'autres, mais afin de se passer d'intermédiaires et d'éviter d'éventuelles erreurs d'interprétation lors de l'exportation / importation, il est préférable d'agir via l'API.

Renga MEP

Initialement, lorsque la question s'est posée de créer l'API Renga (après la sortie de la première version de Renga Architecture), nous nous sommes concentrés uniquement sur l'API C ++, en fonction des exigences que nous avions à l'époque.

Au fur et à mesure du développement de Renga, nous avons commencé à recevoir des questions des développeurs sur la possibilité d'écrire en C # et dans d'autres langages sous Renga et sur les versions de Visual Studio prises en charge.

Ensuite, après avoir analysé la disponibilité de l'API pour les utilisateurs, nous avons pensé à changer la technologie.

Le fait est que l'API C ++ est assez difficile. Il dépend fortement du compilateur, c'est-à-dire si le SDK est compilé par le compilateur Visual Studio, vous ne pouvez probablement pas le compiler à l'aide, par exemple, de gcc, car le changement de nom n'est pas normalisé, il peut y avoir des différences dans l'implémentation des tables virtuelles, des modèles, etc. Dans Visual Studio lui-même, il peut également y avoir des différences dans les paramètres de compilation et la prise en charge de la norme d'une version à l'autre.

En général, on pourrait vivre avec cela, par exemple, en utilisant des fonctions virtuelles au minimum (et par conséquent l'héritage), sans utiliser de modèles et en fixant la norme utilisée et l'environnement de développement pendant un certain temps.

De plus, nous pourrions créer plusieurs versions de l'API pour différents environnements et / ou versions du système.
Mais encore, nous avons décidé de regarder dans l'autre sens. Et après des recherches, ils ont choisi COM.
Cette norme a été développée en 1993, c'est-à-dire qu'elle n'est pas seulement ancienne, mais aussi une superstar) mais elle nous a permis de fournir aux utilisateurs une seule API, à l'aide de laquelle vous pouvez écrire des plugins en C ++, C # ou un autre langage compatible COM, en plus, vous pouvez utiliser l'API COM pour accéder à Renga à partir d'applications tierces, y compris celles écrites dans des langues avec typage dynamique, par exemple, en Python.

Aide de l'API Renga

Je dois dire que l' aide de l'API Renga détaille comment commencer, quoi et comment l'utiliser. Mais nous vous indiquons toujours ce dont vous avez besoin pour écrire une extension pour Renga.

Donc, pour écrire une extension pour Renga dans n'importe quelle langue, vous aurez besoin:

  1. Renga et comprendre exactement ce que vous souhaitez automatiser lorsque vous travaillez avec le système.
  2. Kit de développement logiciel Renga.
  3. Microsoft Visual Studio. Toute version antérieure à 2012.
  4. Connaissance des bases de la programmation.

Vous pouvez vous renseigner sur le système Renga et ses capacités sur le site Web du système , dans l'aide , sur le blog des développeurs , ainsi que dans des groupes sur VK et Facebook , des annonces et des enregistrements de webinaires y sont publiés, vous pouvez également trouver de vrais utilisateurs du système et discuter avec eux. Par conséquent, nous allons omettre le point de connaissance du système, mais nous spécifierons les exigences que l'API peut désormais satisfaire.

En utilisant l'API Renga, vous pouvez:

  • sélectionner des objets dans le modèle et gérer l'événement de sélection d'objet dans Renga;
  • recevoir et modifier les paramètres des objets,
  • ;
  • ;
  • , , ..;
  • , ;
  • 3D ;
  • IFC;
  • DWG/DXF;
  • , , ,
  • , .
  • .

Pour le moment, vous ne pouvez pas créer un nouvel objet à partir de l'API, c'est dans les plans, mais pas pour la prochaine version.

Il convient de noter que l'API Renga se développe à la demande des utilisateurs, et si vous n'avez pas vu les capacités d'automatisation dont vous avez besoin dans cette liste, contactez-nous et nous discuterons de votre idée.

Si nous continuions à travailler uniquement sur l'API C ++, l'ensemble des fonctionnalités serait probablement le même, mais nous sommes presque sûrs que toutes les extensions Renga ne seraient pas nées. Au fait, vous pouvez voir la liste des extensions que nous connaissons sur le site .

Voyons maintenant ce que nous proposons au final à nos utilisateurs en termes d'API. Pour obtenir le SDK Renga, il vous suffit de le télécharger. Et pour l'utiliser, vous pouvez étudier et utiliser les exemples qui se trouvent dans l'archive.

image

Il existe des exemples dans le SDK pour écrire des extensions en C ++ et C #, ainsi que des exemples de connexion à Renga en Python. L'aide de l'API Renga dans les sections Procédures répertorie des exemples qui utilisent les techniques de cette section.

Des exemples de plugins C ++ et C # illustrent presque toutes les fonctionnalités de l'API, dans des exemples Python, vous trouverez comment l'utiliser pour créer une propriété personnalisée dans Renga à partir d'une application tierce, ainsi que comment automatiser l'ouverture, l'enregistrement et la fermeture d'un projet Renga à l'aide d'un script.

Actuellement, Renga peut charger des plugins à partir de DLL binaires C ++ et d'assemblages .NET, et en utilisant des langages typés dynamiquement tels que Python, VBScript, 1C et autres, vous pouvez accéder à l'API Renga à partir de programmes tiers pour obtenir les données nécessaires.
En général, nous sommes satisfaits de la transition vers l'API COM et des opportunités qu'elle a ouvertes à nos utilisateurs.

Toute extension Renga appelée à partir de Renga doit être constituée d'un fichier binaire pour le plugin et d'un fichier .xml avec l'extension .rndesc, avec le contenu suivant:

<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>

Pour connecter l'extension à Renga, vous devez l'installer ou la copier dans le dossier d'installation de Renga \ Plugins. Les informations contenues dans le fichier .rndesc s'affichent dans l'onglet Extensions de la fenêtre Paramètres Renga.

Nous sommes convaincus que, armé des connaissances acquises et de nos connaissances en programmation, tout développeur peut écrire une extension pour Renga. Mais si vous avez une idée d'étendre Renga et qu'il y a des problèmes avec sa mise en œuvre, écrivez sur le forum ou enregistrez une demande dans ServiceDesk . Nous accueillons les questions!

All Articles