Przed rozpoczęciem prac nad rozwiązaniem należy opracować solidne podstawy dla nowego projektu. W społeczności programistów dodatku Dynamo dostępnych jest kilka szablonów projektów, które doskonale nadają się do rozpoczęcia pracy, ale jeszcze cenniejsza jest umiejętność rozpoczynania projektu od podstaw. Tworzenie projektu od podstaw pozwala lepiej zrozumieć proces opracowywania rozwiązania.
Program Visual Studio to zaawansowane środowisko IDE, w którym można tworzyć projekty, dodawać odwołania, kompilować biblioteki .dlls
i debugować. Podczas tworzenia nowego projektu program Visual Studio tworzy również rozwiązanie, czyli strukturę organizacyjną projektów. W jednym rozwiązaniu może istnieć wiele projektów i można je kompilować razem. Aby utworzyć węzeł ZeroTouch, należy rozpocząć nowy projekt programu Visual Studio, w którym zostanie napisana biblioteka klas języka C# i zostanie skompilowany plik .dll
.
Okno nowego projektu w programie Visual Studio
Zacznij od otwarcia programu Visual Studio i utworzenia nowego projektu:
File > New > Project
Wybierz szablon projektu
Class Library
Nadaj projektowi nazwę (w tym przypadku nazwaliśmy projekt MyCustomNode)
Ustaw ścieżkę pliku dla projektu. W tym przykładzie pozostawimy go w położeniu domyślnym
Wybierz przycisk
Ok
Program Visual Studio automatycznie utworzy i otworzy plik w języku C#. Należy nadać mu odpowiednią nazwę, skonfigurować obszar roboczy i zastąpić kod domyślny tą metodą mnożenia.
Otwórz Eksplorator rozwiązań i okna danych wyjściowych z poziomu obszaru
View
.W Eksploratorze rozwiązań po prawej stronie zmień nazwę pliku
Class1.cs
naSampleFunctions.cs
.Dodaj powyższy kod dla funkcji mnożenia. Szczegóły dotyczące tego, jak dodatek Dynamo będzie odczytywał klasy w języku C#, zostaną omówione później.
Eksplorator rozwiązań: umożliwia dostęp do wszystkich elementów w projekcie.
Okno danych wyjściowych: będzie potrzebne później, aby sprawdzić, czy kompilacja się powiodła.
Następnym krokiem jest skompilowanie projektu, ale wcześniej należy sprawdzić kilka ustawień. Najpierw upewnij się, że jako platformę docelową wybrano Any CPU
lub x64
i że opcja Prefer 32-bit
nie jest zaznaczona we właściwościach projektu.
Otwórz właściwości projektu, wybierając opcję
Project > "ProjectName" Properties
Wybierz stronę
Build
Wybierz z menu rozwijanego opcję
Any CPU
lubx64
Upewnij się, że opcja
Prefer 32-bit
nie jest zaznaczona
Teraz możemy skompilować projekt, aby utworzyć plik .dll
. Aby to zrobić, wybierz opcję Build Solution
z menu Build
lub użyj skrótu CTRL+SHIFT+B
.
Wybierz opcję
Build > Build Solution
Aby ustalić, czy projekt został pomyślnie skompilowany, należy sprawdzić okno danych wyjściowych
Jeśli projekt został pomyślnie skompilowany, w folderze projektu bin
będzie znajdować się plik .dll
o nazwie MyCustomNode
. W tym przykładzie pozostawiliśmy ścieżkę pliku projektu jako domyślną w programie Visual Studio: c:\users\username\documents\visual studio 2015\Projects
. Przyjrzyjmy się strukturze plików projektu.
Folder
bin
zawiera plik.dll
skompilowany w programie Visual Studio.Plik projektu programu Visual Studio.
Plik klasy.
Ponieważ jako konfigurację rozwiązania ustawiono
Debug
, plik.dll
zostanie utworzony w folderzebin\Debug
.
Teraz możemy otworzyć dodatek Dynamo i zaimportować plik .dll
. Za pomocą funkcji dodawania przejdź do położenia projektu bin
i wybierz plik .dll
, który chcesz otworzyć.
Wybierz przycisk Add (Dodaj), aby zaimportować plik
.dll
Przejdź do położenia projektu. Projekt znajduje się w domyślnej ścieżce pliku programu Visual Studio:
C:\Users\username\Documents\Visual Studio 2015\Projects\MyCustomNode
Wybierz plik
MyCustomNode.dll
do zaimportowaniaKliknij przycisk
Open
, aby wczytać plik.dll
Jeśli w bibliotece o nazwie MyCustomNode
została utworzona kategoria, plik .dll został zaimportowany pomyślnie. Dodatek Dynamo utworzył jednak dwa węzły z tego, co powinno być jednym węzłem. W następnej sekcji wyjaśnimy, dlaczego tak się dzieje i jak dodatek Dynamo odczytuje plik .dll.
Węzeł MyCustomNode w bibliotece dodatku Dynamo. Kategoria biblioteki jest określana przez nazwę pliku
.dll
.Węzeł SampleFunctions.MultiplyByTwo w obszarze rysunku.
Gdy dodatek Dynamo wczytuje plik .dll, wszystkie publiczne metody statyczne zostają uwidocznione jako węzły. Konstruktory, metody i właściwości zostają przekształcone w węzły odpowiednio Create (tworzenia), Action (operacji) i Query (zapytań). W tym przykładzie z mnożeniem metoda MultiplyByTwo()
staje się węzłem operacji w dodatku Dynamo. Dzieje się tak, ponieważ węzeł został nazwany na podstawie metody i klasy.
Nazwa danych wejściowych to
inputNumber
na podstawie nazwy parametru metody.Nazwa danych wyjściowych to domyślnie
double
, ponieważ jest to zwracany typ danych.Węzeł ma nazwę
SampleFunctions.MultiplyByTwo
, ponieważ takie są nazwy klasy i metody.
W powyższym przykładzie utworzono dodatkowy węzeł tworzenia, SampleFunctions
: nie udostępniliśmy konstruktora bezpośrednio, więc został on utworzony automatycznie. Można tego uniknąć, tworząc pusty konstruktor prywatny w klasie SampleFunctions
.
Dodatek Dynamo zaimportował metodę jako węzeł tworzenia
Ten węzeł mnożenia jest bardzo prosty i nie są wymagane żadne odwołania do dodatku Dynamo. Aby uzyskać dostęp do dowolnej funkcji dodatku Dynamo na przykład w celu utworzenia geometrii, należy odwołać się do pakietów NuGet dodatku Dynamo.
ZeroTouchLibrary — pakiet umożliwiający kompilowanie bibliotek węzłów Zero-Touch dla dodatku Dynamo, który zawiera następujące biblioteki: DynamoUnits.dll, ProtoGeometry.dll
WpfUILibrary — pakiet umożliwiający kompilowanie bibliotek węzłów dla dodatku Dynamo z niestandardowym interfejsem użytkownika w pliku WPF, który zawiera następujące biblioteki: DynamoCoreWpf.dll, CoreNodeModels.dll, CoreNodeModelWpf.dll
DynamoServices — biblioteka DynamoServices dla dodatku Dynamo
Core — infrastruktura testów jednostkowych i systemowych dla dodatku Dynamo, która zawiera następujące biblioteki: DSIronPython.dll, DynamoApplications.dll, DynamoCore.dll, DynamoInstallDetective.dll, DynamoShapeManager.dll, DynamoUtilities.dll, ProtoCore.dll, VMDataBridge .dll
Tests — infrastruktura testów jednostkowych i systemowych dla dodatku Dynamo, która zawiera następujące biblioteki: DynamoCoreTests.dll, SystemTestServices.dll, TestServices.dll
DynamoCoreNodes — pakiet umożliwiający kompilowanie węzłów podstawowych dodatku Dynamo, który zawiera następujące biblioteki: Analysis.dll, GeometryColor.dll, DSCoreNodes.dll
Aby utworzyć odwołanie do tych pakietów w projekcie programu Visual Studio, należy pobrać pakiet z witryny NuGet za pomocą powyższych linków i ręcznie utworzyć odwołanie do plików .dll lub użyć Menedżera pakietów NuGet w programie Visual Studio. Najpierw omówimy sposób ich instalowania za pomocą menedżera NuGet w programie Visual Studio.
Otwórz Menedżera pakietów NuGet, wybierając opcję
Tools > NuGet Package Manager > Manage NuGet Packages for Solution...
To jest Menedżer pakietów NuGet. W tym oknie wyświetlane są pakiety zainstalowane dla projektu. Użytkownik może w nim też przeglądać inne pakiety. Jeśli zostanie wydana nowa wersja pakietu DynamoServices, w tym miejscu można zaktualizować pakiety lub przywrócić ich wcześniejszą wersję.
Wybierz opcję przeglądania i wyszukaj dodatek DynamoVisualProgramming, aby wywołać pakiety dodatku Dynamo.
Pakiety dodatku Dynamo. Wybranie jednego z nich spowoduje wyświetlenie bieżącej wersji i opisu zawartości.
Wybierz potrzebną wersję pakietu i kliknij przycisk instalowania. Spowoduje to zainstalowanie pakietu dla określonego projektu, w którym pracujesz. Używasz najnowszej stabilnej wersji dodatku Dynamo w wersji 1.3, więc wybierz odpowiednią dla niej wersję pakietu.
Aby ręcznie dodać pakiet pobrany z przeglądarki, otwórz Menedżera odnośników w Eksploratorze rozwiązań i wyszukaj pakiet.
Kliknij prawym przyciskiem myszy opcję
References
i wybierz polecenieAdd Reference
.Wybierz opcję
Browse
, aby przejść do lokalizacji pakietu.
Program Visual Studio jest teraz właściwie skonfigurowany i pomyślnie dodano plik .dll
do dodatku Dynamo, więc mamy dobrze przygotowane środowisko do dalszej pracy. Jest to dopiero początek, dlatego postępuj zgodnie z instrukcjami, aby dowiedzieć się więcej na temat tworzenia węzła niestandardowego.