首页 理论教育 Excel数据批量创建图纸,基于Revit的制图实践

Excel数据批量创建图纸,基于Revit的制图实践

时间:2023-11-06 理论教育 版权反馈
【摘要】:同样需要在Dynamo 中读入Excel表格后清理并规整数据,接着根据图纸名称与编号数据批量创建“图纸”。图4.11录入图别及图号信息4)实现目标如图4.12 所示,运行脚本后即可根据Excel 中的信息批量生成“图纸”,并可进一步批量录入其他信息。可尝试修改Excel 数据,增加需要批量修改的属性信息,测试生成“图纸”信息会否同步更新。

Excel数据批量创建图纸,基于Revit的制图实践

1)设定目标

选用Excel 数据输入能简化Revit 的很多日常工作流程,又比如图纸创建部分,Revit 只支持单一的图纸创建,并且创建完毕后还需要一一输入图纸名称、序号、类别等数据。规模较大的项目一次性出图量几十上百是常事,这个时候Excel 的数据编辑功能和Dynamo 的自动化流程就非常有必要了。

2)节点思路

建立Excel 表格,图纸族中的一部分标签信息是可以根据项目文件设置自动显示的,这里主要需要录入的信息是图纸名称及图纸编号,有时因为公司标准的不同,需要录入更多的信息,可根据此范例类推。同样需要在Dynamo 中读入Excel表格后清理并规整数据,接着根据图纸名称与编号数据批量创建“图纸”(见图4.8)。脚本节点群组主体结构如下:

①读取Excel 表格数据。

②清理规整表格数据(获取图纸名称及图纸编号)。

③使用图纸名称及图纸编号数据建立图纸。

④根据表格数据输入图别、图号信息。

3)分步说明

(1)新建项目文件,运行Dynamo 并打开范例文件“02 自动创建图纸.dyn”。

图4.8 Dynamo 节点范例

“获取数据”节点组作用为读取Excel 中的图纸编号、名称、图别及图号。调用“File Path”和“File.From Path”定义文档路径并获取文档。接着使用“Data.ImportExcel”,SheetName 输入“图纸信息”字符串;readAsStrings 及showExcel 保持默认值设置。点击运行可以获得二维列表:第一项子列表读取数据[0]图纸名称、[1]图纸编号、[2]图别、[3]图号,第二个子列表则读取第二行数据[0]封面、[1]000,由于封面图别及图号为空,因此[2][3]显示为空,以此类推,形成所有图纸的数据列表。可尝试根据需求增加列表信息,如绘图员、审图员、发布日期等。调用“List.RestOfItem”和“List.Transpose”清理表单并将其转置为新的顺序。节点配置参考图4.9。

(www.xing528.com)

图4.9 读取Excel 数据表格

(2)创建图纸的节点“Sheet.ByNameNumberTitleBlockAndView”需要4 组信息创建图纸,sheetName 入埠处需要输入图纸名称,sheetNumber 入埠处则需要输入图纸编号。这两个信息都已经存在于“List.Transpose”的表单里,只需要取出表单中前两个子列表,即可以与节点连接。这里使用“List.GetItemAtIndex”节点来拆分子列表,调用“Code Block”取出0 List 图纸名称及1 list 图纸编号,连接子列表到相应节点入埠处;TitleBlockFamilyType 入埠处调用“Family Types”节点选定图纸族类型,此处A1公制图纸族;view 入埠处引用“Views”赋予任意视图,后续再根据具体要求进行版面配置。运行后到Revit 界面检查图纸信息。同时在图4.10 节点配置中也可看到节点“Sheet.ByNameNumberTitleBlockAndView”的下拉列表中已经形成了18 个子列表,即项目文件中已经成功生成了18 张图纸。

图4.10 创建图纸

(3)比起创建楼层,创建图纸部分多一个步骤就是录入图别及图号信息。经过上个步骤创建成功的图纸还没有录入图别/图号信息。同样将“List.Transpose”中的列表分别连接到两个“List.GetItemAtIndex”节点取得2 List 图别及3 list 图号列表。因为需排除无图别、图号信息的图纸(即封面和目录),调用“Object.IsNull”及“list.FilterByBoolMask”节点,前者判断列表是否有空值,为空则输出“True”,不为空则输出“False”;后者可以根据布林值将表单分类,对应“True”的分项从in 位置输出,而对应“False”的分项则从out 位置输出。

如图4.11 所示调用“Element.SetParameterByName”节点两次,element 入埠处均接入过滤后的图纸表单;parameterName 入埠处分别写入图别及图号字符串,意为将信息写入这两个属性值内;value 入埠处则连接过滤出的图别/图号信息,及两个“list.FilterByBoolMask”节点out 的输出成果。

运行脚本,发现两个“Element.SetParameterByName”节点的下拉列表中均生成了16个分享,列表中总共为18 张图纸,除去不包含图别及图号信息的封面和目录,正好16 张图纸被重新录入了信息。最后检查项目文件中图纸文件,查看是否所有信息都正确显示。

图4.11 录入图别及图号信息

4)实现目标

如图4.12 所示,运行脚本后即可根据Excel 中的信息批量生成“图纸”,并可进一步批量录入其他信息。可尝试修改Excel 数据,增加需要批量修改的属性信息,测试生成“图纸”信息会否同步更新。

图4.12 成果范例

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

我要反馈