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
  • Dynamo in Forma Beta
    • Einrichten von Dynamo Player in Forma
    • Hinzufügen und Freigeben von Diagrammen in Dynamo Player
    • Ausführen von Diagrammen in Dynamo Player
    • Unterschiede der Dynamo-Computing-Services bei Dynamo Desktop
  • 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 for 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
  • Ziel
  • Wichtige Konzepte
  • Kompatibilität der Versionen
  • Datensatz
  • Lösung
  • Abrufen von Excel-Daten
  • Abrufen von 3D-Profilkörper-Elementkanten
  • Erstellen von Koordinatensystemen
  • Erstellen von Blockreferenzen
  • Ergebnis
  • Bonus: Visualisierung in Dynamo
  • Ideen
Edit on GitHub
Export as PDF
  1. Dynamo for Civil 3D
  2. Beispielarbeitsabläufe
  3. Straßen

Lichtmastenplatzierung

PreviousStraßenNextLand

Last updated 1 month ago

Einer der vielen praktischen Anwendungsfälle von Dynamo ist das dynamische Platzieren einzelner Objekte entlang eines 3D-Profilkörpermodells. Häufig müssen Objekte an Positionen platziert werden, die unabhängig von den eingefügten Querschnitten entlang des 3D-Profilkörpers sind. Dies manuell zu erledigen ist sehr mühsam. Wenn sich die horizontale oder vertikale Geometrie des 3D-Profilkörpers ändert, ist ein erheblicher Überarbeitungsaufwand erforderlich.

Ziel

Wichtige Konzepte

  • Lesen von Daten aus einer externen Datei (in diesem Fall Excel)

  • Organisieren von Daten in Wörterbüchern

  • Steuern von Position/Skalierung/Drehung mithilfe von Koordinatensystemen

  • Platzieren von Blockreferenzen

  • Visualisieren von Geometrie in Dynamo

Kompatibilität der Versionen

Dieses Diagramm wird in Civil 3D 2020 und höher ausgeführt.

Datensatz

Laden Sie zunächst die folgenden Beispieldateien herunter, und öffnen Sie dann die DWG-Datei und das Dynamo-Diagramm.

Die Excel-Datei sollte im selben Verzeichnis wie das Dynamo-Diagramm gespeichert werden.

Lösung

Hier sehen Sie einen Überblick über die Logik in diesem Diagramm.

  1. Excel-Datei lesen und Daten in Dynamo importieren

  2. Elementkanten aus der angegebenen 3D-Profilkörper-Basislinie abrufen

  3. Koordinatensysteme entlang der 3D-Profilkörper-Elementkante an den gewünschten Stationen generieren

  4. Koordinatensysteme zum Platzieren von Blockreferenzen im Modellbereich verwenden

Los gehts!

Abrufen von Excel-Daten

In diesem Beispieldiagramm verwenden wir eine Excel-Datei, um die Daten zu speichern, die Dynamo zum Platzieren der Lichtmast-Blockreferenzen verwendet. Die Tabelle sieht so aus.

Das Lesen von Daten aus externen Dateien (z. B. Excel-Dateien) mit Dynamo ist praktisch, insbesondere dann, wenn auch andere Teammitglieder die Daten nutzen müssen.

Die Excel-Daten werden wie folgt in Dynamo importiert.

Nachdem wir die Daten erstellt haben, müssen wir sie nach Spalten aufteilen (Corridor, Baseline, PointCode usw.), damit sie im restlichen Diagramm verwendet werden können. Eine gängige Methode hierfür ist die Verwendung des List.GetItemAtIndex-Blocks und die Angabe der Indexnummer für jede gewünschte Spalte. Beispiel: Die Spalte Corridor befindet sich bei Index 0, die Spalte Baseline bei Index 1 usw.

Klingt gut, oder? Doch bei diesem Ansatz gibt es ein potenzielles Problem. Was geschieht, wenn sich die Reihenfolge der Spalten in der Excel-Datei in Zukunft ändert? Oder wenn eine neue Spalte zwischen zwei Spalten hinzugefügt wird? Das Diagramm funktioniert dann nicht ordnungsgemäß und muss aktualisiert werden. Sie können das Diagramm für zukünftige Aktionen absichern, indem Sie die Daten in ein Wörterbuch einfügen, wobei die Excel-Spaltenüberschriften die Schlüssel und die übrigen Daten die Werte sind.

Wenn Wörterbücher neu für Sie sind, finden Sie im Abschnitt Wörterbücher in Dynamo weitere Informationen.

Dadurch wird das Diagramm stabiler, da es Flexibilität beim Ändern der Spaltenreihenfolge in Excel ermöglicht. Solange die Spaltenüberschriften gleich bleiben, können die Daten einfach mithilfe des Schlüssels (d. h. der Spaltenüberschrift) aus dem Wörterbuch abgerufen werden. Dies ist die Vorgehensweise beim nächsten Schritt.

Abrufen von 3D-Profilkörper-Elementkanten

Nachdem wir die Excel-Daten importiert haben und bereit für die Arbeit sind, können wir damit einige Informationen zu den 3D-Profilkörpermodellen aus Civil 3D abrufen.

  1. Wählen Sie das 3D-Profilkörpermodell nach seinem Namen aus.

  2. Rufen Sie eine bestimmte Basislinie innerhalb des 3D-Profilkörpers ab.

  3. Rufen Sie eine Elementkante innerhalb der Basislinie anhand ihres Punktcodes ab.

Erstellen von Koordinatensystemen

