基于API的BIM模型属性自定义二次开发研究

2024-03-27 08:27梁建波何成威朱乔利
水利技术监督 2024年3期
关键词:批量功能模块列表

梁建波,何成威,朱乔利

(湖北省水利水电规划勘测设计院有限公司,湖北 武汉 430072)

1 概述

水利水电行业的BIM应用已经进入比较成熟的阶段,基于BIM模型的应用也较为广泛,比如BIM正向设计、基于BIM的智慧工地、以BIM模型为载体的位置服务、以BIM+GIS为数据底板的数字孪生等案例众多,特别是以BIM+GIS为数据底板的数字孪生发展迅速、势头正猛。无论何种基于BIM的应用,都与BIM模型属性息息相关。各种基于BIM模型的应用都需要模型在不同软件、不同平台之间进行流转,而这种模型流转往往会导致模型属性的缺失,严重影响基于BIM的各类应用。

本文以Autodesk平台的主流软件Revit与Navisworks之间的模型流转为例,研究BIM模型属性缺失的解决方式,并通过基于API的二次开发实现BIM模型属性的批量添加,从而助力BIM模型的深化应用,为类似问题的解决提供借鉴意义。

2 问题提出

Navisworks和Revit软件是Autodesk平台的主流BIM软件,Revit主要用于BIM设计、建模及出图,Navisworks主要用于BIM模型的展示及应用服务,如整体模型融合、施工模拟、碰撞检查、场地布置等,两个软件之间往往需要配合使用,这就存在BIM模型的流转,同时附带BIM模型属性的传递,在具体应用过程中,经常存在导入Navisworks软件中的Revit模型属性丢失或者属性类型及数量不满足Navisworks应用需求的情况,这就需要返回到Revit软件中对模型重新添加属性,之后模型重新导入Navisworks中,重新进行定位、添加材质、绑定应用等,每修改一次属性,这一过程就要重复一遍,过程繁琐且效率很低。本文基于Navisworks和Revit软件进行二次开发,研究能够方便高效的对导入Navisworks中的Revit模型进行属性编辑的方法,助力BIM模型更方便的应用,具体来讲,本文旨在解决几个问题。

(1)通过Revit软件构建的所有模型和族均自带2个属性,即“项目名称”和ID号,其中ID号是唯一的,往往可通过ID号明确定位模型和族,故其所有的属性都可基于ID号添加。在Revit软件中添加属性一般通过属性面板实现,这就面临两个问题,一方面,不同类型的模型和族只能分别点选添加,过程比较繁琐;另一方面,Revit软件中可以添加的属性类型和数量不满足其模型和族在Navisworks软件中的应用需求,而Navisworks软件只能接收随模型流转的模型属性,软件本身不具备为BIM模型添加属性的功能。

(2)导入到Navisworks软件中的Revit模型和族的属性也会一并被导入,在Navisworks软件的特性面板中可以查看,但对于导入Navisworks软件中的模型不能在此软件中添加属性,同时模型也不能按照属性进行搜索和查看,这就导致在Navisworks软件中只能通过选择树面板和自建的集合进行查看模型,且不能进行搜索和排序等操作,且不能按照模型属性信息进行查看,查看搜索功能不够方便和灵活。

(3)Navisworks软件中的Revit模型在进行应用过程中,会经常不要补充添加一些模型属性,但Navisworks软件主要用于BIM模型的渲染、展示、集成等,软件本身不具备为模型添加属性的功能,根据应用需求,一部分模型属性需要返回Revit中进行添加补充,Revit中不具备的属性是无法进行添加补充,这就为Revit模型在Navisworks软件中的应用带来了障碍。

(4)水利水电工程中的BIM模型部件一般较多,在软件中为模型添加属性,需要分别点选添加,且不能通过Excel格式的属性表进行了快速设置,工作效率较低。

3 解决思路

针对以上问题,基于Autodesk平台软件API,开发相应的工具软件,实现为导入Navisworks软件的Revit模型快速、自由添加属性,并实现通过属性进行模型搜索查看功能。

3.1 补充属性

对于Revit模型部件属性添加效率较低,且可能存在Revit软件中可以添加的属性类型和数量不满足其模型和族在Navisworks软件中的应用需求的问题,考虑将Revit软件模型部件的“项目名称”和ID号属性导出为Excel表格,由于Revit模型的所有部件的ID号是唯一的,可以在Excel中为Revit模型各部件添加所需要的属性,形成BIM模型属性列表。

3.2 搜索定位

对于Navisworks软件中只能通过选择树面板和自建的集合进行查看模型,且不能进行搜索和排序等操作,考虑将BIM模型通过用户面板的形式展示,模型构建ID号唯一标示模型,每个ID号附带该部件所有属性,模型部件可按照属性值进行排序和搜索,通过点选属性列表也可对模型部件进行定位查看。

3.3 添加属性

对于Navisworks软件不具备为模型添加属性的功能,根据应用需求,一部分模型属性需要返回Revit中进行添加补充,Revit中未设定的属性是无法进行添加补充的,考虑先通过Excel表为模型部件统一添加需要的属性,再通过开发的属性编辑功能面板选择分别依次或批量为BIM模型部件添加所需的属性。

3.4 导入属性

