Jedním z mnoha případů skvělého použití aplikace Dynamo je dynamické umísťování samostatných objektů podél modelu koridoru. Často je potřeba objekty umístit na místa, která jsou nezávislá na vložených sestavách podél koridoru, což je velmi zdlouhavý úkol, který je třeba provést ručně. A pokud se změní horizontální nebo vertikální geometrie koridoru, je nutné provést značné množství předělávek.
Načítání dat z externího souboru (v tomto případě soubor aplikace Excel)
Uspořádání dat ve slovnících
Použití souřadnicových systémů k řízení polohy, měřítka nebo natočení
Umístění referencí bloků
Vizualizace geometrie v aplikaci Dynamo
Tento graf bude funkční v aplikaci Civil 3D 2020 a vyšších verzích.
Začněte stažením níže uvedených vzorových souborů a poté otevřete soubor DWG a graf aplikace Dynamo.
Doporučujeme soubor aplikace Excel uložit ve stejném adresáři jako graf aplikace Dynamo.
Zde je uveden přehled logiky tohoto grafu.
Načtěte soubor aplikace Excel a importujte data do aplikace Dynamo.
Získejte návrhové linie ze zadané základny koridoru.
Vytvořte souřadnicové systémy podél návrhové linie koridoru v požadovaných staničeních.
Pomocí souřadnicových systémů umístěte reference bloků v modelovém prostoru.
Pojďme na to!
V tomto vzorovém grafu použijeme soubor aplikace Excel k uložení dat, která aplikace Dynamo použije k umístění referencí bloků sloupů osvětlení. Tabulka vypadá následovně.
Použití aplikace Dynamo k načtení dat z externího souboru (například souboru aplikace Excel) je skvělou strategií, zejména pokud je potřeba data sdílet s ostatními členy týmu.
Data ze souboru aplikace Excel se do aplikace Dynamo importují následujícím způsobem.
Nyní, když máme data, je nutné je rozdělit podle sloupců (Corridor, Baseline, PointCode atd.), aby je bylo možné použít ve zbývající části grafu. Běžně se to dělá pomocí uzlu List.GetItemAtIndex a zadáním čísla indexu každého sloupce, který chceme použít. Například sloupec Corridor má index 0, sloupec Baseline má index 1 atd.
Vypadá to dobře, že? Ale tento přístup v sobě skrývá možný problém. Co když se v budoucnu změní pořadí sloupců v souboru aplikace Excel? Nebo se mezi dva sloupce přidá nový sloupec? Potom graf nebude správně fungovat a bude vyžadovat aktualizaci. Budoucí fungování grafu můžeme zajistit vložením dat do slovníku, přičemž záhlaví sloupců v souboru aplikace Excel budou sloužit jako klíče a zbývající data jako hodnoty.
Pokud jsou pro vás slovníky novinkou, přečtěte si část Slovníky v aplikaci Dynamo .
Graf je díky tomu odolnější, protože umožňuje flexibilně měnit pořadí sloupců v souboru aplikace Excel. Dokud záhlaví sloupců zůstanou stejná, pak lze data jednoduše načíst ze slovníku pomocí jeho klíče (tj. záhlaví sloupce), což nyní provedeme.
Nyní, když máme importovaná a připravená data aplikace Excel, začneme je používat k získávání informací o modelech koridorů z aplikace Civil 3D.
Vybere model koridoru podle jeho názvu.
Získá konkrétní základnu v rámci koridoru.
Získá návrhovou linii v rámci základny podle kódu bodu.
Nyní vytvoříme souřadnicové systémy podél návrhových linií koridoru v hodnotách staničení, které jsme zadali v souboru aplikace Excel. Tyto souřadnicové systémy budou použity k definování polohy, otočení a měřítka referencí bloků sloupů osvětlení.
Pokud jsou pro vás souřadnicové systémy novinkou, přečtěte si část Vektor, rovina a souřadnicový systém .
Všimněte si, že je zde použit blok kódu k otočení souřadnicových systémů v závislosti na tom, na které straně základny se nacházejí. Toho lze dosáhnout pomocí posloupnosti několika uzlů, ale toto je dobrý příklad situace, kdy je jednodušší to prostě sepsat.
Pokud jsou bloky kódu pro vás novinkou, přečtěte si část Bloky kódů a jazyk DesignScript.
Blížíme se k cíli! Máme všechny informace, které potřebujeme, abychom mohli skutečně umístit reference bloků. Nejprve je nutné získat požadované definice bloků pomocí sloupce BlockName v souboru aplikace Excel.
Posledním krokem je vytvoření referencí bloků.
Po spuštění grafu by se měly v modelovém prostoru podél koridoru zobrazit nové reference bloků. A tady je ta skvělá část – pokud je režim spuštění grafu nastaven na Automaticky a upravíte soubor aplikace Excel, reference bloků se automaticky aktualizují!
Další informace o režimech spouštění grafů naleznete v části Uživatelské rozhraní.
Zde je příklad spuštění grafu pomocí Přehrávače skriptů Dynamo.
Pokud je pro vás Přehrávač skriptů Dynamo novinkou, přečtěte si část Přehrávač skriptů Dynamo .
Vizualizace geometrie koridoru v aplikaci Dynamo může být užitečná kvůli získání kontextu. Tento konkrétní model má tělesa koridoru již extrahovaná v modelovém prostoru, takže je přeneseme do aplikace Dynamo.
Je tu však ještě něco, co musíme vzít v úvahu. Tělesa jsou relativně „těžkým“ typem geometrie, což znamená, že tato operace zpomalí graf. Proto by se hodilo, kdyby existoval jednoduchý způsob, jak zvolit, zda chceme tělesa zobrazit, nebo ne. Zřejmou odpovědí je odpojení uzlu Corridor.GetSolids, což však vytvoří upozornění pro všechny navazující uzly, což je trochu nepřehledné. To je situace, kdy vítězoslavně použijeme uzel ScopeIf.
Všimněte si šedé čáry v dolní části uzlu Object.Geometry. To znamená, že náhled uzlu je vypnutý (přístupný po kliknutí pravým tlačítkem myši na uzel), což umožňuje, aby uzel GeometryColor.ByGeometryColor „nebojoval“ s jinou geometrií o prioritu zobrazení v náhledu na pozadí.
Uzel ScopeIf v zásadě umožňuje selektivně spustit celou větev uzlů. Pokud je vstup test nastaven na hodnotu false, potom se nespustí žádné uzly připojené k uzlu ScopeIf.
Zde je výsledek v náhledu na pozadí v aplikaci Dynamo.
Zde je několik nápadů, jak byste mohli rozšířit možnosti tohoto grafu.
Přidejte do souboru aplikace Excel sloupec rotation a použijte jej k řízení otáčení souřadnicových systémů.
Přidejte do souboru aplikace Excel horizontální nebo vertikální odsazení, aby se sloupy osvětlení mohly v případě potřeby odchýlit od návrhové linie koridoru.
Místo použití souboru aplikace Excel s hodnotami staničení vygenerujte hodnoty staničení přímo v aplikaci Dynamo pomocí počátečního staničení a typické rozteče.
Umístěte reference bloků sloupů osvětlení podél koridoru v hodnotách staničení určených v souboru aplikace Excel.
Úkol splněn!