W przypadku narzędzi Revit SDK są dostępne dwa foldery zawierające przykłady:
\Revit SDK <wersja>\Software Development Kit\Samples\...
\Revit SDK <wersja>\Software Development Kit\Macro Samples\...
Programy w folderze SDK \Samples\ korzystają ze standardowego interfejsu API programu Revit. Te przykłady są nazywane kodem przykładu SDK, aby odróżnić je od przykładów makr Revit.
Kod przykładu SDK można użyć do tworzenia makr po wprowadzeniu odpowiednich modyfikacji. W tym rozdziale są przedstawione kolejne etapy tego procesu. Zaprezentowane będą przykłady w języku C#. Jednak podane instrukcje dotyczą również wersji przykładów SDK w języku VB.NET.
Czynności początkowe
Czynności początkowe podczas migracji przykładów standardowego interfejsu API z narzędzi SDK do projektu Revit Macro IDE są podobne do czynności przedstawionych w temacie Integracja makr w środowisku Revit IDE. Jednak zamiast kopiowania plików z folderów narzędzi SDK \Macro Samples\ <nazwa-przykładu>\... skopiowane zostaną pliki z folderów narzędzi SDK \Samples\ <nazwa-przykładu>\....
Przypomnijmy, że czynności te są następujące:
- W środowisku IDE — dodanie żądanych odniesień.
- W środowisku IDE — utworzenie folderów dla przykładów SDK do migracji.
- W programie Eksplorator Windows — skopiowanie plików standardowego interfejsu API SDK do odpowiednich folderów systemowych.
- W środowisku IDE — dodanie istniejących plików do projektu makra.
Aktualizacja kodu przykładów SDK
W środowisku Revit macro IDE interfejs IExternalCommand jest niedostępny. W kodzie przykładu SDK standardowego interfejsu API jest konieczna aktualizacja klasy dziedziczącej z tego interfejsu:
- Usuń parametry metody oraz zwrot metody Execute.
- Zaktualizuj pozostały kod dotyczący metodyExternalCommandData
Przykładowy kod przed edycją
Przedstawiony poniżej fragment kodu pochodzi z programu wykorzystującego standardowy interfejs Revit API:
Przykładowy kod po edycji
Kod w środowisku Revit macro IDE należy zaktualizować zgodnie z poniższym przykładem. W tym przykładzie przedstawiono makro poziomu aplikacji. Metoda RunSampleRooms () stanowi wejście dla tego przykładu makra. Zauważ, że używamy wskaźnika to do zastąpienia commandData.Application.
Dodatkowe informacje na temat migracji przykładów SDK standardowego interfejsu API
- Domyślnie obszarem nazw przykładu SDK jest: Revit.SDK.Samples.<NazwaPrzykładu>.CS Podczas edytowania kodu przykładów SDK standardowego interfejsu API należy zmienić obszar nazw dla środowiska Revit IDE. Na przykład w projekcie ThisApplication.cs:
namespace AppCSharp.csproj
- Domyślne odniesienia projektów w projektach Revit IDE obejmują jedynie podstawowe odniesienia, takie jakRevit.Proxy. Należy pamiętać, aby dodać inne żądane odniesienia. Na przykład, należy dodać odniesienia System.Windows.Forms i System.Drawing podczas uruchamiania przykładów, które wyświetlają interfejs użytkownika.
- Niektóre przykłady zawierają zasoby, które należy zdefiniować w pliku resources.resx. Jednym z przykładów jest GridCreation. W przypadku migracji standardowego przykładu interfejsu API narzędzia SDK dla GridCreation do środowiska Revit IDE należy pamiętać o prawidłowym ustawieniu właściwości resx.
- W środowisku Revit macro IDE nie jest obsługiwana zależność budowy projektu. Jeśli będą wykorzystywane biblioteki DLL, należy skompilować ten zależny przykładowy projekt poza środowiskiem Revit macro IDE. W przykładach SDK standardowego API występuje kilka przykładów dotyczących Przeglądarek takich, jak AnalyticalViewer oraz RoomViewer, uzależnionych od odniesień do RevitViewer.
Jednak nie można ustalić zależności projektu ze względu na ograniczenia występujące w programie Revit IDE i nie można migrować przykładu RevitViewer. W związku z tym należy skompilować przeglądarkę RevitViewer jako niezależny przykład SDK, a następnie dodać jej biblioteki DLL jako odniesienie w projekcie Revit IDE.
- Podczas migracji przykładów SDK standardowego interfejsu API do środowiska Revit IDE nie należy kopiować do niego żadnych plików rozwiązań (*.sln*) ani plików istniejących projektów (*.csproj lub *.vbproj).
- W środowisku Revit IDE nie są dostępne przykłady związane z paskami narzędzi.