pondělí 31. července 2017

DYNAMO TIP #5: jak získat a aplikovat hodnoty parametrů

V předcházejícím tipu #4 jsme si popsali, jak si načíst parametry typu či instance do Dynama. V dnešním tipu si pro změnu popíšeme, jak z načtených parametrů získat jejich hodnoty, a jak je dále zpracovat v rámci algoritmu.

Nejdříve, než si sestavíme algoritmus v Dynamu, si musíme vytvořit stěnu v Revitu, která nám bude probíhat přes dvě podlaží, a do které zasadíme element okna ve druhém nadzemním podlaží, viz obrázek.


Revit standardně nenabízí informaci o tom, jak je daný element okna výškově odsazen od projektové nuly, ale díky Dynamu jsme schopni tuto informaci získat a aplikovat ji do připraveného parametru. V následujícím kroku si vytvoříme parametr instance, který si nazveme Odsazení od ±0,000. Typ parametru zvolíme Délka a zařadíme ho do skupiny Vazby. V tomto případě můžeme zvolit kategorie pouze Okna, ale lze zvolit i další kategorie, u kterých je žádoucí vědět jejich odsazení od projektové nuly.


Potvrdíme OK a po označení daného okna zjistíme, že se nám parametr přidal do skupiny vazby.

Nyní máme již vše připravené a už nám nebrání nic v tom nastartovat si aplikaci Dynamo a začít si sestavovat daný algoritmus. Tak, jak bylo popsáno v tipu #4, si do pracovní plochy grafu vložíme následující uzly: Categories, All Elements of Category

Další uzel, který si vložíme do grafu, je uzel, kolem kterého se točí tento tip #5, a tím je Element.GetParameterValueByName.


Tento uzel umožňuje právě získat hodnotu z daného parametru a jediné co k tomu potřebuje specifikovat, je daný element a název parametru, proto ho propojíme s uzlem All Elements of Category a pomocí uzlu Code Block, do kterého zapíšeme výraz "Výška parapetu". V náhledu daného uzlu zjistíme, že vybral výšku parapetu daného okna.

Dalším krokem bude získat informaci o tom, k jakému podlaží je vázán daný element okna. K tomu nám poslouží uzel Element.Level, který je součástí stahovatelného balíčku Clockwork for Dynamo 0.9.x.



Daný uzel propojíme, stejně jako v předchozím případě, s uzlem All Elements of Category, abychom zjistili podlaží, ke kterému je vázán náš element okna.


V dalším kroku si do grafu vložíme opět uzel Element.GetParameterValueByName, který propojíme s uzlem Element.Level, u kterého budeme hledat informaci o výškovém odsazení od projektové nuly. Tuto informaci obsahuje parametr "Výška", který zapíšeme do uzlu Code Block.


Můžete si povšimnout, že hodnota, kterou uzel Element.GetParameterValueByName zobrazuje ve svém náhledu, není zaokrouhlena, proto propojíme daný uzel ještě s uzlem Math.Round.

Nyní máme vyselektovány hodnoty výšky parapetu okna od podlaží a výšku podlaží od projektové nuly. Teď už jen zbývá obě hodnoty sečíst a zaimplementovat do připraveného parametru Odsazení od ±0,000.

S tím nám pomůže opět uzel Code Block, do kterého zapíšeme vzorec: A+B. Po tomto zápisu se zobrazí na uzlu dva vstupy, do kterých napojíme výstupy z uzlů Element.GetParameterValueByName. Dostali jsme výškové odsazení okna od projektové nuly, teď už zbývá tuto hodnotu zaimplementovat do připraveného parametru.

Předmětem tipu #5 je také uzel Element.SetParameterByName, který pro změnu umí aplikovat zvolenou hodnotu do vybraného parametru.


Zde je nutné si dát pozor na to, že tok informací se otáčí směrem zpátky, ke zdrojovému uzlu All Elements of Category.

Výsledný algoritmus by měl mít tuto podobu:


Videoukázka - odsazení od projektové nuly:


Žádné komentáře:

Okomentovat