Źródło dodatku Dynamo jest hostowane w serwisie Github, w którym każdy może je klonować i współtworzyć. W tym rozdziale omówimy sposób klonowania repozytorium za pomocą narzędzia git, kompilowania plików źródłowych za pomocą programu Visual Studio, uruchamiania i debugowania kompilacji lokalnej oraz ściągania (pull) nowych zmian z serwisu Github.
Github to usługa hostingu oparta na narzędziu git, systemie kontroli wersji umożliwiającym śledzenie zmian i koordynowanie pracy wielu osób. Git to narzędzie, za pomocą którego można pobierać pliki źródłowe dodatku Dynamo i aktualizować je przy użyciu kilku poleceń. Stosowanie tej metody pozwala uniknąć niepotrzebnego i nieuporządkowanego pobierania i ręcznego zastępowania plików źródłowych przy każdej aktualizacji. System kontroli wersji git śledzi wszelkie różnice między lokalnym i zdalnym repozytorium kodu.
Źródło dodatku Dynamo jest hostowane w witrynie DynamoDS w serwisie GitHub w tym repozytorium: https://github.com/DynamoDS/Dynamo
Pliki źródłowe dodatku Dynamo.
Klonowanie lub pobieranie całego repozytorium
Wyświetlanie innych repozytoriów DynamoDS
Pliki źródłowe dodatku Dynamo
Pliki charakterystyczne narzędzia git
Zanim będzie można sklonować repozytorium, należy zainstalować narzędzie git. Postępuj zgodnie z tym krótkim przewodnikiem, aby zapoznać się z krokami instalacji oraz konfigurowania nazwy użytkownika i adresu e-mail w serwisie GitHub. W tym przykładzie użyjemy narzędzia git w wierszu polecenia. W tym podręczniku przyjęto, że jest używany system Windows, ale narzędzia git można też używać w systemie Mac lub Linux, aby sklonować źródło dodatku Dynamo.
Do sklonowania potrzebny jest adres URL repozytorium dodatku Dynamo. Można go znaleźć za pomocą przycisku „Clone or download” (Klonuj lub pobierz) na stronie repozytorium. Skopiuj adres URL, aby wkleić go do wiersza polecenia.
Wybierz przycisk „Clone or download” (Klonuj lub pobierz)
Skopiuj adres URL
Po zainstalowaniu narzędzia git można sklonować repozytorium dodatku Dynamo. Rozpocznij od otwarcia wiersza polecenia. Następnie za pomocą polecenia do zmiany katalogu, cd, przejdź do folderu, do którego mają zostać sklonowane pliki źródłowe. W tym przypadku utworzyliśmy folder o nazwie Github w folderze Documents.
cd C:\Users\username\Documents\GitHub
Zastąp ciąg „username” swoją nazwą użytkownika
W następnym kroku uruchomimy polecenie git, aby sklonować repozytorium dodatku Dynamo do określonego położenia. Adres URL do użycia w tym poleceniu można uzyskać, klikając przycisk „Clone or download” (Klonuj lub pobierz) w serwisie GitHub. Uruchom to polecenie w terminalu poleceń. Uwaga: spowoduje to sklonowanie gałęzi głównej repozytorium dodatku Dynamo, która jest najczęściej aktualizowanym kodem dodatku Dynamo i zawiera najnowszą wersję kodu dodatku Dynamo. Ta gałąź zmienia się codziennie.
git clone https://github.com/DynamoDS/Dynamo.git
Jeśli operacja klonowania zakończyła się pomyślnie, oznacza to, że narzędzie git działa. W eksploratorze plików przejdź do katalogu, do którego sklonowano pliki źródłowe. Struktura katalogu powinna wyglądać tak samo jak gałąź główna repozytorium dodatku Dynamo w serwisie Github.
Pliki źródłowe dodatku Dynamo
Pliki git
Po sklonowaniu plików źródłowych na komputer lokalny można utworzyć plik wykonywalny dla dodatku Dynamo. W tym celu należy skonfigurować środowisko IDE programu Visual Studio oraz upewnić się, że zainstalowano programy .NET Framework i DirectX.
Pobierz i zainstaluj oprogramowanie Microsoft Visual Studio Community 2015 — bezpłatne i w pełni funkcjonalne środowisko IDE (czyli zintegrowane środowisko programistyczne — mogą się również sprawdzić nowsze wersje)
Pobierz i zainstaluj program Microsoft .NET Framework 4.5 lub nowszy
Zainstaluj program Microsoft DirectX z lokalnego repozytorium dodatku Dynamo (Dynamo\tools\install\Extra\DirectX\DXSETUP.exe)
Programy .NET i DirectX mogą być już zainstalowane.
Uwaga: poważna zmiana — wymagany program Visual Studio 2022 Preview / Visual Studio 2026 Insider
Pod koniec końca 2025 roku w dodatku Dynamo zostanie zaimplementowany program
dotnet10.0. Aby programować w ramach tej platformy, jest potrzebny program Visual Studio 2022 Preview lub Visual Studio 2026 Insider (albo nowszy), ponieważ stabilne wersje nie obsługują jeszcze platformy .NET 10.0.Instalowanie programu Visual Studio 2022 Preview / Visual Studio 2026 Insider równolegle z istniejącą instalacją:
Otwórz narzędzie Instalator programu Visual Studio (wyszukaj je w menu Start).
Kliknij przycisk Aktualizuj, aby upewnić się, że masz najnowszą wersję instalatora.
Otwórz kartę Dostępne.
Znajdź pozycję Visual Studio 2022 Preview / 2026 Insider (Community, Professional lub Enterprise).
Kliknij przycisk Zainstaluj, aby dodać program równolegle do istniejącej instalacji programu Visual Studio.
Po zakończeniu instalacji można uruchomić program Visual Studio i otworzyć rozwiązanie Dynamo.All.sln znajdujące się w folderze Dynamo\src.
Wybierz opcję
File > Open > Project/SolutionPrzejdź do repozytorium dodatku Dynamo i otwórz folder
srcWybierz plik rozwiązania
Dynamo.All.slnWybierz opcję
Open
Przed skompilowaniem rozwiązania należy określić kilka ustawień. Najpierw należy skompilować wersję dodatku Dynamo do debugowania, aby zebrać w programie Visual Studio więcej informacji w ramach debugowania na potrzeby programowania. Jako platformy docelowej należy użyć AnyCPU.
Staną się one folderami w folderze
bin
W tym przykładzie jako konfigurację rozwiązania wybraliśmy opcję
DebugJako platformę rozwiązania ustaw
Any CPU
Przy otwartym projekcie możemy skompilować rozwiązanie. W tym procesie zostanie utworzony plik DynamoSandbox.exe, który można uruchomić.
Skompilowanie projektu spowoduje przywrócenie zależności NuGet.
Wybierz opcję
Build > Build SolutionSprawdź, czy kompilacja została zakończona pomyślnie w oknie danych wyjściowych. Komunikat powinien przypominać następujący:
==== Build: 69 succeeded, 0 failed, 0 up-to-date, 0 skipped ====
Jeśli dodatek Dynamo zostanie skompilowany pomyślnie, w repozytorium dodatku Dynamo zostanie utworzony folder bin z plikiem DynamoSandbox.exe. W tym przypadku tworzymy plik wykonywalny za pomocą opcji Debug, dlatego znajduje się on w folderze bin\AnyCPU\Debug. Uruchomienie tego pliku spowoduje otwarcie kompilacji lokalnej dodatku Dynamo.
Nowo skompilowany plik wykonywalny DynamoSandbox. Uruchom ten plik, aby uruchomić dodatek Dynamo.
Wszystko jest już prawie gotowe do rozpoczęcia pracy nad dodatkiem Dynamo.
Instrukcje dotyczące kompilowania dodatku Dynamo dla innych platform (np. Linux lub OS X) można znaleźć na tej stronie wiki.
Debugowanie to proces identyfikowania, izolowania i usuwania błędów lub problemów. Po pomyślnym skompilowaniu dodatku Dynamo ze źródła można za pomocą kilku narzędzi w programie Visual Studio debugować uruchomioną aplikację, na przykład dodatek DynamoRevit. Można przeanalizować kod źródłowy aplikacji, aby znaleźć źródło problemu, lub obserwować wykonywanie kodu na bieżąco. Aby uzyskać bardziej szczegółowe wyjaśnienia dotyczące debugowania i nawigowania po kodzie w programie Visual Studio, zapoznaj się z dokumentacją programu Visual Studio w witrynie Docs.
W przypadku autonomicznej aplikacji Dynamo, DynamoSandbox, omówimy dwie opcje debugowania:
Kompilowanie i uruchamianie dodatku Dynamo bezpośrednio z programu Visual Studio
Dołączanie programu Visual Studio do uruchomionego procesu dodatku Dynamo
W przypadku uruchamiania dodatku Dynamo z programu Visual Studio rozwiązanie jest ponownie kompilowane dla każdej sesji debugowania, jeśli jest to wymagane. Jeśli więc wprowadzono zmiany w źródle, zostają one uwzględnione podczas debugowania. Przy otwartym rozwiązaniu Dynamo.All.sln wybierz z menu rozwijanego opcje Debug, AnyCPU i DynamoSandbox, a następnie kliknij opcję Start. Spowoduje to skompilowanie dodatku Dynamo i uruchomienie nowego procesu (DynamoSandbox.exe), a następnie dołączenie do niego debugera programu Visual Studio.
Kompilowanie i uruchamianie aplikacji bezpośrednio z programu Visual Studio
Ustaw konfigurację na
DebugUstaw platformę na
Any CPUUstaw projekt startowy na
DynamoSandboxKliknij opcję
Start, aby rozpocząć proces debugowania
Można również debugować proces dodatku Dynamo, który jest już uruchomiony, aby rozwiązać problem z określonym otwartym wykresem lub pakietem. W tym celu należy otworzyć pliki źródłowe projektu w programie Visual Studio i dołączyć program do uruchomionego procesu dodatku Dynamo za pomocą elementu menu debugowania Attach to Process.
Dołączanie uruchomionego procesu do programu Visual Studio
Wybierz opcję
Debug > Attach to Process...Wybierz opcję
DynamoSandbox.exeWybierz opcję
Attach
W obu sytuacjach dołączamy debuger do procesu, który chcemy debugować. Przed lub po uruchomieniu debugera możemy ustawić punkty przerwania w kodzie, co spowoduje wstrzymanie procesu bezpośrednio przed wykonaniem danego wiersza kodu. Jeśli podczas debugowania zostanie zgłoszony nieprzechwycony wyjątek, program Visual Studio przeskoczy do miejsca, w którym ten wyjątek wystąpił w kodzie źródłowym. Jest to efektywna metoda wyszukiwania prostych awarii oraz nieobsługiwanych wyjątków i analizowania procesu wykonywania aplikacji.
Podczas debugowania aplikacji DynamoSandbox ustawiamy punkt przerwania w konstruktorze węzła Colour.ByARGB, który powoduje wstrzymanie procesu dodatku Dynamo po utworzeniu wystąpienia węzła. Jeśli ten węzeł zgłaszał wyjątek lub powodował awarię dodatku Dynamo, można krokowo wykonywać poszczególne wiersze w konstruktorze, aby sprawdzić, gdzie wystąpił problem.
Punkt przerwania
Stos wywołań ze wskazaniem obecnie wykonywanej funkcji i poprzednimi wywołaniami funkcji.
W następnej sekcji Kompilowanie dodatku DynamoRevit ze źródła omówimy konkretny przykład debugowania i wyjaśnimy, jak ustawiać punkty przerwania, krokowo wykonywać kod i odczytywać stos wywołań.
Ponieważ źródło dodatku Dynamo znajduje się w serwisie Github, najprostszym sposobem zaktualizowania lokalnych plików źródłowych jest ściągnięcie (pull) zmian za pomocą poleceń git.
Za pomocą tego wiersza polecenia ustaw repozytorium dodatku Dynamo jako katalog bieżący:
cd C:\Users\username\Documents\GitHub\Dynamo
Zastąp ciąg
"username"swoją nazwą użytkownika
Za pomocą następującego polecenia ściągnij najnowsze zmiany:
git pull origin master
Widać tutaj, że repozytorium lokalne zostało zaktualizowane o zmiany wprowadzone zdalnie.
Oprócz ściągania (pull) aktualizacji dostępne są cztery inne ważne procesy robocze, które warto znać.
Rozwidlanie (fork) repozytorium dodatku Dynamo umożliwiające utworzenie kopii oddzielnej od oryginału. Żadne zmiany wprowadzone w tym miejscu nie wpływają na repozytorium oryginalne, a aktualizacje można pobierać (fetch) lub przesyłać za pomocą próśb o ściągnięcie (pull). Rozwidlenie (fork) nie jest poleceniem narzędzia git, lecz procesem roboczym dodanym w serwisie GitHub — model używania rozwidlenia (fork) i prośby o ściągnięcie (pull) jest jednym z najpopularniejszych procesów roboczych wykorzystywanych przy współtworzeniu projektów open source w trybie online. Osoby chcące współtworzyć dodatek Dynamo powinny się z nim zapoznać.
Gałąź (branch) — pracuj nad eksperymentami lub nowymi elementami odizolowanymi od innych prac w gałęziach. Ułatwia to wysyłanie próśb o ściągnięcie (pull).
Często wykonuj zatwierdzenia (commit), szczególnie po ukończeniu jednostek pracy i po wprowadzeniu zmian mogących wymagać cofnięcia. Zatwierdzenie (commit) powoduje zarejestrowanie zmian w repozytorium i będzie widoczne podczas wysyłania prośby o ściągnięcie (pull) do repozytorium głównego dodatku Dynamo.
Twórz prośby o ściągnięcie (pull), gdy zmiany są gotowe do oficjalnego zaproponowania ich w repozytorium głównym dodatku Dynamo.
Zespół dodatku Dynamo utworzył szczegółowe instrukcje dotyczące tworzenia próśb o ściągnięcie (pull). Szczegółowe informacje na temat tego, co należy uwzględnić, można znaleźć w sekcji „Prośby o ściągnięcie (pull)” w tej dokumentacji.
Na tej stronie dokumentacji podano listę referencyjną poleceń narzędzia git.













