Die letzte Überprüfung der Renga-API

Das System für die Gestaltung von Gebäuden und Strukturen von Renga wird aktiv entwickelt. Es verfügt über Werkzeuge für Architekten, Designer von KZh und KM, Ingenieure von VK, OV, EO und ES. Mit jeder Version erweitert das System, das jetzt in Renga Architecture, Renga Structure und Renga MEP unterteilt ist und bald eins wird, seine Funktionalität. Gleichzeitig wächst und verändert es sich und wird immer beliebter. In Renga können Sie zwar ein Informationsmodell eines Gebäudes erstellen, aber Sie können (und planen nicht) einen schönen Putz, eine Schätzung für den Bau oder die Berechnung von Pipelines. Natürlich können Sie das Modell aus Renga in gängige Formate wie OBJ, IFC, STEP und viele andere exportieren. Um jedoch auf Vermittler zu verzichten und mögliche Fehlinterpretationen von Daten beim Export / Import zu vermeiden, ist es besser, über die API zu handeln.

Renga MdEP

Als sich die Frage nach der Erstellung der Renga-API stellte (nach der Veröffentlichung der ersten Version von Renga Architecture), konzentrierten wir uns zunächst nur auf die C ++ - API, basierend auf den Anforderungen, die wir zu diesem Zeitpunkt hatten.

Während der Entwicklung von Renga erhielten wir Fragen von Entwicklern, ob es möglich ist, unter Renga in C # und anderen Sprachen zu schreiben und welche Versionen von Visual Studio unterstützt werden.

Nachdem wir die Verfügbarkeit der API für Benutzer analysiert hatten, überlegten wir, die Technologie zu ändern.

Tatsache ist, dass die C ++ - API ziemlich schwierig ist. Es ist stark vom Compiler abhängig, d.h. Wenn das SDK vom Visual Studio-Compiler kompiliert wird, können Sie es wahrscheinlich nicht mit beispielsweise gcc kompilieren, da die Namensverwaltung nicht standardisiert ist und es Unterschiede bei der Implementierung virtueller Tabellen, Vorlagen usw. geben kann. In Visual Studio selbst kann es auch zu Unterschieden bei den Kompilierungseinstellungen und der Unterstützung des Standards von Version zu Version kommen.

Im Allgemeinen könnte man damit leben, indem man beispielsweise virtuelle Funktionen auf ein Minimum reduziert (und infolgedessen Vererbung), ohne Vorlagen zu verwenden und den verwendeten Standard und die Entwicklungsumgebung für einen bestimmten Zeitraum festzulegen.

Darüber hinaus könnten wir mehrere Versionen der API für verschiedene Umgebungen und / oder Versionen des Systems erstellen.
Trotzdem haben wir uns entschlossen, wegzuschauen. Und nach Recherchen entschieden sie sich für COM.
Dieser Standard wurde bereits 1993 entwickelt, das heißt, er ist nicht nur alt, sondern auch ein Superstar. Er ermöglichte es uns jedoch, Benutzern eine einzige API zur Verfügung zu stellen, mit der Sie Plugins in C ++, C # oder einer anderen COM-kompatiblen Sprache schreiben können. Außerdem können Sie über die COM-API darauf zugreifen an Renga von Anwendungen von Drittanbietern, einschließlich solcher, die in Sprachen mit dynamischer Typisierung geschrieben wurden, z. B. in Python.

Renga API-Hilfe

Ich muss sagen, dass die Renga API-Hilfe ausführlich beschreibt, wie Sie beginnen, was und wie Sie sie verwenden. Aber wir sagen Ihnen immer noch, was Sie brauchen, um eine Erweiterung für Renga zu schreiben.

Um eine Erweiterung für Renga in einer beliebigen Sprache zu schreiben, benötigen Sie:

  1. Renga und zu verstehen, was genau Sie automatisieren möchten, wenn Sie mit dem System arbeiten.
  2. Renga Software Development Kit.
  3. Microsoft Visual Studio. Jede Version jünger als 2012.
  4. Kenntnisse der Grundlagen der Programmierung.

