Dynamo
Primer for v2.0
Deutsch
Deutsch
  • Info
  • Einführung
    • Was ist Dynamo und wie funktioniert die Anwendung?
    • Primer-Leitfaden, Dynamo-Community und -Plattform
  • Setup für Dynamo
  • Benutzeroberfläche
    • Arbeitsbereich
    • Bibliothek
  • Blöcke und Drähte
  • Wichtige Blöcke und Konzepte
    • Index der Blöcke
    • Geometrie für computergestützte Konstruktion
      • Geometrie - Überblick
      • Vektor, Ebene und Koordinatensystem
      • Punkte
      • Kurven
      • Oberflächen
      • Volumenkörper
      • Netze
    • Bausteine von Programmen
      • Daten
      • Math
      • Logik
      • Zeichenfolgen
      • Farbe
    • Entwerfen mit Listen
      • Was ist eine Liste?
      • Arbeiten mit Listen
      • Listen von Listen
      • n-dimensionale Listen
    • Wörterbücher in Dynamo
      • Was ist ein Wörterbuch?
      • Wörterbuch-Blöcke
      • Wörterbücher in Codeblöcken
      • Revit-Anwendungsfälle
  • Benutzerdefinierte Blöcke und Pakete
    • Benutzerdefinierte Blöcke
      • Benutzerdefinierte Blöcke - Einführung
      • Erstellen eines benutzerdefinierten Blocks
      • Publizieren in der Bibliothek
    • Pakete
      • Pakete - Einführung
      • Fallstudie zu Paketen: Mesh Toolkit
      • Entwickeln von Paketen
      • Publizieren von Paketen
      • Zerotouch-Import
  • Dynamo für Revit
    • Verbindung zu Revit
    • Auswählen
    • Bearbeiten
    • Erstellen
    • Anpassen
    • Dokumentation
  • Dynamo for Civil 3D
    • Die Civil 3D-Verbindung
    • Erste Schritte
    • Blockbibliothek
    • Beispielarbeitsabläufe
      • Straßen
        • Lichtmastenplatzierung
      • Land
        • Platzieren von Hausanschlüssen
      • Versorgung
        • Umbenennen von Schächten/Bauwerken
      • Schiene
        • Lichtraumprofil
      • Vermessung
        • Punktgruppenverwaltung
    • Fortgeschrittene Themen
      • Objektbindung
      • Python und Civil 3D
    • Dynamo Player
    • Nützliche Pakete
    • Ressourcen
  • Codierung in Dynamo
    • Codeblöcke und DesignScript
      • Was ist ein Codeblock?
      • DesignScript-Syntax
      • Kurzschreibweisen
      • Funktionen
    • Geometrie mit DesignScript
      • DesignScript-Geometriegrundlagen
      • Geometrische Grundkörper
      • Vektormathematik
      • Kurven: Interpolierte Punkte und Steuerpunkte
      • Verschiebung, Drehung und andere Transformationen
      • Oberflächen: Interpolation, Steuerpunkte, Erhebung, Drehung
      • Geometrische Parametrisierung
      • Schnittpunkt und Stutzen
      • Geometrische boolesche Operationen
      • Python-Punkt-Generatoren
    • Python
      • Python-Blöcke
      • Python und Revit
      • Einrichten einer eigenen Python-Vorlage
    • Änderungen der Sprache
  • Optimale Verfahren
    • Vorgehensweisen für Diagramme
    • Vorgehensweisen zur Skripterstellung
    • Referenz für die Skripterstellung
    • Verwalten Ihres Programms
    • Effizientes Arbeiten mit großen Datensätzen in Dynamo
  • Beispielarbeitsabläufe
    • Erste Schritte - Arbeitsabläufe
      • Parametrische Vase
      • Attraktorpunkte
    • Konzeptindex
  • Developer Primer
    • Erstellen von Dynamo aus Quelldateien
      • Erstellen von DynamoRevit aus Quelldateien
      • Verwalten und Aktualisieren von Abhängigkeiten in Dynamo
    • Entwickeln für Dynamo
      • Erste Schritte
      • Zero-Touch-Fallstudie - Rasterblock
      • Ausführen von Python-Skripts in Zero-Touch-Blöcken (C#)
      • Weitere Schritte mit Zero-Touch
      • Erweiterte Anpassung von Dynamo-Blöcken
      • Verwenden von COM-Typen (Interop-Typen) in Dynamo-Paketen
      • NodeModel-Fallstudie – Angepasste Benutzeroberfläche
      • Aktualisieren der Pakete und Dynamo-Bibliotheken für Dynamo 2.x
      • Aktualisieren der Pakete und Dynamo-Bibliotheken für Dynamo 3.x
      • Erweiterungen
      • Definieren einer benutzerdefinierten Paketorganisation für Dynamo 2.0+
      • Dynamo-Befehlszeilenschnittstelle
      • Dynamo-Integration
      • Entwickeln für Dynamo für Revit
      • Publizieren eines Pakets
      • Erstellen eines Pakets in Visual Studio
      • Erweiterungen als Pakete
    • Pull-Anforderungen
    • Erwartungen beim Testen
    • Beispiele
  • Anhang
    • Häufig gestellte Fragen
    • Visuelle Programmierung und Dynamo
    • Ressourcen
    • Versionshinweise
    • Nützliche Pakete
    • Beispieldateien
    • Host-Integrationskarte
    • Herunterladen der PDF-Datei
    • Dynamo-Tastaturkürzel
Powered by GitBook
On this page
Edit on GitHub
Export as PDF
  1. Developer Primer
  2. Entwickeln für Dynamo

Erstellen eines Pakets in Visual Studio

PreviousPublizieren eines PaketsNextErweiterungen als Pakete

Last updated 1 month ago

Wenn Sie Assemblys entwickeln, die als Paket für Dynamo publiziert werden sollen, kann das Projekt so konfiguriert werden, dass alle erforderlichen Objekte gruppiert und in einer paketkompatiblen Verzeichnisstruktur abgelegt werden. Dadurch kann das Projekt schnell als Paket getestet werden und die Benutzererfahrung simuliert werden.

So erstellen Sie Pakete direkt im Paketordner

Es gibt zwei Methoden zum Erstellen eines Pakets in Visual Studio:

  • Hinzufügen von Postbuildereignissen über das Dialogfeld Projekteinstellungen, die XCopy- oder Python-Skripts zum Kopieren der erforderlichen Dateien verwenden

  • Verwenden des Build-Ziels AfterBuild in der .csproj-Datei, um Aufgaben zum Kopieren von Dateien und Verzeichnissen zu erstellen

AfterBuild ist die bevorzugte Methode für diese Operationstypen (und die in diesem Handbuch beschriebenen), da sie nicht auf dem Kopieren von Dateien beruht, die möglicherweise nicht auf dem Build-Computer verfügbar sind.

Kopieren von Paketdateien mit der AfterBuild-Methode

Richten Sie die Verzeichnisstruktur im Repository so ein, dass die Quelldateien von den Paketdateien getrennt sind. Platzieren Sie das Visual Studio-Projekt und alle zugehörigen Dateien in einem neuen src-Ordner, und arbeiten Sie dabei mit der Fallstudie CustomNodeModel. Sie speichern alle vom Projekt generierten Pakete in diesem Ordner. Die Ordnerstruktur sollte nun wie folgt aussehen:

CustomNodeModel
> src
  > CustomNodeModel
  > CustomNodeModelFunction
  > packages
  > CustomNodeModel.sln
  1. Verschieben Sie die Projektdateien in den neuen src-Ordner.

  <Target Name="AfterBuild">
    <ItemGroup>
      <Dlls Include="$(OutDir)*.dll" />
      <Pdbs Include="$(OutDir)*.pdb" />
      <Xmls Include="$(OutDir)*.xml" />
      <Configs Include="$(OutDir)*.config" />
    </ItemGroup>
    <Copy SourceFiles="@(Dlls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Pdbs)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Xmls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Configs)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\dyf" />
    <MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\extra" />
  </Target>

Wir müssen sicherstellen, dass das Ziel der Datei CustomNodeModel.csproj hinzugefügt wurde (nicht einer anderen Projektdatei) und dass das Projekt keine vorhandenen Postbuild-Einstellungen aufweist.

  1. Platzieren Sie das AfterBuild-Ziel vor dem </Project>-End-Tag.

Im Abschnitt <ItemGroup> sind eine Reihe von Variablen definiert, die bestimmte Dateitypen darstellen. Die Variable Dll stellt beispielsweise alle Dateien im Ausgabeverzeichnis mit der Erweiterung .dll dar.

<ItemGroup>
  <Dlls Include="$(OutDir)*.dll" />
</ItemGroup>

Die Aufgabe Copy besteht darin, alle .dll-Dateien in ein Verzeichnis zu kopieren, insbesondere den Paketordner, in dem die Erstellung erfolgt.

<Copy SourceFiles="@(Dlls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />

Dynamo-Pakete verfügen in der Regel über einen dyf- und einen extra-Ordner für benutzerdefinierte Dynamo-Blöcke und andere Objekte, z. B. Bilder. Um diese Ordner zu erstellen, müssen wir eine MakeDir-Aufgabe verwenden. Diese Aufgabe erstellt einen Ordner, wenn er noch nicht vorhanden ist. Sie können diesem Ordner manuell Dateien hinzufügen.

<MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\extra" />

Wenn Sie das Projekt erstellen, sollte der Projektordner jetzt einen packages-Ordner neben dem zuvor erstellten src-Ordner enthalten. Im packages-Verzeichnis befindet sich ein Ordner, der alle für das Paket erforderlichen Elemente enthält. Außerdem müssen wir die Datei pkg.json in den Paketordner kopieren, damit Dynamo erkennt, dass das Paket geladen werden soll.

  1. Der neue Paketordner, den das AfterBuild-Ziel erstellt hat.

  2. Der vorhandene src-Ordner mit dem Projekt.

  3. Die Ordner dyf und extra, die aus dem AfterBuild-Ziel erstellt wurden.

  4. Kopieren Sie die Datei pkg.json manuell.

Jetzt können Sie das Paket mithilfe des Paket-Managers von Dynamo publizieren oder es direkt in das Paketverzeichnis von Dynamo kopieren: <user>\AppData\Roaming\Dynamo\1.3\packages.

Nachdem sich die Quelldateien in einem separaten Ordner befinden, fügen Sie der Datei CustomNodeModel.csproj in Visual Studio ein AfterBuild-Ziel hinzu. Dadurch sollten die erforderlichen Dateien in einen neuen Paketordner kopiert werden. Öffnen Sie die Datei CustomNodeModel.csproj in einem Texteditor (wir haben verwendet), und platzieren Sie das Build-Ziel vor dem schließenden </Project>-Tag. Dieses AfterBuild-Ziel kopiert alle DLL-, PBD-, XML- und CONFIG-Dateien in einen neuen bin-Ordner und erstellt einen dyf-Ordner sowie zusätzliche Ordner.

Atom
Verschieben von Projektdateien
Platzieren des AfterBuild-Ziels
Kopieren von Dateien