Autodesk Revit参数化设计之道:Dynamo实战剖析
上QQ阅读APP看书,第一时间看更新

2.5 案例5:异形幕墙嵌板坐标提取

1.案例背景

异形幕墙施工中的难点在于空间定位。如果有准确的BIM模型,可以应用Dynamo软件自动提取异形幕墙上的任意一点空间坐标,代替人工。在本案例中,要求提取每一块幕墙嵌板的四个角点坐标(图2-56),并将其输入Excel表格中。

提示

概念体量相关知识点可参考《Revit体量设计应用教程》(柏慕联创 组编)。

2.解决方案

在项目中,有时可以借助Revit的功能,比如替换族。为了提取坐标,可以将族构件放置在要提取坐标的位置,并通过Dynamo节点获取族插入点的空间坐标位置,即目标点的坐标,最后将坐标信息提取并写入Excel表格。

3.案例知识点

● Element. GetLocation

● Element. SetPatameterByName

4.案例详解

(1)构造坐标点标记族。创建一个类别为常规模型的族来标记幕墙嵌板四个角点,族命名为“标记族.rfa”。勾选“基于工作平面”和“共享”,取消勾选“总是垂直”,这是便于在角点上放置“标记族”,以及能被Dynamo所读取,如图2-57所示。

图2-56

图2-57

提示

此标记族的作用是提取幕墙嵌板底部四个点的坐标。幕墙嵌板有六个面八个点,直接将幕墙嵌板坐标导出时,数据会比较混乱。Dynamo中提取标记族坐标时,提取的是插入点的坐标,因此制作此标记族时要保证底部顶点为族的插入点。

(2)放置坐标点标记族。打开案例文件中的幕墙嵌板族,载入“标记族”,分别设置自适应点的面作为工作平面并按原幕墙嵌板族中自适应点的编号顺序放置族构件;打开案例文件中的体量模型“异形幕墙嵌板坐标提取.rfa”,替换原幕墙嵌板族,结果如图2-58所示。

提示

放置顺序需要与自适应点的编号顺序保持一致。

图2-58

为了便于坐标数据的写入和统计,在幕墙嵌板族中分别创建X1,Y1,Z1,…,X4,Y4,Z4共12个实例参数,且为共享参数,便于明细表统计,如图2-59所示。

提示

12个参数分别是四个端点的三个坐标值。

图2-59

(3)提取坐标点位置数据。进入Dynamo编辑界面,读取“标记族”,在Revit→Elements(Revit图元)→Element(实例)中选择GetLocation(获取构件位置),Element.GetLocation(获取构件位置)节点用于获取“标记族”插入点的位置,即每块嵌板四个角点的位置,如图2-60所示。

图2-60

(4)数据处理。通过观察发现,每块嵌板有四个角点,且Element.GetLocation(获取构件位置)节点是按顺时针即自适应点编号顺序提取。列表中每四项为一组,接下来利用List(列表)→Modify(修改)下的List.Chop(将列表分割成指定长度的子列表)节点将该一维列表拆成二维列表,如图2-61所示。

图2-61

(5)设置对应幕墙嵌板坐标参数。读取体量文件中的幕墙嵌板族,如图2-62所示,需要将图2-61中的100组参数即400个坐标,写入100个幕墙嵌板族的对应实例参数X1,Y1,Z1,…,X4,Y4,Z4中去;这里需要用到Element.SetPatameterByName(根据参数名设置参数值)节点。

图2-62

要通过Element.SetPatameterByName(根据参数名设置参数值)节点分别输入X1,Y1,Z1……的值,首先要提取X,Y,Z值,在Geometry(几何学)→Points→Point,使用Point.X(获取点的X坐标数据)、Point.Y(获取点的Y坐标数据)、Point.Z(获取点的Z坐标数据)三个节点。

以Point.X输出的列表为例,这里每组数据包含X1,X2,X3,X4。而现在只需要X1,回忆之前的知识点,使用List.GetItemAtIndex(根据列表索引获取项)节点和“使用级别”,如图2-63所示。

图2-63

如图2-64所示,运行后便完成了所有幕墙嵌板X1坐标的提取。要完成所有坐标数据的提取,需要重复12次上述数据提取操作。这让节点工作变得烦琐,在后续章节中会讲解脚本语言,可以使用循环语法简化节点。

图2-64