Rozszerzenia dodatku Dynamo można wdrażać w Menedżerze pakietów, tak jak zwykłe biblioteki węzłów dodatku Dynamo. Jeśli zainstalowany pakiet zawiera rozszerzenie widoku, jest ono wczytywane podczas wykonywania wraz z wczytaniem dodatku Dynamo. Aby upewnić się, że rozszerzenie zostało poprawnie wczytane, można sprawdzić konsolę dodatku Dynamo.
Struktura pakietu rozszerzenia jest taka sama jak zwykłego pakietu i zawiera:
Przy założeniu, że już skompilowano rozszerzenie, będzie istnieć (co najmniej) zespół .NET i plik manifestu. Zespół powinien zawierać klasę z zaimplementowanym interfejsem IViewExtension
lub IExtension
. Plik manifestu .XML informuje dodatek Dynamo, wystąpienie której klasy ma utworzyć w celu uruchomienia rozszerzenia. Aby Menedżer pakietów poprawnie zlokalizował rozszerzenie, plik manifestu powinien być w pełni zgodny z położeniem zespołu i nazewnictwem.
Umieść wszystkie pliki zespołu w folderze bin
, a pliki manifestu w folderze extra
. W tym folderze można również umieścić wszelkie dodatkowe zasoby.
Przykładowy plik manifestu .XML:
Po utworzeniu folderu zawierającego podkatalogi opisane powyżej wszystko jest gotowe do wysłania (przekazania) do Menedżera pakietów. Należy jednak pamiętać, że obecnie nie można publikować pakietów z trybu Dynamo Sandbox. Oznacza to, że należy używać dodatku Dynamo Revit. W dodatku Revit Dynamo przejdź do opcji Packages (Pakiety) => Publish New Package (Publikuj nowy pakiet). Spowoduje to wyświetlenie monitu o zalogowanie się na koncie Autodesk, z którym ma zostać skojarzony pakiet.
W tym momencie powinno być wyświetlone normalne okno publikowania pakietu, w którym należy wypełnić wszystkie wymagane pola dotyczące pakietu/rozszerzenia. Bardzo ważną dodatkową czynnością jest upewnienie się, że żaden plik zespołu nie jest oznaczony jako biblioteka węzłów. W tym celu kliknij prawym przyciskiem myszy zaimportowane pliki (folder pakietu utworzony powyżej). Zostanie wyświetlone menu kontekstowe, które umożliwia zaznaczenie (lub cofnięcie zaznaczenia) tej opcji. Żadne zespoły rozszerzenia nie powinny być zaznaczone.
Przed opublikowaniem publicznie należy zawsze opublikować lokalnie, aby upewnić się, że wszystko działa zgodnie z oczekiwaniami. Gdy to zostanie już sprawdzone, możesz wysłać pakiet w świat, wybierając opcję publikowania.
Aby upewnić się, że pakiet został pomyślnie przekazany, potwierdź, że możesz wyszukać go na podstawie nazw i słów kluczowych określonych w kroku publikowania. Na koniec należy pamiętać, że do działania niektórych rozszerzeń wymagane jest ponowne uruchomienie dodatku Dynamo. Zazwyczaj te rozszerzenia wymagają określenia parametrów podczas uruchamiania dodatku Dynamo.
Jeśli opracowujesz zespoły, które mają być publikowane jako pakiet dla dodatku Dynamo, projekt można skonfigurować tak, aby zgrupować wszystkie niezbędne zasoby i umieścić je w strukturze katalogów zgodnej z pakietem. Dzięki temu projekt zostanie szybko przetestowany jako pakiet i będzie mógł symulować środowisko użytkownika.
Istnieją dwie metody kompilowania pakietu w programie Visual Studio:
Dodanie zdarzeń po kompilacji za pomocą okna dialogowego ustawień projektu, w których niezbędne pliki są kopiowane za pomocą polecenia xcopy lub skryptów w języku Python
Utworzenie zadań kopiowania plików i katalogów za pomocą obiektu docelowego kompilacji „AfterBuild” w pliku .csproj
Opcja „AfterBuild” jest metodą preferowaną w przypadku tych typów operacji (i to ją opisano w tym podręczniku), ponieważ nie jest oparta na kopiowaniu plików, które może nie być dostępne na komputerze kompilacji.
Skonfiguruj strukturę katalogów w repozytorium, tak aby pliki źródłowe były oddzielone od plików pakietu. Używając analizy przypadku CustomNodeModel, umieść projekt programu Visual Studio i wszystkie skojarzone pliki w nowym folderze src
. Wszystkie pakiety wygenerowane przez projekt będą zapisywane w tym folderze. Struktura folderów powinna teraz wyglądać tak:
Przenieś pliki projektu do nowego folderu
src
Pliki źródłowe znajdują się już w oddzielnym folderze. Dodaj obiekt docelowy AfterBuild
do pliku CustomNodeModel.csproj
w programie Visual Studio. Powinno to spowodować skopiowanie potrzebnych plików do nowego folderu pakietu. Otwórz plik CustomNodeModel.csproj
w edytorze tekstu (użyliśmy edytora Atom) i umieść obiekt docelowy kompilacji przed tagiem zamykającym </Project>
. Ten obiekt docelowy AfterBuild spowoduje skopiowanie wszystkich plików .dll, .pbd, .xml i .config do nowego folderu bin oraz utworzenie folderów dyf i extra.
Musimy upewnić się, że obiekt docelowy dodano do pliku
CustomNodeModel.csproj
(a nie innego pliku projektu) i że projekt nie ma żadnych istniejących ustawień po kompilacji (Post-Build).
Umieść element AfterBuild przed tagiem zamykającym
</Project>
.
W sekcji <ItemGroup>
zdefiniowano szereg zmiennych reprezentujących określone typy plików. Na przykład zmienna Dll
reprezentuje wszystkie pliki w katalogu wyjściowym mające rozszerzenie .dll
.
Zadanie Copy
polega na skopiowaniu wszystkich plików .dll
do katalogu, a konkretnie do folderu kompilowanego pakietu.
Pakiety dodatku Dynamo zazwyczaj zawierają foldery dyf
i extra
na węzły niestandardowe dodatku Dynamo i inne zasoby, takie jak obrazy. Aby utworzyć te foldery, należy użyć zadania MakeDir
. To zadanie utworzy folder, jeśli on nie istnieje. Pliki można dodać do tego folderu ręcznie.
W przypadku kompilowania projektu folder projektu powinien teraz zawierać folder packages
obok utworzonego wcześniej folderu src
. W katalogu packages
znajduje się folder zawierający wszystkie elementy potrzebne do utworzenia pakietu. Musimy również skopiować plik pkg.json
do folderu pakietu, aby dodatek Dynamo wiedział, że ma wczytać pakiet.
Nowy folder packages utworzony przez obiekt docelowy AfterBuild
Istniejący folder src z projektem
Foldery
dyf
iextra
utworzone z obiektu docelowego AfterBuildRęcznie skopiuj plik
pkg.json
.
Teraz można opublikować pakiet za pomocą Menedżera pakietów dodatku Dynamo lub bezpośrednio skopiować go do katalogu pakietu dodatku Dynamo: <user>\AppData\Roaming\Dynamo\1.3\packages
.
Pakiety to wygodny sposób przechowywania węzłów i udostępniania ich społeczności dodatku Dynamo. Pakiet może zawierać wszystko, od węzłów niestandardowych utworzonych w obszarze roboczym dodatku Dynamo po węzły pochodne od klasy NodeModel. Pakiety publikuje się i instaluje za pomocą Menedżera pakietów. Oprócz tej strony, także przewodnik Primer zawiera ogólne wskazówki dotyczące pakietów.
Menedżer pakietów dodatku Dynamo to rejestr oprogramowania (podobny do programu npm), do którego można uzyskać dostęp z poziomu dodatku Dynamo lub w przeglądarce internetowej. Menedżer pakietów umożliwia instalowanie, publikowanie, aktualizowanie i przeglądanie pakietów. Podobnie jak w przypadku programu npm, obsługuje on różne wersje pakietów. Pomaga również w zarządzaniu zależnościami projektu.
W przeglądarce wyszukaj pakiety i wyświetl statystyki: https://dynamopackages.com/
W dodatku Dynamo Menedżer pakietów umożliwia instalowanie, publikowanie i aktualizowanie pakietów.
Wyszukaj pakiety online:
Packages > Search for a Package...
Wyświetl/edytuj zainstalowane pakiety:
Packages > Manage Packages...
Opublikuj nowy pakiet:
Packages > Publish New Package...
Pakiety publikuje się z poziomu Menedżera pakietów w dodatku Dynamo. Zalecanym procesem jest opublikowanie pakietu lokalnie, przetestowanie go, a następnie opublikowanie go online w celu udostępnienia go społeczności. Korzystając z analizy przypadku NodeModel, wykonamy czynności niezbędne do opublikowania węzła RectangularGrid jako pakietu lokalnie, a następnie w trybie online.
Uruchom dodatek Dynamo i wybierz opcję Packages > Publish New Package...
, aby otworzyć okno Publish a Package
.
Wybierz opcję
Add file...
, aby wyszukać pliki, które mają zostać dodane do pakietuWybierz dwa pliki
.dll
z analizy przypadku NodeModelWybierz przycisk
Ok
Po dodaniu plików do zawartości pakietu nadaj pakietowi nazwę oraz dodaj do niego opis i wersję. Opublikowanie pakietu przy użyciu dodatku Dynamo powoduje automatyczne utworzenie pliku pkg.json
.
Pakiet gotowy do opublikowania.
Podaj wymagane informacje dotyczące nazwy, opisu i wersji.
Opublikuj, klikając opcję „Opublikuj lokalnie” i wybierając folder pakietu dodatku Dynamo:
AppData\Roaming\Dynamo\Dynamo Core\1.3\packages
, aby węzeł był dostępny w składniku Core. Dopóki pakiet nie będzie gotowy do udostępnienia, zawsze publikuj lokalnie.
Po opublikowaniu pakietu węzły będą dostępne w bibliotece dodatku Dynamo w kategorii CustomNodeModel
.
Właśnie utworzony pakiet w bibliotece dodatku Dynamo
Gdy pakiet będzie gotowy do opublikowania w trybie online, otwórz Menedżera pakietów i wybierz opcję Publish
, a następnie opcję Publish Online
.
Aby sprawdzić, jak dodatek Dynamo sformatował pakiet, kliknij pionowy trzykropek po prawej stronie pozycji „CustomNodeModel” i wybierz opcję „Pokaż katalog główny”.
Wybierz opcję
Publish
, a następnie opcjęPublish Online
w oknie „Publikowanie pakietów Dynamo”.Aby usunąć pakiet, wybierz opcję
Delete
.
Aktualizowanie pakietu jest procesem podobnym do publikowania. Otwórz Menedżera pakietów i wybierz opcję Publish Version...
dla pakietu wymagającego aktualizacji, a następnie wprowadź nowszą wersję.
Wybierz opcję
Publish Version
, aby zaktualizować istniejący pakiet o nowe pliki w katalogu głównym, a następnie określ, czy ma on zostać opublikowany lokalnie, czy online.
Klient internetowy Menedżera pakietów służy wyłącznie do wyszukiwania i wyświetlania danych pakietu, na przykład informacji o wersjach i statystyki pobierania.
Dostęp do klienta internetowego Menedżera pakietów można uzyskać za pomocą tego linku: https://dynamopackages.com/