2.4 案例4:根据坐标数据自动放置幕墙嵌板

1.案例背景

Revit中自适应常规模型族的功能非常强大,在幕墙施工BIM应用中,特别是针对异形幕墙嵌板的施工下料,非常便捷。利用Dynamo软件,按幕墙嵌板坐标放置自适应族,精确地创建BIM模型,为后续BIM落地应用打下基础。

本案例幕墙有三类异形嵌板:三角形、四边形和五边形,如图2-46所示。这里通过处理坐标数据,放置自适应嵌板族,精细化建模。

图2-46

2.解决方案

读取Excel数据→处理列表数据→按坐标放置自适应构件。

3.案例知识点

● AdaptiveComponent. ByPoints

● File Path

● File From Path

● Data. ImportExcel

● List. Transpose

4.案例详解

(1)原始数据处理并导入Dynamo。首先通过CAD处理图样数据,提取信息。因为有三类异形嵌板,所以需要将这三类嵌板的各角点空间坐标,分别用Excel表格进行梳理,方便读取数据;本书的案例附件中已经给大家处理好了三角形、四边形和五边形幕墙嵌板的坐标数据,读者可以直接使用。

其次,打开案例项目,然后切换到Dynamo界面。

读取或写入Excel表格数据是项目中常见的方法,这里读取或写入表格文件的节点格式也基本固定,在其他项目中均可以使用。如图2-47所示,在ImportExport(导入导出)下的Date(数据)中有Excel和CSV文件的读、写节点,这里需要使用到Data.ImportExcel(将Excel数据导入Dynamo)节点。

输入Excel文件到Data.ImportExcel节点中,并告知程序具体要读取的是文件中的哪个“工作表”。在ImportExport下的File System(文件系统)中有这样一组节点,分别是File Path(读取文件路径)节点和File From Path(读取路径下的文件)节点,如图2-48所示。

图2-47

图2-48

读取表格信息,结合Data.ImportExcel(将Excel数据导入Dynamo)节点的相关知识,完成数据读取,如图2-49所示。

图2-49

(2)按要求处理数据。接下来需要对数据进行处理,即对List列表进行处理。以三角形嵌板为例,每一个三角形嵌板的位置由三个空间点(坐标)确定。找到所有三角形嵌板的角点坐标,每三个点为一组数据,形成如图2-50所示的二维列表,根据这样的列表才能对应放置三点自适应族。

通过List.RestOfItems(删除列表第一项)节点去掉表头数据。以第一个三角形嵌板数据为例,第0项为序号,其后每三项为一组数据,即一个点坐标的x、y、z坐标值(图2-51)。

图2-50

图2-51

第1.12节中有过类似数据处理,通过转置List.Transpose(互换列表行和列)节点或List.GetItemAtIndex(根据列表索引获取项)节点来提取有用数据;这里采用转置列表的方法提取数据,不再详述,生成所有三角形嵌板的空间点,如图2-52所示。

列表的处理是为了更好地放置三点自适应族,而不只是生成点。要实现图2-50所示二维列表的目标,还需要再次使用List.Transpose(互换列表行和列)节点进行转置,如图2-53所示,这便实现了以每个三角形嵌板为单位的分组。

图2-52

图2-53

(3)根据二维点数据放置自适应幕墙嵌板。点的数据已经处理好,接下来就放置自适应族。对Revit中自适应族的操作,在Revit→Elements(Revit图元)→AdaptiveComponent(自适应构件)中寻找节点。如图2-54所示,AdaptiveComponent.ByPoints(通过二维点列表数据放置自适应构件)节点便是根据点放置自适应族。

连接已有节点,在Family Types(族类型)节点中选择“三点自适应嵌板族”,运行之后便完成了三角形幕墙嵌板的布置,如图2-55所示。

图2-54

图2-55

同理,按照以上方法完成四边形和五边形自适应族的放置。

提示1

如果需要同时完成所有自适应族的放置,这里需要使用到Dynamo播放器。

提示2

案例文件中包含了需要用的自适应族文件。