今天給大家介紹一個Dynamo的初級案例,難度不大,適合初學者。
案例是能隨太陽轉(zhuǎn)動的陣列太陽能板?;窘Y(jié)構(gòu)很簡單,包括垂直的桿件,桿件頂端的太陽能板。
首先來看看大體的建模思路:
- 創(chuàng)建一個點陣;
- 在Z軸方向復制這個點陣;
- 利用兩端的點,創(chuàng)建圓柱陣列,作為支撐太陽能板的垂直桿件;
- 以頂點為圓心,創(chuàng)建能定義方向的圓;
- 用太陽方向作為創(chuàng)建圓的方向;
- 給圓做個內(nèi)接四邊形;
- 給四邊形封面,加厚度,成為太陽能板;
- 返回到revit中,調(diào)整太陽方向,可以看到面板的動態(tài)變化。
下面,我們來具體操作一下:
-
創(chuàng)建一個點陣;
使用CodeBlock創(chuàng)建5組數(shù)列,數(shù)列的間距是1500,作為點陣的間距。
將這個數(shù)組同時傳給點的x,y左邊,就形成了間距為1500的方形陣列。注意節(jié)點連綴使用叉積。
創(chuàng)建一個點陣
-
-
在Z軸方向復制這個點陣;
我們給Z軸方向賦值1200,就是將這些點垂直向上復制并移動1200的距離。
在Z軸方向復制這個點陣
-
-
利用兩端的點,創(chuàng)建圓柱陣列,作為支撐太陽能板的垂直桿件;
Cylinder.ByPointsRadius節(jié)點輸入起始點和終點,然后我們定義圓柱的直徑為50。就生成了桿件陣列。
創(chuàng)建圓柱陣列
-
-
以頂點為圓心,創(chuàng)建能定義方向的圓;
用我們剛才復制的頂端的點為圓心,使用Circle.ByCenterPointRadiusNormal節(jié)點,這個節(jié)點有個normal值待輸入,可以定義方向。
創(chuàng)建能定義方向的圓
-
-
用太陽方向作為創(chuàng)建圓的方向;
SunSettings.Current節(jié)點和SunSettings.SunDirection節(jié)點,可以提供當前Revit項目中的太陽方向。將他們輸入給圓的方向。
定義太陽方向
-

可以看到,已經(jīng)能看到圓的方向變化了。
-
給圓做個內(nèi)接四邊形;
我們需要再加工一下,因為太陽能板一般不是圓形,我們可以利用內(nèi)接圓的多邊形。
創(chuàng)建四邊形
-
-
給四邊形封面,加厚度,成為太陽能板;
成板
-
-
返回到revit中,調(diào)整太陽方向,可以看到面板的動態(tài)變化。
面板的動態(tài)變化
-







