portál uživatelů
softwarů Autodesk

Dynamo | Programování s Revitem

V tomto návodu si ukážeme, jak snadno vytvořit ploty s komplikovaným půdorysem, nebo jak využít získané informace pro návrh obvodových plášťů. Jedná se o kopírování prvků okolo vytvořené trasy, kdy se prvek bude otáčet s trasou.

Dynamo | Programování s Revitem

Prvním krokem je mít vytvořený prvek, se kterým budeme pracovat a který vložíme do projektu. V našem případě to bude betonový sloupek.

 

 

Druhým krokem, který musíme vytvořit v Revitu, je trasa, po které bude prvek nakopírovaný. V půdorysu si za pomocí čar (Čára modelu) vytvoříme trasu.

Nyní si otevřeme nový soubor v Dynamu.

Jako první musíme „připojit“ prvky z Revitu do Dynama. Pro sloupek a trasu použijeme uzel a Select Model Element.

Nejprve vytvoříme body po trase, na které budou sloupky umístěny. Následně vytvoříme část skriptu, který upraví úhel natočení sloupků.

V uzlu Select Model Element vybereme křivku. Poté rozmístíme body po celé ose. Pro tuto akci vložíme uzly Element.Curves, Curve.Startpoint a Curve.EndPoint (Bod na začátku a konci křivky) a Curve.PointsAtEqualSegmentLength (Body mezi začátkem a koncem).

Jako další krok vložíme uzel posuvníku, který nám „rozdělí“ křivku na úseky a vloží bod. Může to být ten, který již známe z minulých návodů (Number Slider) nebo Integer Slider, který má již nastavené posouvání o celá čísla. Pokud spojíme tento uzel s Divisions, zobrazí se nám tři body na křivce. Pro lepší přehlednost můžeme vložit uzel se skriptem, který bude odečítat jeden úsek (hodnota na posuvníku = počet bodů na křivce). Dvojklikem vložíme základní uzel, do kterého napíšeme a-1. Nyní již počty souhlasí.

Dalším krokem je vytvoření seznamu bodů. Vložíme uzel List.Create. Vstupy přidáme kliknutím na + a spojíme do něj veškeré Point výstupy.

Nyní máme kompletní seznam souřadnic bodů. Jednotlivé body jsou však rozmístěné do různých stupňů. Pro srovnání do stejné úrovně slouží uzel List.Flatten. (Na obrázku jsou také uzly Watch, ty pouze ukazují seznamy a nemají na script vliv).

 

Nyní vložíme uzel (FamilyInstance.ByPointAndLevel), který nám umístí sloupek na vytvořené body ze seznamu. V již vytvořeném uzlu Select Model Element vybereme prvek sloupku. Mezi tento a FamilyInstance.ByPointAndLevel je potřeba vložit uzel Element.ElementType, který určí, co je element za typ. Pro vstup, kromě rodiny sloupku, použijeme uzel Levels pro určení podlaží.

 

Pokud vše proběhne správně, měli byste vidět v Revitu rozmístěné sloupky po křivce. Pokud chcete změnit počet, stačí změnit hodnotu na posuvníku.

Posledním krokem je vytvoření části pro otáčení sloupku s křivkou. K tomu použijeme tečny u každého bodu. U posuvníku vytvoříme nový základní uzel s textem 0..1..#x a napojíme na vstup náš posuvník, což vytvoří list bodů, který začíná 0 a končí hodnotou 1 a X je počet hodnot mezi tímto rozmezím. Zkopírujte blok List.Flatten a napojte na něj vytvořený uzel se seznamem. 

Vytvoříme uzel (Line.ByTangency), díky kterému vzniknou tečny a zkopírujeme Curve.StartPoint a Curve.EndPoint. Pro vstup L.BT použijeme výstup z Element.Curves a seznam bodů. U Parametrů klikneme na šipku vedle názvu a zaškrtneme Podle podlaží, následně vybereme L1.  Výstup napojíme na uzly, které vytvoří první a poslední bod. Výsledek jsou body jednotlivých tečen.

Pro určení úhlu použijeme dva vektory. Do prostředí vložíme následující uzly: Vector.ByTwoPoints, Vector.XAxis a Vector.AngleWithVector. Uzly začínajícího a koncového bodu napojíme na vstupy uzlu V.BTP a výstup a na V.AWV. Nyní máme první vektor pro vytvoření úhlu. Pro druhý vektor využijeme základní osu X.

Na závěr vložíme poslední uzel (FamilyInstance.SetRotation), který přiřadí úhel otočení k jednotlivým sloupkům. Na vstupy napojíme rozmístěné sloupky a seznam s jednotlivými úhly. V Revitu uvidíte, jak jsou jednotlivé sloupky natočené. Pokud změníte množství sloupků, automaticky se úhly upraví.

Tento návod na script je převzat ze stránek knowledge.autodesk.com.