温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
Revit
二次开发
三维
地质模型
信息
读取
方法
研究
程浩
42http:/电 力 勘 测 设 计第1期DOI:10.13500/j.dlkcsj.issn1671-9913.2023.01.008基于 Revit 二次开发的三维地质模型信息读取方法研究程 浩,李 志,陈 俊,田龙强(中国电力工程顾问集团中南电力设计院有限公司,湖北 武汉 430071)摘要:为解决三维设计场景下地质勘察专业到结构设计专业之间的地层信息的数据贯通问题,本文基于 Revit二次开发技术,以读取 ItasCAD 导出的三维地层模型为例,介绍了地层信息的读取方法,从而获取勘察区域内的地层分布情况并关联地层属性信息,实现了站区全范围地层分布的查询功能,可提升设计专业查询地质信息的效率。关键词:BIM;Revit 二次开发;三维地质模型;设计数据贯通中图分类号:TP311 文献标志码:A 文章编号:1671-9913(2023)01-42-07Research on Reading Method of 3D Geological Model Information Based on Revit Secondary DevelopmentCHENG Hao,LI Zhi,CHEN Jun,TIAN Longqiang(Central Southern China Electric Power Design Institute of China Power Engineering Consulting Group,Wuhan 430071,China)Abstract:In order to solve the problem of data connection between the geological survey major and the structural design major in the 3D design scenario,based on the Revit secondary development technology,this paper takes the 3D stratum model exported by ItasCAD as an example to introduce the method of reading the stratum information.This method can obtain the stratigraphic distribution in the survey area and correlate the stratigraphic attribute information,and realize the query function of the stratigraphic distribution in the whole range of the station area.This method can improve the efficiency of the design professional to query geological information.Keywords:BIM;Revit secondary development;3D geological model;design data integration*收稿日期:2021-07-26 第一作者简介:程浩(1991),男,硕士,工程师,主要从事变电土建设计和数字化工作。0 引言当前,工程设计正快速从传统的二维设计向三维设计迈进,随着建筑信息模型(building information modeling,BIM)技术的普及,一些传统的设计方法也在不断地被新的信息化技术所替代。岩土工程勘察报告是各类工程结构专业设计的重要输入条件和设计依据,设计专业需要从中获取地表高程、各地层厚度及分布、岩土物理力学指标等信息。采用传统方式从钻孔剖面图、地质剖面图以及勘察报告中获取以上信息的过程较为繁琐,效率低且容易出现差错。目前,国内外诸多科研机构和工程勘察企业已经能够借助 BIM 技术建立三维地质模型并应用于工程1-4,由于其采用了特定的算法,理论上43基于Revit二次开发的三维地质模型信息读取方法研究http:/ 企业数字化转型与工程数字化创新 第1期 准确性将优于传统方法。但是,由于业务划分及技术层面的原因,建立三维地质模型所采用的平台(如 CATIA、ItasCAD 等)往往与设计平台不同,使接收地质勘察资料的下游设计专业难以直接利用三维地质模型及相关数据,专业间数字化的信息传递方式中断,三维设计的优势无法进一步得到发挥。Revit 具 有 开 放 的 应 用 程 序 编 程 接 口(application programming interface,API),便于进行二次开发,具有良好的扩展性,因而被广大设计企业用作三维设计的基础平台。由于三维地质模型在岩土工程专业软件中建立,其文件或数据格式并不能完全被 Revit 软件识别,因而难以直接被下游专业使用,协同设计的目标受阻,此时只能考虑开发相关的程序以实现地层信息的读取。饶嘉谊5等通过在 Revit 软件中编写插件,读取勘察报告的钻孔数据,以插值的方式生成三维地质模型。范光龙6等设计了相关地质模型创建程序,应用 Dynamo 创建地形地质实体模型并将其置入 Revit。以上两种方式均通过勘察专业提供的钻孔资料在 Revit 软件中实现了三维地质模型的创建,但相对于专业的地质建模软件,其地层模拟算法的准确性有待考量。陈国良7等通过工业基础类(industry foundation classes,IFC)实体扩展及属性集扩展模式,建立了面向三维地质模型的扩展模型,实现了 IFC 文件中的地层信息与地质属性的扩展和集成,但该方法需要针对不同的地质建模软件开发数据转换插件,在接收IFC 地质资料的软件端也需要安装相应的插件解析数据,从而保证地质模型的正确转换和解析,因此其适用性存在一定的限制。本文将从地质资料接收专业的角度出发,探讨一种基于 Revit 进行二次开发以读取地质信息的具体实现方法。1 主要技术路线IFC 标 准 是 由 国 际 协 同 工 作 联 盟(International Alliance for Interoperability,IAI)为建筑行业发布的建筑产品数据表达标准,用于在不同的软件平台之间共享工程数据,在全球已得到广泛应用。目前较多三维地质建模软件以及包含 Revit 在内的多数三维设计软件对IFC 格式的文件具有较好的支持,因此可借助IFC 文件实现地质信息的传递。Revit 虽然能够打开 IFC 格式的地层模型文件,但在未经特殊处理的情况下,从三维地质建模软件中导出的地层模型一般不包含工程地质属性信息,仅保留地层的几何模型及地层编号或名称等标识,因此只能用来模拟各地层的分界面,而工程地质属性信息则需要采用其它方式传递。鉴于接收地质资料的专业一般对地质信息的需求并不复杂,将地形模型和地质信息分开传递再进行关联输出也是一种简便可行的方式。工程地质属性与地层标识具有一一对应关系,可将各地层的地质属性信息导出为格式化的数据或制作成数据表,则从 IFC 地层几何模型中仅需要获取给定位置处地层的几何信息及其标识,然后再与对应地层的工程地质属性关联,即可得到给定位置处完整的地质信息,整体实现过程如图 1 所示。三维地质模型IFC地层几何模型文件工程地质属性信息数据文件Revit地质信息读取程序给定位置处地层分布地层工程地质属性给定位置处地质信息数据图1 三维地质模型信息的转换与传递过程各三维地质建模平台采用的数据结构和地质模拟算法一般不同,其导出的 IFC 文件的数据结构也不相同,地层模型可能被处理为地层分界面,也可能被处理为实体,但通过 Revit 解析之后,最终都将表现为几何基元类8或其组合,如 Face、Edge、Mesh 或 Solid 等,它们的几何信息都可以通过 Revit API 提供的相关属性或方法来获取,区别在于相关元素的查找和判断的过程有所不同。鉴于三维地质建模软件众多,本文以 ItasCAD 软件导出的模型为例介绍具体读取方法,对于其它软件导出的地层模型,可参考本文方法,根据具体情况编写读取地层几何模型的代码。44http:/电 力 勘 测 设 计第1期2 开发实现图 2 为从 ItasCAD 软件导出的 IFC 格式的三维地层模型,地表及每个地层的底面被处理为多个三角网格(Mesh)组成的曲面,曲面之间为空,没有填充表示土体的实体模型。各层的地形曲面在 Revit 中的族类型为“场地”。图2 IFC格式的三角化网格三维地层模型给定点地表投影点投影点投影点地层1分布范围地层2分布范围地层1底面地层2底面图3 地层的地形网格曲面及投影点如图 3 所示,由于各地层的底面为网格化的曲面,对于勘察区域平面内的给定点,其在各层三角网格面上投影点之间的区域即为该点处各地层的分布范围,投影点的标高即为地层底面标高,各地层的厚度即为相邻投影点标高的差值。地层属性信息在地质模型文件外部通过数据表保存,通过地层标识即可进行查询。程序可以分为以下过程来实现:1)打开地质模型文件,获取地层网格曲面元素;2)求解投影点坐标,获取地层分布;3)查询并关联地层属性信息。以下将分别讨论具体的实现方法。2.1 获取地层网格曲面元素若要获取各三维网格的几何信息,必须先获取模型中所有的三维网格曲面元素。对 IFC 文 件 的 读 写 操 作 需 要 在IExternalCommand 接 口 的 Execute 方 法 中 实现。打开 IFC 地质模型文件可采用 Application.OpenIFCDocument 方 法,也 可 先 将*.ifc 文件 另 存 为*.rvt 文 件,再 采 用 Application.OpenDocumentFile 方法打开,后者打开文件的速度更快。以上两种方法仅将模型文件加载到了内存当中,而并未在 Revit 的用户界面中显示。对打开的文件应用过滤器,以获取各地层三维网格曲面的实例:FilteredElementCollector collector=new FilteredElementCollector(doc);ElementCategoryFilter filter=new ElementCategoryFilter(BuiltInCategory.OST_Site);IList soilLayerElements=collector.WherePasses(filter).OfClass(typeof(FamilyInstance).ToElements();此处的过滤器使用了 Revit 内建族类别BuiltInCategory.OST_Site 作为参数,对于不同三维地质软件,其导出的地层模型族类别可能不同,可在 Revit 中查看地层网格曲面所属具体的类别之后,再确定过滤方式。2.2 获取三角网格如图 3 所示,在 IFC 地层模型文件中,每个地层曲面被划分为多个三角网格,求解曲面上投影点的过程即转化为求解三角网格所在平面上的投影点的过程,因此需要先获取投影点所在的三角网格。Revit API 提 供 了 MeshTriangle.get_Vertex方法获取三角网格在局部坐标系下的角点,可通过坐标变换之后获取其在世界坐标系中的坐标。在 xoy 平面,对于任一三角形网格,当给定点的坐标在其所有角点坐标的最大值与最小值所形成的区间之外时,给定点的投影明显在该网格之外,可快速排除;反之则需进行精确判断,可以采用如下方法:判断给定点和三角网格在 xoy 平面中投影的相对关系,设有与三角形网格三边同法线的三个向量,其方向形成闭合面(即向量相互首尾相连),当给定点均在三个向量的同一侧时,则可判定该点在三角形内。对于向量 p、q 有如下性质:若 p q 0,则 p 在 q 的顺时针方向。若 p q 0,则 p 在 q 的逆时针方向。若 p q=