Dynamo_导入图纸信息

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

修正1(临时图纸编号)


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

想用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>      
···      
以下为核心节点:


猜你喜欢

转载自blog.csdn.net/imfour/article/details/79018057