Als Nächstes generieren wir Koordinatensysteme entlang der 3D-Profilkörper-Elementkanten an den Stationswerten, die wir in der Excel-Datei angegeben haben. Diese Koordinatensysteme werden verwendet, um die Position, Drehung und Skalierung der Lichtmast-Blockreferenzen zu definieren.

Wenn Koordinatensysteme neu für Sie sind, finden Sie im Abschnitt Vektor, Ebene und Koordinatensystem weitere Informationen.

Beachten Sie, dass zum Drehen der Koordinatensysteme hier ein Codeblock verwendet wird, je nachdem, auf welcher Seite der Basislinie sie sich befinden. Dies könnte mithilfe einer Sequenz von mehreren Blöcken erreicht werden, ist aber ein gutes Beispiel für eine Situation, in der es einfacher ist, einfach den Code zu schreiben.

Wenn Codeblöcke neu für Sie sind, finden Sie im Abschnitt Codeblöcke und DesignScript weitere Informationen.

Erstellen von Blockreferenzen

Gleich haben wir es geschafft! Wir verfügen über alle Informationen, die wir benötigen, um die Blockreferenzen tatsächlich platzieren zu können. Als Erstes müssen wir die gewünschten Blockdefinitionen mithilfe der Spalte BlockName in der Excel-Datei abrufen.

Der letzte Schritt ist die Erstellung der Blockreferenzen.

Ergebnis

Beim Ausführen des Diagramms sollten neue Blockreferenzen im Modellbereich entlang des 3D-Profilkörpers angezeigt werden. Wenn der Ausführungsmodus des Diagramms auf Automatisch eingestellt ist und Sie die Excel-Datei bearbeiten, werden die Blockreferenzen automatisch aktualisiert.

Weitere Informationen über die Diagrammausführungsmodi finden Sie im Abschnitt Benutzeroberfläche.

Hier sehen Sie ein Beispiel für die Ausführung des Diagramms mit Dynamo Player.

Wenn Dynamo Player neu für Sie ist, finden Sie im Abschnitt Dynamo Player weitere Informationen.

Bonus: Visualisierung in Dynamo

Es kann hilfreich sein, die 3D-Profilkörpergeometrie in Dynamo zu visualisieren, um Kontext bereitzustellen. In diesem speziellen Modell sind die 3D-Profilkörper-Volumenkörper bereits im Modellbereich extrahiert. Diese exportieren wir in Dynamo.

Aber wir müssen noch etwas bedenken. Volumenkörper sind ein relativ "schwerer" Geometrietyp, was bedeutet, dass dieser Vorgang das Diagramm verlangsamt. Es wäre praktisch, wenn es eine einfache Möglichkeit gäbe, auszuwählen, ob wir die Volumenkörper anzeigen möchten oder nicht. Die offensichtliche Antwort ist, einfach den Corridor.GetSolids-Block zu trennen. Dadurch werden jedoch Warnungen für alle nachgeordneten Blöcke angezeigt, was zu einer chaotischen Ansicht führt. Dies ist eine Situation, in der der ScopeIf-Block hilfreich ist.

  1. Beachten Sie, dass der Object.Geometry-Block unten einen grauen Balken aufweist. Dies bedeutet, dass die Blockvorschau deaktiviert ist (Zugriff durch Klicken mit der rechten Maustaste auf den Block). Dadurch muss der Block GeometryColor.ByGeometryColor in der Hintergrundvorschau nicht mit anderer Geometrie um die Anzeigepriorität konkurrieren.

  2. Mit dem ScopeIf-Block können Sie einen ganzen Zweig von Blöcken selektiv ausführen. Wenn die test-Eingabe false ist, werden alle mit dem ScopeIf-Block verbundenen Blöcke nicht ausgeführt.

Hier sehen Sie das Ergebnis in der Dynamo-Hintergrundvorschau.

Ideen

Im Folgenden finden Sie einige Anregungen, wie Sie die Funktionen dieses Diagramms erweitern können.

Fügen Sie eine rotation-Spalte zur Excel-Datei hinzu, die Sie zum Steuern der Drehung des Koordinatensystems verwenden können.

Fügen Sie horizontale oder vertikale Versätze zur Excel-Datei hinzu, sodass die Lichtmasten bei Bedarf von der 3D-Profilkörper-Elementkante abweichen können.

Anstatt eine Excel-Datei mit Stationswerten zu verwenden, generieren Sie die Stationswerte direkt in Dynamo mit einer Anfangsstation und typischem Abstand.

Platzieren Sie Lichtmast-Blockreferenzen entlang eines 3D-Profilkörpers an Stationswerten, die in einer Excel-Datei angegeben sind.

Mission erfüllt!

🎯
🎉
232KB
Roads_CorridorBlockRefs.dyn
54MB
Roads_CorridorBlockRefs.dwg
12KB
LightPoles.xlsx
Struktur der Excel-Dateitabelle
Importieren der Excel-Daten in Dynamo
Einfügen der Excel-Daten in ein Wörterbuch
Abrufen von Daten aus dem Wörterbuch
Abrufen von Koordinatensystemen entlang der 3D-Profilkörper-Elementkanten
Abrufen der gewünschten Blockdefinitionen aus dem Dokument
Erstellen der Blockreferenzen im Modellbereich
Aktualisieren der Excel-Datei und schnelles Anzeigen der Ergebnisse in Civil 3D
Ausführen des Diagramms mit Dynamo Player und Anzeigen der Ergebnisse in Civil 3D
Visualisieren der 3D-Profilkörpergeometrie in Dynamo