随着BIM技术在工程行业的普及,不少设备供应商也因此被拉下了水,一些项目的BIM实施细则就要求设备进场之前就必须提供设备的LOD400-500精度的BIM模型。BIM的精髓在于信息,做的再精细而没有信息的模型也只能当成“花瓶”来看。信息是模型的灵魂,毕竟有趣的灵魂才万里挑一。那么就来研究一下批量添加设备族参数信息。

        思路是这样的:先从表格中读取参数名和相应参数值,根据读取到的参数名新建族参数,将参数值写入到对应的参数名中去。这看上去就和把大象放进冰箱那三步是一样的简单。

  1. 从excel表格读取数据

先把参数信息整理成如下图的表格:

用Data.ImportExcel从excel表格文件中读取数据,由于dynamo读取数据默认是按照行读取,并且第一行的表头是无效数据,所以通过List.RestOfItems只保留除第一行外的数据并进行行列转置List.Transpose将数据处理成需要的形式。

    2.新建参数

        新建参数用到的是Orchid节点包中的Parameter.AddParameter节点,分别配置输入端:用Orchid节点包中的Document.Current获取当前文档,第一步读取到的参数名,参数类型为文字,参数分组为文字,提示这里设置为空“”,非实例参数(即类型参数),非报告参数。

    3.参数值写入

写参数值主要是用Parameter.SetValue,输入端分别输入:当前文档,当前文档的族类型,参数名,参数值。由于建参数和写参数存在先后的逻辑关系,建完参数后,才能写参数。这里用到的是DataStream.Await节点,同样位于Orchid节点包中,waitFor是先运行的等待的节点,pass的是后运行的被等待的节点。若没有此节点在写参数是程序会报错提示找不到该参数。

看一下运行效果:

同样的,可以用同样的方法批量添加共享参数。

补充一下:一开始我是想通过Parameter.CreateProjectParameter配合Element.SetParameterByName来实现此功能,发现并不奏效,因为用Parameter.CreateProjectParameter是在项目环境中创建的项目参数。这样做将族载入到项目中在项目环境下运行程序,看似参数名也加上了,参数值也写入了。但是添加的参数信息只能依附于当前的项目环境,并不能独立存在于其族环境。

        好了,今天的文章批量添加族参数(上)实际是为单个族文件添加批量的参数就到这里,下次写一下批量添加族参数(下)为批量族文件添加单个参数。

欢迎阅读,分享,交流,批评指正。

如转载请注明出处,否则追究法律责任(说说而已,全靠自觉)。

1

评论0

请先

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站
普人特福的博客cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress
Baidu
map