Dynamo数据淘金——04//导出数据到Excel

这一节将会把Revit中的数据导出到Excel文档,从而实现快捷编辑的目的.众所周知,对于同类型的大量数据进行修改时,Excel始终是首选.这些数据包括房间数据、门窗数据、族构件数据等等.在Revit中,明细表有着Excel的功能,对数据进行了罗列与提取,然而缺点是批量修改困难,优点是数据的同步更新.而通过将数据导出到Excel再进行修改的方法却仍然需要将数据导入Revit以实现数据同步的目标,这一点将在下一节阐述.

把Revit中的数据导出到Excel文档,以房间为例,理论上有两种方法:一是创建明细表后导出txt数据;二是利用Dynamo获取参数数据导出.
一、创建明细表后导出txt数据
(1)打开自带案例文件,创建房间明细表

(2)添加明细表字段

(3)先按照标高进行排序成组,再按照编号排序

(4)生成如下明细表

(5)执行文件——导出——报告——明细表


(6)导出时取消复选框,导出列页眉,即可导出txt数据

(7)新建Excel文档,打开txt数据

(8)默认下一步,即可导入数据


在此基础上进行数据修改即可(数据仅为示范)

二、利用Dynamo获取参数数据导出
既然明细表可以导出数据,为何还使用Dynamo导出数据呢?因为考虑到Excel数据的导入,修改后的数据要实现"数据同步",就应将这些参数与房间挂钩,这些可以通过Dynamo实现.因此,利用Dynamo获取参数数据导出不仅是另一种思路,也是为了更好理解Excel数据导入的必经之路.
(1)打开Dynamo,建立Data.ExportExcel节点

(2)完善节点,指定文件路径名称(filePath)为test01;表单名字为"房间明细表";开始行列(startRow startCol)为0,代表从Excel的第一行第A列开始写入数据;覆写(overWrite)为True,代表文件允许覆盖重写.

(3)节点只剩下data为空,下面开始获取data.最后将data接入即可.
(4)获取房间元素.形成列表.

(5)对房间列表进行成组,以"标高"为关键词成组(案例文件有Level1与Level2两个标高,因此房间列表被分成两个列表)

(6)再对房间进行排序,按照编号进行排序.有一点需要注意,由于上一步进行了成组操作,房间列表成了二级列表,因此要将List.SortByKey的级别改为二级.

(7)将列表压扁拍平成一级列表,并查看编号参数.发现排序没问题,但按照标高分组时,默认将Level2排在了Level1前面(先是20X,后是10X).

(8)修改节点,保证Level1在前,Level2在后.

(9)再次获取"标高"、"名称"参数.并将三个参数创建新列表.

(10)对列表进行转置并增加表头标题.应清楚每个子列表对应的是Excel中的一行.

(11)将此节点接入Data.ExportExcel节点的data接口,即可实现数据Excel导出.


好啦,大功告成!