Bevor wir mit der Entwicklung beginnen, ist es wichtig, ein solides Fundament für ein neues Projekt zu schaffen. Die Dynamo-Entwickler-Community verfügt über mehrere Projektvorlagen, die sich hervorragend als Ausgangspunkt eignen. Ein umfassendes Verständnis, wie Sie ein Projekt von Grund auf neu beginnen, ist jedoch noch wertvoller. Der Aufbau eines Projekts von Grund auf ermöglicht ein tieferes Verständnis des Entwicklungsprozesses.
Visual Studio ist eine leistungsstarke IDE, in der wir ein Projekt erstellen, Referenzen hinzufügen, .dll
-Dateien generieren und debuggen können. Beim Erstellen eines neuen Projekts erstellt Visual Studio außerdem eine Projektmappe, eine Struktur zum Organisieren von Projekten. In einer einzelnen Projektmappe können mehrere Projekte enthalten sein, die zusammen erstellt werden können. Um einen Zero-Touch-Block zu erstellen, müssen wir ein neues Visual Studio-Projekt starten, in im wir eine C#-Klassenbibliothek schreiben und eine .dll
-Datei erstellen.
Fenster Neues Projekt in Visual Studio
Öffnen Sie zunächst Visual Studio, und erstellen Sie ein neues Projekt:
File > New > Project
Wählen Sie die Projektvorlage
Class Library
.Geben Sie dem Projekt einen Namen (wir haben das Projekt MyCustomNode genannt).
Legen Sie den Dateipfad für das Projekt fest. In diesem Beispiel belassen wir den Vorgabespeicherort.
Wählen Sie
Ok
aus.
Visual Studio erstellt und öffnet automatisch eine C#-Datei. Sie sollten einen angemessenen Namen vergeben, den Arbeitsbereich einrichten und den Vorgabecode durch diese Multiplikationsmethode ersetzen:
Öffnen Sie den Projektmappen-Explorer und die Ausgabefenster über
View
.Benennen Sie die Datei
Class1.cs
im Projektmappen-Explorer auf der rechten Seite inSampleFunctions.cs
um.Fügen Sie den oben genannten Code für die Multiplikationsfunktion hinzu. Die Details dazu, wie Dynamo Ihre C#-Klassen liest, werden wir später behandeln.
Projektmappen-Explorer: Hiermit erhalten Sie Zugriff auf alle Elemente in Ihrem Projekt.
Ausgabefenster: Dieses wird später benötigt, um zu sehen, ob der Build erfolgreich war.
Der nächste Schritt besteht darin, das Projekt zu erstellen. Zuvor müssen wir jedoch einige Einstellungen überprüfen. Stellen Sie zunächst sicher, dass Any CPU
oder x64
als Plattformziel ausgewählt und Prefer 32-bit
in den Projekteigenschaften deaktiviert ist.
Öffnen Sie die Projekteigenschaften, indem Sie
Project > "ProjectName" Properties
auswählen.Wählen Sie die Seite
Build
aus.Wählen Sie im Dropdown-Menü die Option
Any CPU
oderx64
aus.Stellen Sie sicher, dass
Prefer 32-bit
deaktiviert ist.
Jetzt können wir das Projekt erstellen, um eine .dll
-Datei zu generieren. Wählen Sie dazu entweder Build Solution
aus dem Menü Build
aus, oder verwenden Sie den Kurzbefehl CTRL+SHIFT+B
.
Wählen Sie
Build > Build Solution
aus.Sie können feststellen, ob Ihr Projekt erfolgreich erstellt wurde, indem Sie das Ausgabefenster überprüfen.
Wenn das Projekt erfolgreich erstellt wurde, wird im Ordner bin
des Projekts eine .dll
-Datei mit dem Namen MyCustomNode
angezeigt. In diesem Beispiel haben wir die Visual Studio-Vorgabe für den Projektdateipfad c:\users\username\documents\visual studio 2015\Projects
beibehalten. Sehen wir uns nun die Dateistruktur des Projekts an.
Der Ordner
bin
enthält die in Visual Studio erstellte.dll
-Datei.Die Visual Studio-Projektdatei
Die Klassendatei
Da unsere Projektmappen-Konfiguration auf
Debug
festgelegt wurde, wird die.dll
-Datei unterbin\Debug
erstellt.
Jetzt können wir Dynamo öffnen und die .dll
-Datei importieren. Navigieren Sie mit der Funktion Hinzufügen zum bin
-Speicherort des Projekts, und wählen Sie die zu öffnende .dll
-Datei aus.
Wählen Sie die Schaltfläche Hinzufügen, um eine
.dll
-Datei zu importieren.Navigieren Sie zum Projektspeicherort. Das Projekt befindet sich unter dem Vorgabedateipfad von Visual Studio:
C:\Users\username\Documents\Visual Studio 2015\Projects\MyCustomNode
.Wählen Sie die zu importierende Datei
MyCustomNode.dll
aus.Klicken Sie auf
Open
, um die.dll
-Datei zu laden.
Wenn eine Kategorie mit dem Namen MyCustomNode
in der Bibliothek erstellt wird, wurde die DLL-Datei erfolgreich importiert. Dynamo hat jedoch zwei Blöcke erstellt, obwohl wir einen einzelnen Block erhalten wollten. Im nächsten Abschnitt werden wir erläutern, warum dies geschieht und wie Dynamo DLL-Dateien liest.
MyCustomNode in der Dynamo-Bibliothek. Die Bibliothekskategorie wird durch den Namen der
.dll
-Datei bestimmt.SampleFunctions.MultiplyByTwo im Ansichtsbereich.
Wenn Dynamo eine DLL-Datei lädt, werden alle öffentlichen statischen Methoden als Blöcke angezeigt. Konstruktoren, Methoden und Eigenschaften werden in Erstellungs-, Aktions- und Abfrageblöcke umgewandelt. In unserem Multiplikationsbeispiel wird die Methode MultiplyByTwo()
zu einem Aktionsblock in Dynamo. Dies liegt daran, dass der Block basierend auf der zugehörigen Methode und Klasse benannt wurde.
Die Eingabe erhält basierend auf dem Parameternamen der Methode den Namen
inputNumber
.Die Ausgabe erhält vorgabemäßig den Namen
double
, da es sich hierbei um den zurückgegebenen Datentyp handelt.Der Block erhält den Namen
SampleFunctions.MultiplyByTwo
, da dies die Klassen- und Methodennamen sind.
Im obigen Beispiel wurde der zusätzliche Erstellungsblock SampleFunctions
erzeugt, da wir nicht explizit einen Konstruktor bereitgestellt haben, und daher automatisch einer erstellt wurde. Dies kann durch Erstellen eines leeren privaten Konstruktors in der Klasse SampleFunctions
vermieden werden.
Dynamo hat unsere Methode als Erstellungsblock importiert.
Der Block für die Multiplikation ist sehr einfach, und es sind keine Referenzen auf Dynamo erforderlich. Wenn wir beispielsweise auf eine Dynamo-Funktion zum Erstellen von Geometrie zugreifen möchten, müssen wir die Dynamo-NuGet-Pakete referenzieren.
ZeroTouchLibrary: Paket zum Erstellen von Zero-Touch-Blockbibliotheken für Dynamo mit den folgenden Bibliotheken: DynamoUnits.dll, ProtoGeometry.dll.
WpfUILibrary: Paket zum Erstellen von Blockbibliotheken für Dynamo mit angepasster Benutzeroberfläche in WPF, die die folgenden Bibliotheken enthält: DynamoCoreWpf.dll, CoreNodeModels.dll, CoreNodeModelWpf.dll.
DynamoServices: DynamoServices-Bibliothek für Dynamo.
Core: Komponenten- und System-Testinfrastruktur für Dynamo, die die folgenden Bibliotheken enthält: DSIronPython.dll, DynamoApplications.dll, DynamoCore.dll, DynamoInstallDetective.dll, DynamoShapeManager.dll, DynamoUtilities.dll, ProtoCore.dll, VMDataBridge.Bridge.dll.
Tests: Komponenten- und System-Testinfrastruktur für Dynamo, die die folgenden Bibliotheken enthält: DynamoCoreTests.dll, SystemTestServices.dll, TestServices.dll.
DynamoCoreNodes: Paket zum Erstellen von Core-Blöcken für Dynamo, das die folgenden Bibliotheken enthält: Analysis.dll, GeometryColor.dll, DSCoreNodes.dll.
Um diese Pakete in einem Visual Studio-Projekt zu referenzieren, laden Sie das Paket entweder von NuGet unter den oben genannten Links herunter und referenzieren die DLL-Dateien manuell, oder verwenden Sie den NuGet-Paket-Manager in Visual Studio. Zunächst gehen wir die Schritte zum Installieren mit NuGet in Visual Studio durch.
Öffnen Sie den NuGet-Paket-Manager, indem Sie
Tools > NuGet Package Manager > Manage NuGet Packages for Solution...
auswählen.
Dies ist der NuGet-Paket-Manager. In diesem Fenster wird angezeigt, welche Pakete für das Projekt installiert wurden, und der Benutzer kann nach anderen Paketen suchen. Wenn eine neue Version des DynamoServices-Pakets veröffentlicht wird, können Pakete von hier aus aktualisiert oder auf eine frühere Version zurückgesetzt werden.
Wählen Sie Durchsuchen, und suchen Sie nach DynamoVisualProgramming, um die Dynamo-Pakete aufzurufen.
Die Dynamo-Pakete. Wenn Sie eines auswählen, werden die aktuelle Version und eine Beschreibung des Inhalts angezeigt.
Wählen Sie die gewünschte Paketversion aus, und klicken Sie auf Installieren. Dadurch wird ein Paket für das spezifische Projekt installiert, an dem Sie gerade arbeiten. Da wir die neueste stabile Version von Dynamo, Version 1.3, verwenden, wählen Sie die entsprechende Paketversion aus.
Um ein aus dem Browser heruntergeladenes Paket manuell hinzuzufügen, öffnen Sie den Verweis-Manager im Projektmappen-Explorer und suchen nach dem Paket.
Klicken Sie mit der rechten Maustaste auf
References
, und wählen SieAdd Reference
aus.Wählen Sie
Browse
aus, um zum Paketspeicherort zu navigieren.
Nachdem Visual Studio ordnungsgemäß konfiguriert wurde und wir erfolgreich eine .dll
-Datei zu Dynamo hinzugefügt haben, verfügen wir über eine solide Grundlage für die nun folgenden Konzepte. Dies ist nur der Anfang. Bleiben Sie daher weiter dabei, um mehr über das Erstellen eines benutzerdefinierten Blocks zu erfahren.