pátek 29. července 2016

DYNAMO a jeho praktické využití: automatické připojení geometrie

V dnešním článku bychom si popsali další z možností praktického využití vizuálního programovaní Dynamo, která se bude tentokrát týkat automatického připojení geometrie. Funkce připojení geometrie, kterou naleznete na kartě Upravit na panelu Geometrie, je jedna z funkcí, která je při tvorbě informačního modelu nepostradatelná, ale při rozsáhlejších projektech se uživatel stává jejím otrokem, jelikož daná funkce neumožňuje propojit vícero objektů v jeden moment. To v praxi znamená, že je uživatel nucen aplikovat danou funkci systematicky prvek po prvku. Tento systém propojování geometrie, který standardně nabízí aplikace Revit, se zdá být z pohledu časové úspory uživatelsky neoptimální, proto je vhodné opět přistoupit k vizuálnímu programování Dynamo a zmíněný problém vyřešit jednou pro vždy. Před tím než si popíšeme postup sestavení algoritmu, je potřeba si do pracovní plochy zanést několik komponent, které nebudou vzájemně propojeny, a na tento testovací model budeme následně aplikovat algoritmus z Dynama. Algoritmus lze následně po sestavení uložit a následně aplikovat dle potřeby na libovolný počet projektů. Po založení testovacího projektu, ve kterém jsou osazeny vzájemně nepropojené komponenty, se stačí přesunout do prostředí Dynama a začít sestavovat algoritmus, který umožní automatické propojení zvolených kategorií v Revitu.

Program Dynamo, který je již součástí Revitu 2017, naleznete na kartě Správa na panelu Vizuální programování. Pokud používáte nižší verzi Revitu je nutné si tento doplněk stáhnout ze stránek vývojového týmu, nainstalovat a následně se bude zobrazovat na kartě Doplňky.

Do plochy grafu si zaneseme následující uzly:

1.) Categories: Cesta k uzlu: Revit > Selection > Categories; Tento uzel vybere předdefinovanou kategorii v projektu. Počet zanesených uzlů do grafu by měl odpovídat počtu jednotlivých kategorií, u kterých vyžadujeme automatické připojení geometrie.
2.) All Elements of Category: Cesta k uzlu: Revit > Selection > All Elements of Category; Tento uzel získá z modelu všechny prvky určité kategorie. Počet zanesených uzlů do grafu by měl odpovídat počtu uzlů Categories.
3.) List.Create: Cesta k uzlu: Core > List > List.Create; Tento uzel vytvoří nový seznam z daných vstupů. V našem případě vytvoří seznam všech prvků z předdefinovaných kategorií.

Poslední uzel, který je potřeba přidat do syntaxu, je uzel, který standardně není součástí instalace Dynama, je tedy nutné si ho stáhnout. Ke stahovatelnému obsahu se lze dostat přes kartu Balíčky > Vyhledat balíčky…, do políčka vyhledávání vypíšeme název balíčku Hot Gear. Po stažení se nám balíček přidá do knihovny Dynama.

4.) Join Geometry: Cesta k uzlu: Hot Gear > Geometry Join > Join Geometry; Tento uzel v sobě obsahuje naprogramovaný algoritmus přes programovací jazyky Python, který umožní v jeden moment připojit geometrii u všech získaných prvků modelu.

Pokud všechny tyto uzly máme zanesené v grafu Dynama, nezbývá nám nic jiného než je spolu logicky pospojovat dráty. Tok informací v Dynamu proudí vždy z levé strany do pravé. Spojený syntax by měl mít tuto podobu:


Po zakliknutí volby Spustit, Dynamo aplikuje funkci připojit geometrii na všechny získané prvky modelu. 



5 komentářů:

  1. Dokonalé :) více takových fajnovek pro usnadnění práce. Jinak souhlasím s Vaším názorem, toto je jedna z hlavních cest pro praktické využití.

    OdpovědětVymazat
  2. Je možné zadefinovať aj preferenciu, ktorá hmota z ktorej bude vyrezaná? Ďakujem

    OdpovědětVymazat
  3. Dobrý den, předem bych rád poděkoval za Váš zájem o danou problematiku. K dotazu, zdali jde nadefinovat určitá priorita začištění, mohu v této chvíli napsat jediné, prozatím nelze nadefinovat. V Dynamu jsem neobjevil žádný uzel, který by dokázal nadefinovat vyšší prioritu elementu, proto se přikláním k tomu tuto postprodukci udělat klasickým nástrojem v Revitu, kdy se manuálně přepne pořadí spojů. Tento algoritmus je skutečně dost jednoduchý a pracuje s kategoriemi, ve Vašem případě by musel pracovat s jednotlivými prvky, které by se musely manuálně načítat do Dynama. Tento způsob už ztrácí automatičnost, která vede k úspoře času.

    OdpovědětVymazat
  4. Dobrý den,
    zasekla sem se u tvorby uzlů v Dynamu. Nemám tam české názvy, ale anglické kategorie projektu... Dá se to nějak změnit? Nebo to nemá vliv?

    OdpovědětVymazat
  5. Dobrý den Marcelo,
    pokud ve výběrovém okně uzlu Categories nenalezne české texty, tak se v podstatě nic neděje, funkčnost algoritmu bude zachována. Jakou verzi Dynama používáte? Anglické texty se například nacházejí ve výběrovém okně uzlu Element Types…

    OdpovědětVymazat