创建Revit模型时,为了更好的服务后期BIM应用,创建族时会添加好多共享参数。通常情况,当族载入项目,模型创建完成后,都会通过明细表通过选择明细表字段,得到想要得到明细表。
举一个例子,大型乔木移植是绿化工程中一项非常重要的工作,为后期工程结算的需要,小编创建了这么一个族《一种可服务编制预算的植物族》
载入项目,通过明细表统计出项目大型苗木移植的工程结算清单。
但这里有个问题,该明细表需要导出TXT文件,再转化为Excel表格。应用起来还是不太方便
今天,小编介绍一种通过dynamo直接在项目中获取参数值并写入表格的方法。
1、在Revit项目文件中框选需要统计的图元,并读取相关参数的值。
(1)Selct Model Elements节点,选择所有拟统计的构件。该节点统计出选择的构件的数量、类型名称及ID,如上图左边节点所示。
(2)Element.GetParameterValueByName,通过参数名称获取图元参数值。该节点提供了两个输入(parameterName和element)和一个输出。如上图右边节点所示,参数名可以通过两种方式创建:
a、code Block创建参数名list。格式为{"N1","N2","N3".......},这里即输入各个想提取值的参数名(ParameterName),直接形成列表。
b、通过通过List.Create节点创建。如下图所示。
(3)多次尝试发现,dynamo是无法实现实例参数和类型参数同步读取。因此在读取类型参数时,需添加一个Element.Eelement Tpye节点。而读取实例参数时,则不需要该节点。
如此就将结果读取,并存入一个list。
2、创建一个空Excel表格。采用Excel.writeToFile节点,将读取的值写入表格。分别给输入端赋值filepath(文件路径)、sheetName(工作表名称)、startRow(初始行)、startCol(初始列)、date( 拟写入的数据)、overWrite(是否写入)。
3、data是由两个list组成:item作为表头,即由Code Block或List.creat创建的参数名称,而参数值(value)则是第1步节点读取到的参数值。
4、通过filepath节点选择目标Excel文件,点击运行,则表格自动生成。
读取完数据后,可以再通过其他数据加工,形成成果文件,以供业务应用。重新选择构件或者变更Code Block 的“字段”,重新运行,Excel相关数据自动更新。
这个过程需要注意如下两点:
1、该流程可以阶段输入自动创建Excel文件及表格名称。
2、在这个节点需要采用“叉积”才能将每种类型的每参数的值读出。
3、回到起初,在创建族的时候,族参数的设置,对后期的业务至关重要。
这也算是小编的第一个简单的dynamo应用,希望以后在应用过程中更多的dynamo应用分享给大家。