Dynamo-实例-随太阳转动的太阳能板
2020-12-31 本文已影响0人
DavidShawn
今天给大家介绍一个Dynamo的初级案例,难度不大,适合初学者。
案例是能随太阳转动的阵列太阳能板。基本结构很简单,包括垂直的杆件,杆件顶端的太阳能板。
首先来看看大体的建模思路:
- 创建一个点阵;
- 在Z轴方向复制这个点阵;
- 利用两端的点,创建圆柱阵列,作为支撑太阳能板的垂直杆件;
- 以顶点为圆心,创建能定义方向的圆;
- 用太阳方向作为创建圆的方向;
- 给圆做个内接四边形;
- 给四边形封面,加厚度,成为太阳能板;
- 返回到revit中,调整太阳方向,可以看到面板的动态变化。
下面,我们来具体操作一下:
-
创建一个点阵;
使用CodeBlock创建5组数列,数列的间距是1500,作为点阵的间距。
将这个数组同时传给点的x,y左边,就形成了间距为1500的方形阵列。注意节点连缀使用叉积。
创建一个点阵
-
-
在Z轴方向复制这个点阵;
我们给Z轴方向赋值1200,就是将这些点垂直向上复制并移动1200的距离。
在Z轴方向复制这个点阵
-
-
利用两端的点,创建圆柱阵列,作为支撑太阳能板的垂直杆件;
Cylinder.ByPointsRadius节点输入起始点和终点,然后我们定义圆柱的直径为50。就生成了杆件阵列。
创建圆柱阵列
-
-
以顶点为圆心,创建能定义方向的圆;
用我们刚才复制的顶端的点为圆心,使用Circle.ByCenterPointRadiusNormal节点,这个节点有个normal值待输入,可以定义方向。
创建能定义方向的圆
-
-
用太阳方向作为创建圆的方向;
SunSettings.Current节点和SunSettings.SunDirection节点,可以提供当前Revit项目中的太阳方向。将他们输入给圆的方向。
定义太阳方向
-
可以看到,已经能看到圆的方向变化了。
-
给圆做个内接四边形;
我们需要再加工一下,因为太阳能板一般不是圆形,我们可以利用内接圆的多边形。
创建四边形
-
-
给四边形封面,加厚度,成为太阳能板;
成板
-
-
返回到revit中,调整太阳方向,可以看到面板的动态变化。
面板的动态变化
-