Wenn Sie den SDK-Beispielcode für Makros verwenden möchten, sind Änderungen erforderlich.
Das Revit SDK enthält zwei Beispielordner:
\Revit SDK <Version>\Software Development Kit\Samples\...
\Revit SDK <Version>\Software Development Kit\Macro Samples\...
Die Programme im SDK-Ordner \Samples\ verwenden die Standard-Revit-API. Diese Beispiele werden in diesem Kontext als "SDK-Beispielcode" bezeichnet, im Gegensatz zu "Revit Makro-Beispielen".
Folgen Sie den Anweisungen in diesem Abschnitt. Für die Programmiersprache werden C#-Beispiele verwendet. Diese Anweisungen gelten jedoch auch für die VB.NET-Versionen der SDK-Beispiele.
Erste Schritte
Die ersten Schritte zum Migrieren standardmäßiger API-Beispiele aus dem SDK in das Revit-Makro-IDE-Projekt sind mit den unter Integrieren von Makros in die Revit-IDE beschriebenen Schritten vergleichbar. Sie kopieren die Dateien jedoch nicht aus den SDK-Ordnern unter \Macro Samples\<Beispielname>\..., sondern aus den SDK-Ordnern unter \Samples\<Beispielname>\....
Hier noch einmal die Schritte im Überblick:
- Fügen Sie in der IDE erforderliche Verweise hinzu.
- Erstellen Sie in der IDE Ordner für die SDK-Beispiele, die Sie migrieren möchten.
- Kopieren Sie in Windows Explorer die standardmäßigen API-Beispieldateien des SDK in die entsprechenden Dateisystemordner.
- Fügen Sie in der IDE vorhandene Dateien zum Makroprojekt hinzu.
Aktualisieren des Codes der SDK-Beispiele
In der Revit-Makro-IDE ist die IExternalCommand-Schnittstelle nicht verfügbar und wird nicht verwendet. Im standardmäßigen API-Beispielcode des SDK müssen Sie die Klasse aktualisieren, die von dieser Schnittstelle übernommen wird:
- Entfernen Sie die Methodenparameter und den von der Execute-Methode ausgegebenen Wert.
- Aktualisieren Sie weiteren für ExternalCommandData relevanten Code.
Unbearbeitetes Codebeispiel
Der folgende Codeausschnitt stammt aus einem Programm, das die standardmäßige Revit-API verwendet:
Bearbeitetes Codebeispiel
In der Revit-Makro-IDE muss der Code wie folgt aktualisiert werden. In diesem Beispiel wird ein Anwendungsmakro verwendet. Die Methode RunSampleRooms () ist der Eintrag für dieses Makrobeispiel. Dabei wurde der Zeiger this verwendet, um commandData.Application zu ersetzen.
Zusätzliche Migrationshinweise für standardmäßige API-Beispiele des SDK
- Standardmäßig lautet der Namespace für SDK-Beispiele wie folgt: Revit.SDK.Samples.<Beispielname>.CS. Wenn Sie den Beispielcode aus den Standard-API-Beispielen des SDK bearbeiten, müssen Sie unbedingt den Namespace für die Revit-IDE ändern. Beispielsweise für ThisApplication.cs:
namespace AppCSharp.csproj
- Die Standardprojektverweise in Revit-IDE-Projekten bestehen nur aus einfachen Verweisen, wie z. B. Revit.Proxy. Achten Sie darauf, weitere eventuell erforderliche Verweise hinzuzufügen. Beispiel: Um Beispiele auszuführen, die eine Benutzeroberfläche anzeigen, müssen Sie Verweise für System.Windows.Forms und System.Drawing hinzufügen.
- Einige Beispiele weisen Ressourcen auf, die in der Datei resources.resx definiert werden müssen. GridCreation ist ein solches Beispiel. Wenn Sie das Beispiel für GridCreation aus der Standard-API des SDK in die Revit-IDE migrieren, achten Sie darauf, die Eigenschaft resx festzulegen.
- Die Projektbuildabhängigkeit wird in der Revit-Makro-IDE nicht unterstützt. Wenn Sie andere DLLs verwenden möchten, müssen Sie das abhängige Beispielprojekt außerhalb der Revit-Makro-IDE kompilieren. Beispielsweise gibt es in den standardmäßigen API-Beispielen des SDK mehrere Beispiele zu Viewern, wie z. B. AnalyticalViewer und RoomViewer, die von RevitViewer-Verweisen abhängen.
Aufgrund einer Einschränkung in der Revit-IDE ist es jedoch nicht möglich, die Projektabhängigkeit festzulegen, und das RevitViewer-Beispiel kann nicht migriert werden. Deshalb müssen Sie RevitViewer als unabhängiges SDK-Beispiel kompilieren und dann die zugehörige DLL als Verweis im Revit-IDE-Projekt hinzufügen:
- Beim Migrieren standardmäßiger API-Beispiele des SDK in die Revit-IDE sollten Sie keine Lösungsdateien (*.sln*) oder vorhandenen Projektdateien (*.csproj oder *.vbproj) kopieren.
- Beispiele, die sich auf Werkzeugkästen beziehen, sind in der Revit-IDE nicht verfügbar.