Podczas pracy nad nową funkcją lub po prostu aktualizowania istniejącej zależności przed wprowadzeniem nowej zależności w repozytorium dodatku Dynamo należy ocenić następujące czynniki.
Jaka jest licencja nowej lub zaktualizowanej zależności — tylko niektóre licencje open source są zatwierdzane bez uprzedniej rozmowy z działem prawnym ADSK.
Po rozwiązaniu problemu z licencją upewnij się, że zależność i wersja są zapisane na wewnętrznej stronie wiki.
Jeśli licencja to LGPL, GPL lub Apache, plik licencji musi zostać skopiowany do podfolderu „Open Source Licenses” kompilacji dodatku Dynamo.
Jeśli licencja to LGPL, pełny kod źródłowy wszystkich komponentów producentów zewnętrznych wraz z treścią tekstową ich odpowiednich licencji open source musi zostać przekazany do www.autodesk.com/lgplsource
W przypadku aktualizacji: czy typ licencji zmienił się w stosunku do poprzedniej wersji?
Czy zależność jest międzyplatformowa?
Czy ma natywne komponenty (takie jak CEFSharp lub ImageMagick)? Utrudni to wdrażanie na wielu platformach
Czy ma odniesienia tylko do systemu Windows? W takim przypadku nie powinna funkcjonować jako zależność od DynamoCore lub innych wieloplatformowych części dodatku Dynamo (warstwy modelu).
Czy zależność jest poprawnie pakowana w folderze bin podczas kompilacji ze wszystkimi wymaganymi zależnościami?
W przypadku aktualizacji: czy jakieś pliki są usuwane w wyniku aktualizacji? Czy ta wersja dodatku Dynamo jest przeznaczona dla wersji przyrostowych produktów nadrzędnych? Jeśli tak, musisz zachować stare pliki binarne do roku premiery globalnej, aby obsługiwać instalatory poprawek. Zobacz tutaj.
Czy zależność lub jej drzewo zależności nie koliduje z innymi istniejącymi zależnościami w dodatku Dynamo?
Czy zależność lub jej drzewo zależności nie jest w konflikcie z istniejącymi zależnościami w produktach, które integrują dodatek Dynamo w procesie (Revit, Civil itp.) — jest to ważne, ponieważ te problemy można wykryć tylko w czasie integracji, chyba że praca jest wykonywana na początku.
Pliki źródłowe dodatku DynamoRevit są również przechowywane w witrynie DynamoDS w serwisie GitHub dla programistów, którzy mogą współtworzyć dodatek i kompilować wersje beta. Kompilowanie dodatku DynamoRevit ze źródła zazwyczaj przebiega tak samo jak w przypadku dodatku Dynamo, z wyjątkiem kilku ważnych szczegółów:
Dodatek DynamoRevit odwołuje się do zespołów dodatku Dynamo, dlatego należy go utworzyć za pomocą zgodnych pakietów NuGet. Na przykład dodatek DynamoRevit 2.x nie zostanie wczytany do dodatku Dynamo 1.3.
Dodatek DynamoRevit jest powiązany z konkretną wersją programu Revit, na przykład: gałąź dodatku DynamoRevit 2018 powinna być uruchamiana w programie Revit 2018.
W tym podręczniku używamy następujących składników:
Revit 2023
Najnowsza kompilacja dodatku DynamoRevit w gałęzi Revit2023
Najnowsza kompilacja dodatku Dynamo
Aby zapewnić pomyślną kompilację, sklonujemy i skompilujemy repozytoria dodatku Dynamo i dodatku DynamoRevit, które będą używane w tym przewodniku.
Uwaga: ręczne skompilowanie dodatku Dynamo przed rozpoczęciem kompilowania dodatku DynamoRevit jest wymagane tylko w przypadku kompilowania dodatków Dynamo 1.x i DynamoRevit 1.x — nowsze wersje repozytorium DynamoRevit używają Menedżera pakietów NuGet do obsługi zależności dodatku Dynamo wymaganych do skompilowania. Mimo że skompilowanie dodatku DynamoRevit 2.x nie wymaga ręcznego ściągnięcia (pull) dodatku Dynamo, nadal są potrzebne podstawowe biblioteki (dlls) w innym miejscu, aby faktycznie uruchomić składnik add-in dodatku DynamoRevit — warto więc jednak ściągnąć i skompilować dodatek Dynamo. Zobacz więcej poniżej: Kompilowanie repozytorium za pomocą programu Visual Studio
Kod projektu DynamoRevit znajduje się w serwisie Github w repozytorium oddzielnym od podstawowego kodu źródłowego dodatku Dynamo. To repozytorium zawiera pliki źródłowe dla węzłów charakterystycznych dla programu Revit i dodatek programu Revit, który wczytuje dodatek Dynamo. Kompilacje dodatku DynamoRevit dla różnych wersji programu Revit (na przykład 2016, 2017 lub 2018) są zorganizowane jako gałęzie w repozytorium.
Źródło dodatku DynamoRevit znajduje się tutaj: https://github.com/DynamoDS/DynamoRevit
Klonowanie lub pobieranie repozytorium
Gałęzie dodatku DynamoRevit odnoszą się do wersji programu Revit
W procesie podobnym do ściągania (pull) repozytorium dodatku Dynamo użyjemy polecenia git clone, aby sklonować dodatek DynamoRevit i określić gałąź, która odpowiada używanej wersji programu Revit. Aby rozpocząć, otworzymy interfejs wiersza polecenia i ustawimy jako bieżący katalog, do którego mają zostać sklonowane pliki.
Polecenie cd C:\Users\username\Documents\GitHub zmienia katalog bieżący
Zastąp ciąg
usernameswoją nazwą użytkownika
Teraz możemy sklonować repozytorium do tego katalogu. Mimo że musimy określić gałąź repozytorium, po sklonowaniu możemy przejść do tej gałęzi.
Polecenie git clone https://github.com/DynamoDS/DynamoRevit.git klonuje repozytorium ze zdalnego adresu URL i domyślnie przełącza do głównej gałęzi.
Po zakończeniu klonowania repozytorium zmień katalog bieżący na folder repozytorium i przełącz na gałąź odpowiadającą zainstalowanej wersji programu Revit. W tym przykładzie używamy programu Revit RC2.13.1_Revit2023. Wszystkie gałęzie zdalne można wyświetlić na stronie serwisu Github w menu rozwijanym Branch (Gałąź).
Polecenie cd C:\Users\username\Documents\GitHub\DynamoRevit zmienia katalog na DynamoRevit.
Polecenie git checkout RC2.13.1_Revit2023 ustawia bieżącą gałąź RC2.13.1_Revit2023.
Polecenie git branch sprawdza, w której gałęzi pracujemy, i wyświetla inne istniejące lokalnie.
Gałąź z gwiazdką jest obecnie wyrejestrowana. Wyświetlana jest gałąź
Revit2018, ponieważ wcześniej ją wyrejestrowano, więc istnieje ona lokalnie.
Ważne jest wybranie właściwej gałęzi repozytorium, aby zapewnić, że podczas kompilowania projektu w programie Visual Studio będzie on odwoływał się do zespołów we właściwej wersji katalogu instalacyjnego programu Revit, w szczególności do plików RevitAPI.dll i RevitAPIUI.dll.
Przed skompilowaniem repozytorium musimy przywrócić pakiety NuGet za pomocą pliku restorepackages.bat znajdującego się w folderze src. Ten plik bat wykorzystuje Menedżera pakietów NuGet do ściągnięcia (pull) skompilowanych plików binarnych podstawowych elementów dodatku Dynamo wymaganych przez dodatek DynamoRevit. Można również zdecydować się na skompilowanie ich ręcznie, ale tylko w przypadku wprowadzania zmian w dodatku DynamoRevit, a nie w elementach podstawowych dodatku Dynamo. Dzięki temu można szybciej rozpocząć pracę. Ten plik należy uruchomić z uprawnieniami administratora.
Kliknij prawym przyciskiem myszy plik
restorepackages.bati wybierz polecenieRun as administrator
Jeśli pakiety zostaną pomyślnie przywrócone, do folderu src zostanie dodany folder packages z najnowszymi pakietami beta NuGet.
Najnowsze pakiety NuGet dodatku Dynamo w wersji beta
Po przywróceniu pakietów otwórz plik rozwiązania programu Visual Studio DynamoRevit.All.sln w folderze src i skompiluj rozwiązanie. Kompilacja może początkowo mieć problemy ze znalezieniem pliku AssemblySharedInfo.cs. W takim przypadku ponowne uruchomienie kompilacji rozwiąże ten problem.
Wybierz opcję
Build > Build SolutionSprawdź, czy kompilacja została zakończona pomyślnie w oknie danych wyjściowych. Komunikat powinien wyglądać tak:
===== Build: 13 succeeded, 0 failed, 0 up-to-date, 0 skipped =====.
Program Revit wymaga pliku dodatku w celu rozpoznania dodatku DynamoRevit. Instalator tworzy go automatycznie. W trakcie opracowywania musimy ręcznie utworzyć plik dodatku, który wskazuje kompilację dodatku DynamoRevit, której chcemy użyć, a konkretnie zespół DynamoRevitDS.dll. Musimy również wskazać dodatkowi DynamoRevit kompilację dodatku Dynamo.
Utwórz plik Dynamo.addin w folderze dodatku programu Revit znajdującym się w katalogu C:\ProgramData\Autodesk\Revit\Addins\2023. Zainstalowano już wersję dodatku DynamoRevit, dlatego wystarczy edytować istniejący plik, aby wskazać nową kompilację.
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<RevitAddIns>
<AddIn Type="Application">
<Name>Dynamo For Revit</Name>
<Assembly>"C:\Users\username\Documents\GitHub\DynamoRevit\bin\AnyCPU\Debug\Revit\DynamoRevitDS.dll"</Assembly>
<AddInId>8D83C886-B739-4ACD-A9DB-1BC78F315B2B</AddInId>
<FullClassName>Dynamo.Applications.DynamoRevitApp</FullClassName>
<VendorId>ADSK</VendorId>
<VendorDescription>Dynamo</VendorDescription>
</AddIn>
</RevitAddIns>Określ ścieżkę pliku DynamoRevitDS.dll wewnątrz tagu <Assembly>...</Assembly>.
Ewentualnie można skonfigurować w dodatku wczytywanie selektora wersji zamiast określonego zespołu.
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<RevitAddIns>
<AddIn Type="Application">
<Name>Dynamo For Revit</Name>
<Assembly>"C:\Users\username\Documents\GitHub\DynamoRevit\bin\AnyCPU\Debug\Revit\DynamoRevitVersionSelector.dll"</Assembly>
<AddInId>8D83C886-B739-4ACD-A9DB-1BC78F315B2B</AddInId>
<FullClassName>Dynamo.Applications.VersionLoader</FullClassName>
<VendorId>ADSK</VendorId>
<VendorDescription>Dynamo</VendorDescription>
</AddIn>
</RevitAddIns>Ustaw ścieżkę pliku w tagu <Assembly>...</Assembly> na DynamoRevitVersionSelector.dll
Tag <FullClassName>...</FullClassName> określa klasę, której wystąpienie należy utworzyć na podstawie zespołu wskazanego za pomocą powyższej ścieżki elementu Assembly. Ta klasa będzie punktem wejścia dla dodatku.
Ponadto musimy usunąć istniejący dodatek Dynamo dostarczany z programem Revit. Aby to zrobić, przejdź do folderu C:\\Program Files\Autodesk\Revit 2023\AddIns i usuń dwa foldery zawierające dodatek Dynamo — DynamoForRevit i DynamoPlayerForRevit. Można je usunąć lub utworzyć ich kopię zapasową w oddzielnym folderze na wypadek późniejszej potrzeby odzyskania oryginalnego dodatku Dynamo dla programu Revit.
Drugim krokiem jest dodanie ścieżki pliku dla zespołów podstawowych dodatku Dynamo do pliku Dynamo.config w folderze bin dodatku DynamoRevit. Dodatek DynamoRevit wczyta je po otwarciu go w programie Revit. Ten plik konfiguracyjnego umożliwia wskazanie dodatkowi DynamoRevit różnych wersji dodatku Dynamo na potrzeby opracowywania i testowania zmian zarówno w dodatku podstawowym, jak i w dodatku DynamoRevit.
Kod powinien wyglądać następująco:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="DynamoRuntime" value="C:\Users\username\Documents\GitHub\Dynamo\bin\AnyCPU\Debug"/>
</appSettings>
</configuration>Dodaj ścieżkę katalogu folderu bin do części <add key/>
Tuż przed przystąpieniem do tego przewodnika sklonowaliśmy i skompilowaliśmy dodatek Dynamo, aby zapewnić jego sprawne współdziałanie z dodatkiem DynamoRevit. Ta ścieżka katalogu wskazuje tę kompilację.
Teraz po otwarciu programu Revit na karcie Zarządzaj powinien istnieć dodatek Dynamo.
Wybierz opcję
ManageKliknij ikonę dodatku Dynamo
Wystąpienie dodatku DynamoRevit
Jeśli pojawia się okno dialogowe błędu brakujących zespołów, prawdopodobnie występuje niezgodność między wersjami dodatku DynamoCore, przy których wykonywano kompilację, a tymi, które są wczytywane w środowisku wykonywania. Na przykład dodatek DynamoRevit z najnowszymi pakietami beta w wersji 2.0 dodatku DynamoCore nie będzie działać w przypadku uruchomienia go za pomocą dodatku bibliotek dll dodatku Dynamo 1.3. Upewnij się, że oba repozytoria są w tej samej wersji, a dodatek DynamoRevit ściąga (pull) zgodną wersję zależności NuGet. Są one zdefiniowane w pliku package.json repozytorium DynamoRevit.
W poprzedniej sekcji, Kompilowanie dodatku Dynamo ze źródła, krótko omówiono debugowanie w programie Visual Studio i sposób dołączania programu Visual Studio do procesu. Używając wyjątku w węźle Wall.ByCurveAndHeight jako przykładu, omówimy sposób dołączania do procesu, ustawiania punktów przerwania, krokowe wykonywanie kodu i używania stosu wywołań w celu określenia źródła wyjątku. Te narzędzia debugowania mają ogólne zastosowanie do procesów roboczych opracowywania rozwiązań .net i warto zapoznać się z nimi w zakresie wykraczającym poza ten podręcznik.
Dołączenie do procesu umożliwia połączenie uruchomionej aplikacji z programem Visual Studio w celu debugowania. Aby debugować zachowanie występujące w kompilacji dodatku DynamoRevit, można otworzyć pliki źródłowe dodatku DynamoRevit w programie Visual Studio i dołączyć proces Revit.exe, który jest procesem nadrzędnym dodatku DynamoRevit. Program Visual Studio używa pliku symboli (.pbd), aby utworzyć połączenie między zespołami wykonywanymi w dodatku DynamoRevit a kodem źródłowym.
Punkty przerwania określają wiersze w kodzie źródłowym, w których działanie aplikacji zostanie wstrzymane przed dalszym wykonywaniem. Jeśli węzeł powoduje awarię dodatku DynamoRevit lub zwracanie przez niego nieoczekiwanego wyniku, można dodać do źródła węzła punkt przerwania, aby wstrzymać proces, przejść do kodu i sprawdzić wartości zmiennych na żywo aż do znalezienia źródła problemu.
Krokowe wykonywanie kodu to przechodzenie przez źródło wiersz po wierszu. Możemy uruchamiać funkcje pojedynczo, wchodzić krokowo do wywołania funkcji lub wyskakiwać z aktualnie wykonywanej funkcji.
Stos wywołań pokazuje funkcję obecnie uruchomioną w procesie w odniesieniu do poprzednich wywołań funkcji, które wywołały tę funkcję. W programie Visual Studio jest to wyświetlane w oknie stosu wywołań. Jeśli na przykład dojdziemy do wyjątku poza kodem źródłowym, pojawi się ścieżka do kodu wywołującego w stosie wywołań.
„2,000 Things You Should Know About C#” (2000 rzeczy, które należy wiedzieć o języku C#): tu znajdziesz bardziej szczegółowe wyjaśnienie stosów wywołań
Węzeł Wall.ByCurveAndHeight zgłasza wyjątek po przekazaniu mu krzywej PolyCurve jako krzywej wejściowej (curve) i zwraca komunikat: „To BSPlineCurve Not Implemented” (Nie zaimplementowano do BSPlineCurve). Podczas debugowania możemy ustalić, dlaczego dokładnie węzeł nie akceptuje tego typu geometrii jako danych wejściowych dla parametru krzywej (curve). W tym przykładzie założono, że dodatek DynamoRevit pomyślnie skompilowano i można go uruchomić jako dodatek dla programu Revit.
Węzeł Wall.ByCurveAndHeight zgłasza wyjątek
Rozpocznij od otwarcia pliku rozwiązania DynamoRevit.All.sln, uruchom program Revit i uruchom dodatek DynamoRevit. Następnie dołącz program Visual Studio do procesu programu Revit za pomocą okna Attach to Process.
Program Revit i dodatek DynamoRevit muszą być uruchomione, aby były widoczne jako dostępne procesy
Otwórz okno
Attach to Process, wybierając opcjęDebug > Attach to Process...Ustaw opcję
Transportna wartośćDefaultWybierz opcję
Revit.exeWybierz opcję
Attach
Po dołączeniu programu Visual Studio do programu Revit otwórz kod źródłowy węzła Wall.ByCurveAndHeight w pliku Wall.cs. Tę zawartość można znaleźć w Eksploratorze rozwiązań w części Libraries > RevitNodes > Elements w obszarze Public static constructors pliku. Ustaw punkt przerwania w konstruktorze typu wall, tak aby po uruchomieniu węzła w dodatku Dynamo proces został przerwany i można było krokowo wykonać poszczególne wiersze kodu. Nazwy konstruktorów typów Zero-Touch dodatku Dynamo zazwyczaj zaczynają się od By<parameters>.
Plik klasy z konstruktorem dla węzła Wall.ByCurveAndHeight
Ustaw punkt przerwania, klikając po lewej stronie numeru wiersza lub klikając prawym przyciskiem myszy wiersz kodu i wybierając polecenie
Breakpoint > Insert Breakpoint.
Po ustawieniu punktu przerwania należy zadbać o to, aby proces przebiegł przez funkcję Wall.ByCurveAndHeight. Funkcję można ponownie wykonać w dodatku Dynamo, ponownie łącząc przewód do jednego z portów węzła, co spowoduje ponowne uruchomienie tego węzła. W programie Visual Studio zostanie wyzwolony punkt przerwania.
Ikona punktu przerwania zmienia się po jego wyzwoleniu
Okno stosu wywołań z następną metodą
Teraz krokowo wykonuj poszczególne wiersze w konstruktorze, aż zostanie zwrócony wyjątek. Kod wyróżniony na żółto to następna instrukcja do uruchomienia.
Narzędzia do debugowania do nawigowania po kodzie
Naciśnij opcję
Step Over, aby uruchomić wyróżniony kod, a następnie wstrzymać wykonywanie po zwróceniu przez funkcję wynikuNastępna instrukcja do uruchomienia oznaczona żółtym wyróżnieniem i strzałką
Jeśli będziemy kontynuować wykonywanie krokowe, w końcu zostanie zwrócony wyjątek, który pojawił się wcześniej w oknie dodatku DynamoRevit. W oknie stosu wywołań widać, że wyjątek został pierwotnie zwrócony z metody o nazwie Autodesk.Revit.CurveAPIUtils.CreateNurbsCurve. Na szczęście wyjątek jest tutaj obsługiwany, więc dodatek Dynamo nie uległ awarii. Proces debugowania zapewnił kontekst dla problemu, przenosząc nas do innej metody w kodzie źródłowym.
Ponieważ nie jest to biblioteka open source, nie możemy tam wprowadzać zmian. Mamy teraz więcej informacji, więc możemy zgłosić problem z szerszym kontekstem, zgłaszając problem w serwisie GitHub, lub zaproponować obejście tego problemu, wysyłając prośbę o ściągnięcie (pull).
Po dotarciu do instrukcji powodującej wyjątek w pliku
Walls.csproces debugowania maksymalnie przybliża nas do problemu źródłowego w kodzie użytkownika w plikuProtoToRevitCurve.cs.Instrukcja powodująca wyjątek w pliku
ProtoToRevitCurve.csW oknie stosu wywołań widać, że wyjątek pochodzi z kodu innego niż kod użytkownika
Okno podręczne z informacjami o wyjątku
Ten proces można zastosować do wszystkich plików źródłowych, z którymi pracujemy. W przypadku tworzenia biblioteki węzłów Zero-Touch dla programu Dynamo Studio można otworzyć źródło biblioteki i dołączyć proces dodatku Dynamo w celu debugowania tej biblioteki węzłów. Nawet jeśli wszystko działa doskonale, debugowanie to doskonały sposób na przeglądanie kodu i analizowanie jego działania.
Proces ten jest niemal identyczny jak w przypadku ściągania (pull) zmian dla dodatku Dynamo, ale należy upewnić się, że jest używana właściwa gałąź. Użyj polecenia git branch w repozytorium DynamoRevit, aby sprawdzić, które gałęzie są dostępne lokalnie i które są obecnie wyrejestrowane.
Polecenie cd C:\Users\username\Documents\GitHub\DynamoRevit ustawia repozytorium DynamoRevit jako katalog bieżący.
Polecenie git branch sprawdza, czy używana jest właściwa gałąź, czyli RC2.13.1_Revit2023.
Polecenie git pull origin RC2.13.1_Revit2023 ściąga zmiany z gałęzi RC2.13.1_Revit2023 zdalnej wersji oryginalnej.
Wersja oryginalna wskazuje po prostu adres URL sklonowanej wersji oryginalnej.
Najlepiej jest pilnować tego, która gałąź jest używana i z której jest ściągana (pull) zawartość, aby na przykład uniknąć ściągnięcia zmian z gałęzi
RC2.13.1_Revit2023do wersjiRevit2018.
Jak wspomniano w temacie Kompilowanie dodatku Dynamo ze źródła, gdy wszystko będzie gotowe do przesłania zmiany do repozytorium DynamoRevit, można utworzyć prośbę o ściągnięcie zgodnie z wytycznymi zespołu dodatku Dynamo podanymi w sekcji „Prośby o ściągnięcie (pull)”.

















