首页 理论教育 Excel数据批量创建及修改楼层

Excel数据批量创建及修改楼层

时间:2023-11-06 理论教育 版权反馈
【摘要】:图4.3Excel范例新建项目文件,运行Dynamo 并打开范例文件“01 自动创建楼层.dyn”。图4.4读取Excel 数据表格“获取数据”节点组作用为读取Excel 中的楼层名称及高度数据。可尝试修改Excel 数据,重新载入,测试生成“楼层”是否会同步修改。

Excel数据批量创建及修改楼层

1)设定目标

楼层设置是项目初期的重要流程之一,简单说来就是通过“楼层”命令定义垂直方向的高度。在Revit 界面中建立一个楼层后可以用复制或阵列的方式建立其他楼层,缺点是难以控制命名及无法批量修改。首先,“楼层”的命名只会根据名称的末尾数字自动编号,比如若第一层叫作“楼层01”,接着往后复制时,Revit 就会自动命名后续楼层为“楼层02”“楼层03”……但大多数时候我们的命名方式会复杂很多,因此如果用复制或阵列建立的40 个楼层的命名不符合规范,就只有用手动点击改动40 次的方式来弥补了。其次,无法批量修改,概念阶段标准层或非标准层高度的调整或修改通常比较频繁,比如5~17层的标准层高度之前是3.6 m,现在想要尝试一下3.3 m 或者4.2 m 层高的效果,就只有重复地点击修改,并且难以兼顾到跟其他层的高度关系。

这样的修改在Excel 中进行的话,数据的处理及修改会方便很多,而在这个任务中Dynamo 的功效就是用Excel 的数据来驱动Revit 的楼层建立流程,以达到批量建立及批量修改的目的。通过这个过程,不仅可以简化设置楼层过程中的重复性操作,也可以通过控制表单更方便快捷地进行设计方案演绎,比如快速模拟不同标准层高对整体立面的影响等。

2)节点思路

建立Excel表格,输入楼层名称及高度数据(见图4.3);在Dynamo 中读入Excel 表格,并清理规整数据,比如除去表头与转置排序等操作(见图4.4)。接着根据楼层高度与楼层名称数据创建“楼层”。脚本节点群组主体结构如下:

①读取Excel 表格数据。

②清理规整表格数据(获取楼层高度及名称)。

③使用高度及名称数据建立楼层。

3)分步说明

Excel 表单的创建要尽量简单清晰,只录入必要信息,信息量大的时候可以分多个工作表。因为楼层数据相对简单,此案例中只要建立单一工作表,并录入楼层的名称及高度信息即可。

图4.3 Excel范例

(1)新建项目文件,运行Dynamo 并打开范例文件“01 自动创建楼层.dyn”。(www.xing528.com)

图4.4 读取Excel 数据表格

“获取数据”节点组作用为读取Excel 中的楼层名称及高度数据。调用“File Path”和“File.FromPath”定义文档路径并获取文档。接着使用“Data.ImportExcel”,SheetName 输入“楼层信息”字符串;readAsStrings 的默认值是False,意思是读入的数值不会被转换成字符串;showExcel 的默认值是True,意味着运行该脚本是会自动打开Excel文件。点击运行可以获得二维列表。Dynamo 读取Excel的顺序是从左到右,从上到下。因此第一项子列表读取了第一行数据[0]名称、[1]高度,第二个子列表则读取第二行楼层名称及高度的数据[0]一楼、[1]3000,以此类推,形成所有楼层的数据列表。第一项子列表的表头信息不是需要的数据,因此使用“List.RestOfItem”删除第一项,接着调用“List.Transpose”将列表转置,即将每一个子列表的第一项取出来,组成新列表的第一项,以此类推。行列互换后第一项子列表为楼层名称信息,第二项为楼层高度。节点配置参考图4.5。

图4.5 Dynamo 节点范例

(2)前两组节点的功能是获取及处理数据,最后一组节点的目的则是根据数据创建楼层。创建楼层的节点“Level.ByElevationAndName”需要两组信息创建楼层,elevation 入埠处需要输入高度信息,name 入埠处则需要输入名称。这两个信息都已经存在于“List.Transpose”的表单里,只需要将表单拆分成两个子列表,即可以与节点“Level.ByElevationAndName”连接。这里使用“List.GetItemAtIndex”节点来拆分子列表,list 处连接需要拆分的表单;index 用来定义需要获取的子列表的序列。0 代表0 List,列出楼层名称,比如一楼、二楼等,1 代表1List,列出楼层高度信息,比如3000、8000 等。连接子列表到相应节点入埠处,运行后到Revit 界面检查楼层信息(见图4.6)。

图4.6 创建楼层

4)实现目标

如图4.7 右侧所示,运行脚本后即可根据Excel 中的信息批量生成“楼层”,而不需要一层一层地复制粘贴。可尝试修改Excel 数据,重新载入,测试生成“楼层”是否会同步修改。

图4.7 成果范例 Revit VS Dynamo

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