Dynamo_导入图纸信息

来源:建筑界编辑:黄子俊发布时间:2020-03-22 19:39:22

[摘要] =======================修正================================================原文=========================想用Excel先把图

=======================修正=========================

=======================原文=========================

想用Excel先把图纸信息编辑好,然后导入Revit对图纸进行修改。

看到一些插件其实也有类似功能了,这次使用Dynamo做一个简单的尝试。

实现的逻辑其实相对简单,首先获取Revit中所有图纸的图纸名称,然后将获得的图纸名称与Excel中记录的图纸名称比对,查找出Excel中图纸名称对应的数据,再将数据赋回Revit的对应图元的参数上。

而通过Dynamo实现这个过程的要点主要有两个:

1、比对图纸名称,获得对应的索引

我的方法是通过List.FirstIndexOf节点将两个数据做一个对应的查找,这样出来后的数据会出现很多-1,去掉-1后就是我们要拿到的索引,处理的方法比较多,我这里直接用GroupByFunction取出来,取得索引后面就可以获得对应的数据了。

2、要注意输出的列表结构

设置Revit元素的参数节点是Element.SetParameterByName,这个节点需要输入element,parameterName,value。要注意输入的每个element都要对应一组parameterName和value,也就是说一般输入应该对应的输入的列表结构分别是二级列表,三级列表,三级列表。value的值从Excel获取后保持三级列表是没问题的,parameterName可能先要通过List.OfRepeatedItem才能获得对应的列表。

这次只是简单的尝试,很多东西暂没有考虑,比如从逻辑上来说,我认为还可以先对Revit中的图纸信息先进行一次识别,如果与Excel中数据不一致再进行对应的修改,或者是否还应该对图纸中的视图进行一定的控制等等,期待后面有机会在这个方面进行深化。

以下为Excel格式:

图纸名称
<图纸信息1>
<图纸信息2>
···
<图名1>
 
 
 
···
 
 
 

以下为核心节点:

Dynamo_导入图纸信息

Dynamo_导入图纸信息

图纸,导入,信息

延展阅读

相关文章