本文源自公众号:互联网螃蟹化石
本文介绍dynamo批量创建图纸,目前暂时没有好的办法自动把视图放置到图纸空间中,创建完成之后自己手动拖动视图到图纸空间中,这介绍创建图纸的方法;
作用
可以根据给定的excel表,批量创建图纸;
所需工具
revit:2018
dynamo;2.0(安装revit2018后默认自带)
Ms excel或者WPS表格
创建一个图纸
打开revit,点击管理-可视化编程-dynamo启动dynamo;
点击新建,弹出dynamo工作空间:
把自动运行调整为手动,写完程序再运行:
展开Revit——Views——Sheet:
单击ByNameNumberTitleBlockAndView,就会在工作空间中弹出创建图纸的节点:
节点的左边是需要输入的数据,节点的右边是输出的结果,我们需要给左边每个接口“灌入”数据,首先看sheetName,sheetNumber,鼠标悬停在sheetName时,有个string的提示符,说明需要输入的是string类型的数据(sheetNumber同理)
双击空白的地方,出现codeBlock,在里面输入"01"“给排水平面图”之类的文字,要带双引号;
把输入连接到两个输入端:
第三个titleBlockFamilyType,就是图框:
输入类型是familyType:
在搜索框搜索"familyType"(两个单词中间有空格),找到selection下的familyTypes,单击,然后选择图框,连接到titleBlockFamilyType:
最后一个输入是view:
同理,搜索框搜索view,选择selection下的views:
随便选一个视图,连接到输入端的view:
点击运行,回到revit空间,就可以看到图纸已经被成功创建;
批量创建多个图纸
了解怎么创建一个,创建多个的原理也是相同的,创建一个图纸需要一个数据,创建多个图纸只需一次输入多个数据就可以了;先用excel准备好多个数据,如下:
用dynamo读取excel数据
点击Office——Excel——ReadFromFile:
输入端需要file,sheetName,readAsString,file:
要获取file,就要用File.FromPath,File.Frompath需要path这个输入参数,要获取path,需要用到File Path,然后点击浏览,选择创建好的excel文件即可;sheetName是excel的工作表名称:
最后一个输入参数reasAsString默认为False,默认就可以;
先运行看看现在得到什么数据:
从结果可知,dynamo先读取excel行,再读取列:
我们不需要图纸编号,图纸名称这一行,而且需要第一列放一起,第二列一起:
需要在dynamo里面对数据进行处理:
List.Deconstruct可以生成第一行和除第一行以外的所有行:
然后进行行列转置,List.Transpose可以进行行列转置,结果如下:
接下来就是把之前单个数据替换成现在的多个数据:
用List.GetItemAtIndex读取列表中的某一项:
第0项是编号,第一项是图纸名称。注意看list前面的编号,把对应数据连接到输入端,点击运行:
批量生成图纸完成;(按我这个数据处理,处理出来的数据可能会有空值,运行会标黄报错,不过也可以生成,报错是报空值的错误,也就是说,你需要继续完善这个数据处理的过程,清除无用空值可以用list.clean,自行研究吧)
虽然是半自动,不能自动添加视图到图纸空间中,但半自动的程序,它也是个程序,好过没有程序,不一定非要写出很复杂、全自动、智能化等等,才敢拿出来用。剩下的优化完善,就交给各位大佬了,要是有办法批量放置视图到图纸空间中,求指点一下。
转载请注明来源本文地址:https://www.tuituisoft/bim/25545.html