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
  • Geometriegenerierung und Tessellation im Vergleich
  • Speichernutzung
  • Revit API
Edit on GitHub
Export as PDF
  1. Optimale Verfahren

Effizientes Arbeiten mit großen Datensätzen in Dynamo

PreviousVerwalten Ihres ProgrammsNextBeispielarbeitsabläufe

Last updated 1 month ago

Auf dieser Seite finden Sie einige Faustregeln für das effiziente Arbeiten mit großen Datensätzen in Dynamo. Sie können die Tipps hoffentlich verwenden, um Engpässe in Ihren Diagrammen zu identifizieren, sodass Ihr Diagramm in wenigen Minuten statt in mehreren Stunden ausgeführt werden kann.

Inhalt:

  • Geometriegenerierung und Tessellation im Vergleich

  • Speichernutzung

  • Revit API

Geometriegenerierung und Tessellation im Vergleich

In Dynamo sind das Erstellen eines Geometrieobjekts und das Zeichnen zwei völlig unterschiedliche Ereignisse. Im Allgemeinen ist das Erstellen von Geometrie viel schneller und erfordert weniger Speicherplatz als das Zeichnen des Objekts. Sie können sich die Geometrie als eine Liste von Maßen vorstellen, um einen Anzug herzustellen, während die Tessellation der Anzug selbst ist. Anhand seiner Maße können Sie ziemlich viel über den Anzug aussagen: wie lang die Arme sind, wie viel er kostet usw., aber Sie müssen den fertigen Anzug fast immer sehen und anprobieren, um zu erfahren, ob er passt. Auf ähnliche Weise können Sie bei nicht tessellierter Geometrie den Begrenzungsrahmen, die Fläche und das Volumen bestimmen, sie mit anderer Geometrie schneiden und im SAT- oder Revit-Format exportieren. Sie müssen die Geometrie jedoch fast immer tessellieren, um ein Gefühl dafür zu bekommen, ob sie korrekt ist oder nicht.

Wenn Ihr Dynamo-Diagramm viele Objekte enthält und während der Ausführung langsamer wird, können Sie möglicherweise die Tessellationsschritte aus dem Diagramm entfernen, um den Vorgang zu beschleunigen.

Geometrieblöcke in Dynamo werden immer tesselliert*. Somit stehen Ihnen zwei Optionen für die Arbeit mit nicht tessellierter Geometrie zur Verfügung: Python-Blöcke und ZeroTouch-Blöcke. Solange Sie ein Geometrieobjekt nicht aus Ihrem Python- oder ZeroTouch-Block zurückgeben, wird die Geometrie nicht tesselliert. Wenn Ihr Diagramm beispielsweise mehrere Punktblöcke aufweist, die mit mehreren Linienblöcken verbunden sind, die mit mehreren Erhebungsblöcken verbunden sind, die mit mehreren Verdickungsblöcken verbunden sind, wird die Geometrie bei jedem Schritt tesselliert. Stattdessen können Sie diese Logik in einem Python- oder ZeroTouch-Block bündeln und nur das endgültige Objekt aus dem Block zurückgeben.

Weitere Informationen zur Verwendung von ZeroTouch-Blöcken finden Sie im Abschnitt in diesem Primer.

Speichernutzung

Wenn Sie keine Geometrie mehr tessellieren, kann durch überschüssige Geometrieansammlung möglicherweise ein Speicherengpass entstehen. Geometrieobjekte in Dynamo benötigen bei ihrer Erstellung eine geringe, aber nicht unerhebliche Menge an Speicher. Wenn Sie mit Hunderttausenden oder gar Millionen von Objekten arbeiten, kann dies zu einem Absturz von Dynamo oder Revit führen. In Dynamo Version 2.5 und höher wird dies implizit durch das Verwerfen nicht verwendeter Objekte gelöst. Wenn Sie jedoch eine Version vor Version 2.5 verwenden, besteht eine Möglichkeit zum Vermeiden der Erstellung von übermäßig viel Geometrie darin, die Objekte zu verwerfen, wenn Sie sie nicht mehr benötigen. Nehmen wir beispielsweise an, Sie würden Hunderttausende von NurbsCurves-Objekten erstellen, von denen jedes Dutzende von Punkten erfordert. Eine Möglichkeit, sie zu erstellen, ist eine zweidimensionale Liste in Dynamo, die in einen NurbsCurve.ByPoints-Block eingegeben wird. Dazu müssen jedoch Millionen von Punkten erstellt werden. Eine andere Möglichkeit ist die Verwendung eines Python- oder ZeroTouch-Blocks. In diesem Block können Sie ein Dutzend Punkte erstellen, diese in den Block NurbsCurve.ByPoints eingeben und dann das Dutzend Punkte mit dem Methodenaufruf .Dispose() entfernen. Weitere Informationen zur Verwendung von ZeroTouch-Blöcken finden Sie im Abschnitt in diesem Primer. Wenn Sie die Geometrieobjekte nach der Erstellung entfernen, kann der verwendete Speicherplatz unter bestimmten Umständen drastisch reduziert werden. Obwohl dies für Benutzer ab Dynamo 2.5 kein Problem mehr ist, wird dennoch empfohlen, dass die Benutzer Geometrie explizit löschen, wenn der Anwendungsfall es erfordert, zu einem bestimmten Zeitpunkt den verwendeten Arbeitsspeicher zu reduzieren. Weitere Informationen zu den neuen Stabilitätsfunktionen ab Dynamo 2.5 finden Sie im Artikel zu .

Revit API

Wenn Sie Objekte in einem ZeroTouch- oder Python-Block generell immer verwerfen und dennoch Speicher- oder Leistungsprobleme auftreten, müssen Sie Dynamo möglicherweise vollständig umgehen und Revit-Objekte direkt über die API erstellen. Sie können beispielsweise eine Excel-Datei auf Punktinformationen analysieren und diese Informationen verwenden, um XYZ- und andere Revit-Elemente über die entsprechende API zu erstellen. An diesem Punkt wird Revit zum ultimativen Engpass, was sich nicht vermeiden lässt.

Entwickeln für Dynamo
Entwickeln für Dynamo
Verbesserungen der Stabilität der Dynamo-Geometrie