Informationen zum Renga-System und seinen Funktionen finden Sie auf der Website des Systems , in der Hilfe , im Entwicklerblog sowie in Gruppen auf VK und Facebook. Dort werden Ankündigungen und Aufzeichnungen von Webinaren veröffentlicht. Außerdem können Sie echte Benutzer des Systems finden und mit ihnen chatten. Daher werden wir den Punkt der Kenntnis des Systems weglassen, aber wir werden angeben, welche Anforderungen die API jetzt erfüllen kann.

Mit der Renga-API können Sie:

  • Wählen Sie Objekte im Modell aus und behandeln Sie das Objektauswahlereignis in Renga.
  • Objektparameter empfangen und ändern,
  • ;
  • ;
  • , , ..;
  • , ;
  • 3D ;
  • IFC;
  • DWG/DXF;
  • , , ,
  • , .
  • .

Derzeit können Sie kein neues Objekt über die API erstellen. Dies ist in den Plänen vorgesehen, jedoch nicht für die nächste Version.

Es ist zu beachten, dass die Renga-API auf Wunsch der Benutzer erweitert wird. Wenn Sie die in dieser Liste benötigten Automatisierungsfunktionen nicht sehen, setzen Sie sich mit uns in Verbindung, und wir werden Ihre Idee besprechen.

Wenn wir weiterhin nur an der C ++ - API arbeiten würden, wären die Funktionen höchstwahrscheinlich gleich, aber wir sind fast sicher, dass nicht alle Renga-Erweiterungen geboren werden. Übrigens können Sie die Liste der uns bekannten Erweiterungen auf der Website sehen .

Nun wollen wir sehen, was wir unseren Benutzern letztendlich in Bezug auf die API anbieten. Um das Renga SDK zu erhalten, müssen Sie es nur herunterladen. Und um es zu verwenden, können Sie die Beispiele im Archiv studieren und verwenden.

Bild

Das SDK enthält Beispiele für das Schreiben von Erweiterungen in C ++ und C # sowie Beispiele für die Verbindung zu Renga in Python. In der Renga-API-Hilfe in den Anleitungen werden Beispiele aufgeführt, in denen die Techniken aus diesem Abschnitt verwendet werden.

Beispiele für C ++ - und C # -Plugins demonstrieren fast alle API-Funktionen. In Python-Beispielen erfahren Sie, wie Sie damit eine benutzerdefinierte Eigenschaft in Renga aus einer Drittanbieteranwendung erstellen und das Öffnen, Speichern und Schließen eines Renga-Projekts mithilfe eines Skripts automatisieren.

Derzeit kann Renga Plugins aus C ++ - Binär-DLLs und .NET-Assemblys laden. Mit dynamisch typisierten Sprachen wie Python, VBScript, 1C und anderen können Sie über Programme von Drittanbietern auf die Renga-API zugreifen, um die erforderlichen Daten abzurufen.
Im Allgemeinen freuen wir uns über den Übergang zur COM-API und die Möglichkeiten, die sie unseren Benutzern eröffnet hat.

Jede Renga-Erweiterung, die von Renga aufgerufen wird, sollte aus einer Binärdatei für das Plugin und einer XML-Datei mit der Erweiterung .rndesc mit folgendem Inhalt bestehen:

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

Um die Erweiterung mit Renga zu verbinden, müssen Sie sie installieren oder in den Installationsordner Renga \ Plugins kopieren. Die in der .rndesc-Datei enthaltenen Informationen werden auf der Registerkarte Erweiterungen des Fensters Renga-Einstellungen angezeigt.

Wir sind zuversichtlich, dass jeder Entwickler mit dem gewonnenen Wissen und unseren Programmierkenntnissen eine Erweiterung für Renga schreiben kann. Wenn Sie jedoch eine Idee zur Erweiterung von Renga haben und Probleme bei der Implementierung haben, schreiben Sie in das Forum oder registrieren Sie eine Anfrage in ServiceDesk . Wir freuen uns über Fragen!

All Articles