对于部件较多的水利水电工程BIM模型,在软件中为模型添加属性,需要分别点选添加,且不能通过Excel格式的属性表进行快速设置,考虑开发可通过Excel格式的属性表一键导入的方式,再根据需求,选择分别点选添加或批量添加模型部件属性。

4 技术路线及功能实现

针对本文所提出的问题和相应的解决思路,基于Revit 2020 API和Navisworks 2020 API,在Visual Studio 2019开发平台上,依托.NET Framework4.8框架,采用C#编程语言进行针对性的Revit和Navisworks二次开发研究。

旨在解决本文所提出的问题,开发了BIM模型属性自定义及编辑工具软件,包含2个功能模块,即模型特性输出和模型属性匹配,模型属性匹配包括了查找与排序、单词添加属性、批量添加属性、删除项和导出等功能,如图1所示,模型特性输出是基于Revit软件的开发功能模块,如图2所示,模型特性匹配是基于Navisworks软件的开发功能模块,如图3所示。

图1 软件整体架构图

图2 模型特性输出功能模块

图3 模型属性匹配功能模块

BIM模型属性自定义及编辑工具软件的使用流程为:先通过模型特性输出功能模板批量输出所有Revit模型部件的名称及对应的ID,并形成.xls文件;在.xls文件中为模型添加属性;将Revit模型附加进Navisworks中;将.xls文件中的模型属性自动批量添加至Navisworks中的模型构件上;在属性匹配对话框中进行模型构件的查找和排序、搜索、点击定位、添加属性、编辑项和导出等操作;导出带有所有属性的.xls文件,如图4所示。

图4 模型属性匹配功能模块

4.1 模型特性输出

模型特性输出是添加进Revit附加功能模块面板中的功能模块,通过此模块可以一键快速批量导出模型构件的族实例名称及其对应的ID,导出数据以.xls的文件格式存储,以供Navisworks场景中模型的自动匹配定位和批量添加属性,如图5所示,在.xls格式的文件中批量添加模型构建属性,形成模型属性表,如图6所示。

图5 导出模型构件的族实例名称及其对应的ID

图6 批量添加模型构建属性

4.2 模型属性匹配

模型属性匹配功能可以批量快速的将.xls文件中的模型构建属性按照ID与Navisworks中的模型进行匹配,对匹配完成的模型可以通过对话框列表进行定位缩放、显示、查询、根据属性搜索、单词或批量添加属性、操作以及导出的操作。

点击模型属性匹配功能按钮,弹出文件打开对话框,点选导入模型构件属性文件,如图7所示,导入属性文件后,点选模型属性匹配,弹出模型属性匹配功能面板,如图8所示,点击功能面板的全部显示按钮,面板属性数据按照ID与模型构建对应匹配,并显示所有模型构建属性,如图9所示,文本框中输入需要查找构建属性的范围,根据构建属性范围自动搜索模型构件,并显示在面板列表中,如图10所示,点击面板中的升序和降序功能按钮,列表数据按照项目名称的升序和降序重新排列,如图11—12所示,点击面板ID属性表头,列表数据按照ID的升序重新排列,如图13所示。点击面板价格属性表头,列表数据按照价格的升序重新排列,如图14所示,点击面板某一构建项目名称,缩放定位该模型构建,如图15所示,通过项目名称选中某一构建后,点击单次添加,将面板中的价格属性添加至模型构建中,并在Navisworks中的特性面板显示,如图16所示,点击批量添加,将价格属性添加至面板列表中显示的所有模型构建中,并在Navisworks中的特性面板显示,如图17所示,通过Ctrl或Shift在面板列表中选择模型构件,点击删除项,可将面板列表中选中的项删除,如图18所示,点击面板中的导出按钮,可将面板列表中的数据导出为.xls文件,如图19所示,同理,模型编码及人员等构件属性可按同样方式进行自定义添加,如图20所示。

图7 导入.xls模型属性文件

图8 模型属性匹配功能面板

图10 按价格属性搜索结果

图11 按项目名称升序排列

图12 按项目名称降序排列

图13 按ID升序排列

图14 按价格属性升序排列

图15 模型构件缩放定位

图16 单次添加价格自定义属性

图17 批量添加自定义属性

图18 删除列表中的项

图19 将列表中的数据导出为.xls文件

图20 将列表中的数据导出为.xls文件

5 结语

针对模型在不同软件和平台中的传递导致属性丢失或者需要补充的问题,本文开展了基于Revit和Navisworks的二次开发初步探索,解决了为导入Navisworks软件的Revit模型快速、自由添加属性,并实现通过属性进行模型搜索、查看和定位功能。对BIM模型的深入应用具有一定的助力作用,对解决BIM模型在不同软件和平台流转过程中出现的属性缺失问题具有一定的指导意义。本文仅对Revit软件到Navisworks软件中的模型属性传递及属性编辑问题提出了解决方案,应用范围还较窄,在后续的工作中,将着重研究BIM模型在不同软件和平台中的属性传递问题,提出更加通用的解决方案。

猜你喜欢
批量功能模块列表
学习运用列表法
批量提交在配置分发中的应用
扩列吧
基于ASP.NET标准的采购管理系统研究
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
列表画树状图各有所长
浅议高校网银批量代发
功能模块的设计与应用研究
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改