bim怎么建立面?dynamo从模型线创建立面
文章来源:BIM便利屋
成果预览
该模块用来帮助我经常遇到的问题,尤其是在处理形状不规则的大型项目时。针对于大型项目,比如具有多面立面的体育场,使用该方法创建内部立面非常有效。
分步解析
1.拾取模型中的元素。从这些元素中提取曲线,作为基础曲线。
2.提取到基础曲线,我们就可以开始从这些曲线中获取脚本所需的信息。
Curve.StartPoint和Curve.EndPoint分别是获取曲线的起点和终点。使用List.将这些点组合成一个列表。利用List.Transpose对结果进行转置。如果你不熟悉这个转置概念,可以理解为是用来将矩阵中的行数与列数交换,或者反过来。可以从下面的两个观察节点中看到,左边是转换之前的节点,右边是转换之后的节点。
另一方面,使用
Curve.CoordinateSystemAtParameter节点,在曲线的参数点处创建一个坐标系统(X轴与该点处曲线的法线对齐,Y轴与该点处曲线的切线对齐),设置为参数0.5,取曲线的中点。利用这个新的坐标系,我们创建了一系列的工作平面,来获取平面X轴方向的单位向量。
使用Point.ByCartesianCoordinates将坐标系统转换为点,即(X,Y,Z)格式。
3.使用Geometry.Translate节点移动第2部分中提取的中点和端点。分别用于创建立面标记的位置和立面视图裁剪轮廓。数字滑块允许我们根据模型线调整这些点的位置。
下面显示了本节内容的图表。这是基于一个十二边形组成的模型线。
4.再次转置用于创建立面视图裁剪轮廓的基础点,这样我们就可以将列表切换回原来的两项形式。使用List.FirstItem和List.LastItem分别提取列表第一项和最后一项的值。
5.现在我们已经在两个单独的列表中拥有了所有平移后的曲线端点,可以利用Line.ByStartPointEndPoint创建新的曲线。这些曲线将构成裁剪视图边界的基础。Curve.ExtendEnd为延伸曲线。添加这个节点是为了让我们可以根据脚本中指定的值来扩展裁剪视图。
6.再次获得新曲线的起点和端点,并进行转置,以获得与第2部分相同的结果,第2部分是各自子列表中每个裁剪视图的端点。
7.与第3部分类似,不过这次是在Z轴上使用Vector.ZAxis进行上下平移。
8.再次对列表进行转置处理,以便将所有端点分组在一起,并以第4部分相同的方式收集每个端点。所有这些点现在形成了将要创建的每个裁剪视图的边界点。把它们在列表中分组在一起,按逆时针顺序创建列表节点。
9.再一次进行列表转置,我们现在在它们自己的子列表中拥有每个裁剪视图的所有点。使用PolyCurve.ByPoints创建多段线。接着使用PolyCurve.Curves来获取这些曲线。这样就可以在Python脚本中使用它们。现在创建的多边形曲线如下图所示。
10.在创建立面视图之前,我们需要选择要使用的ViewFamily类型。接着使用Code节点提取。这部分使用了Python脚本。详细内容请查看DyPython笔记:
11.最后一个部分也是利用Python脚本完成的,详细内容请查看DyPython笔记:
小结
该程序比较简单且实用,没有太多的逻辑关系,值得牢记的是:
Curve.CoordinateSystemAtParameter
是根据曲线的参数点,也就是区间[0,1]来创建坐标系统的,也可以理解为工作平面。其中X轴和Y轴的方向不要弄混淆。
列表转置出现的频率非常高,一定要掌握。
PolyCurve一般都是先转换成Curve来进行使用的,经常和PolyCurve.Curves结对出现。
完
谢谢观看
原创不易
转载请与我联系
BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!
相关培训