pondělí 3. dubna 2017

DYNAMO TIP #3: Flatten, List.Flatten

V dnešním tipu bychom si popsali uzel, který má nezastupitelné místo v procesu vytváření algoritmů v programovacím rozhraní Dynamo pro Revit, a tím je uzel Flatten. Pokud si v Dynamu vyhledáte tento uzel a přečtete si jeho definici, nejspíš Vám toho moc neřekne. Daná definice zní: „Vrací plochý 1D seznam vícerozměrných vstupů, pokud je zadání jedna hodnota, vrátí tuto hodnotu.“ Pokud si tuto definici přeložíme do stravitelnější podoby, tak v podstatě daný uzel zruší všechny podseznamy a zařadí je do jednoho seznamu hodnot. Pokud ani toto vysvětlení není úplně pochopitelné, pojďme si funkci uzlu Flatten ukázat v daném algoritmu.


Z obrázku je patrné, že uzel List.Map vypisuje místnosti do jednotlivých podseznamů, ale pro správnou následnou funkčnost uzlu List.UniqueItems je potřeba, aby načtené místnosti figurovaly v jednom seznamu hodnot. V tomto příkladě je žádoucí propojit oba uzly uzlem Flatten.

V případě, kdy potřebujete sloučit pouze první úroveň podseznamů, se uzel Flatten zachová takto:


Uzel sloučí všechny úrovně podseznamů, a to bez rozdílu. Pokud v tomto případě chceme řídit, kolik úrovní daný uzel sloučí do sebe, musíme použít uzel List.Flatten.


Žádné komentáře:

Okomentovat