我国基于STEP标准的PKPM模型转BIM模型程序研究
2023-04-02中国建筑科学研究院有限公司北京构力科技有限公司李建业张杰乐李欣
文|中国建筑科学研究院有限公司北京构力科技有限公司 李建业 张杰乐 李欣
0.引言
STEP 的英文全称为Standard for the Exchange of Product Model Data,中文名称为产品模型数据交换标准,由ISO 标准化组织维护和发布。主流的CAD/CAE 软件,例如Pro/E、CATIA、SolidWorks 等,都对STEP 格式文件提供了完善的支持。 能够支持STEP 格式文件的导入导出已成为一款优秀工业软件的重要评价标准[1]。在开源工业软件领域、为了体现程序的正确性、易用性、通用性等,无不支持STEP 接口支持,方便与国内外主流工程软件进行模型共享和数据互通,最大限度提高软件价值。
PKPM 在国内的建筑结构设计领域处于领先地位,数以百万计的多高层建筑的结构设计均由该软件完成设计,经过了充分的理论和实际工程的验证。PKPM 包括PM、SATWE、JCCAD 等模块,分别用于不同的设计流程环节。在BIM、CIM 数字化大背景下,PKPM 推出了基于SQLITE 数据库的开放的JWD 模型数据文件,包括节点、网格、截面、构件、荷载、楼层、设计参数等模型相关的全部信息[2]。基于该模型文件,第三方组织和个人可以开发出各种各样的数据接口程序,丰富完善和创新实现自身的业务场景和产品形态。
本文基于PKPM 开放的JWD 数据格式,开发出了PKPM模型导出STEP格式文件的接口程序,能够导出梁、柱、板、墙等常用结构构件。通过该接口,能够将PKPM 导入主流的CAD/CAE软件,能够进行对象浏览和编辑,实现建筑结构BIM 软件和工业软件的数据流通。同时,导出的模型文件也可以用于轻量化浏览,在云端、web 端实现BIM模型的查看。
1.软件开发
本程序使用C++ 编程语言在Visual Studio 2019 集成开发环境中进行开发,使用C++ 11 语言标准和标准模板库。使用的第三方库包括SQLite官方API,用来读取和解析sqlite 格式的文件。Assimp 图形库,用来保存和导入导出各种格式的文件。
本接口软件的基本流程图如图1所示。首先使用SQLite 官方提供的API 打开要导出为STEP 格式的JWD模型文件,与数据库建立连接。解析和遍历数据库中所必需的数据库表,包括楼层、网格节点、构件截面、构件定位等。将上述数据表的解析结果暂存为中间数据格式,并按实际物理关系组织为模型场景。将中间数据格式进行三角化,转换为Assimp 所支持的数据格式。三角化也是本程序中比较耗时的部分,因为STEP 没有很好的支持像PKPM 一样的参数化表达,所以需要先离散成STEP 所支持的三角面片格式。然后使用Assimp 提供的接口,指定文件路径和导出控制参数,将模型导出为STEP 格式文件。最后关闭数据库文件,清理所用资源,程序运行流程结束。
图1 模型解析、导入导出基本流程
1.1 JWD 数据结构
JWD 模型文件是基于SQLITE 数据库标准开发的,所有能支持SQLITE数据库的软件都可以打开JWD 模型文件。JWD 是由许多张具有实际工程意义的表组成,这也与PKPM 软件的操作使用逻辑相匹配。例如表示标准层的表名称为pkpmFloor,表示梁构件的表名称为pkpmBeamSeg,表示节点的表名称为pkpmJoint。
1.2 JWD 解析
本程序用到的JWD 的数据表总结如下。通过从相关的数据表解析和整理数据,组装出整体模型场景。主要数据表格及关键参数说明如下。网格表pkpmGrid,起点编号Jt1ID,终点编号Jt2ID。节点表pkpmJoint,横坐标X,纵坐标Y。楼层表pkpmFloor,标准层编号StdFlrID,标准层高度Height。梁构件表pkpmBeamSeg,标准层编号StdFlrID,截面编号SectID,网格编号GridID。梁截面表pkpmBeamSect,截面几何参数字符串ShapeVal。柱构件表pkpmColSeg,标准层编号StdFlrID,截面编号SectID,节点编号JtID。柱截面表pkpmColSect,截面几何参数字符串ShapeVal。板构件表pkpmSlab,板轮廓线节点坐标VertexX,VertexY,VertexZ。通过解析以上各数据表,生成程序中间格式表达的模型场景。
用SQLite 浏览器打开PKPM 生成的JWD 文件,其主要内容显示如图2所示。可以清楚的看到,JWD 是按照实际的工程和物理含义进行数据库组织的,每种对象类型对应一个独立的数据表,例如pkpmAxis 表保存了轴网相关的信息。
图2 JWD 模型文件主要内容
1.3 中间数据格式
在数字孪生、CIM、BIM 等信息化数字应用范式中,模型数据的无损共享和自由流动一直是研究的重点和难点。业界提出了数据中心、数据平台、数据中台等概念,其核心任务就是要解决模型数据的描述、存储、传输、共享、扩展等一系列实际应用问题。在理想情况下,希望能够用唯一的数据模型涵盖项目全生命周期和全业务参与方的所有应用场景。然而,近十多年的BIM 推广和应用用事实证明,唯一数据模型的思路是不可行的,只有针对项目不同的生命阶段、不同的参与方,提供对其有实际应用价值的模型数据,才能充分发挥数字化技术的最大效能。
本软件采用Assimp 开源库作为中间数据存储格式。Assimp 是当前流行的支持大量三维模型数据格式导入导出的开源库,提供与模型无关的中间数据格式表达,支持包括STEP、IGES格式在内的模型导入导出。Assimp 完美支持层次结构模型,能够自顶向下或自底向上组织模型场景。具体落实到建筑结构模型,我们采用构件(墙柱梁板)、楼层、单体结构、多塔结构、整体模型的业务逻辑顺序组织场景。
1.4 中间格式生成
与JWD 数据库相匹配,程序中建立所需的数据类,主要类如表1所示。
表1 主要模型数据类
中间数据平台包括节点、网格等定位信息,截面等几何尺寸信息,梁柱等构件信息,楼层等场景组织信息。每种对象类的主要内容如图3所示。模型Model 由楼层Floor 组成,Model中包含截面Section 数据。Floor 中包含节点Joint 和网格Grid 数据。Column、Beam、Slab 由Joint 和Grid 进行定位,并通过Section 进行截面尺寸描述。
图3 主要数据类依赖关系
1.5 导出STEP 文件
?
JWD 中对于构件采用截面加定位向量的方式存储构件,无法直接获取构件的顶点坐标及网格连接关系,因此在导出模型时,需根据构件的截面及定位信息生成三角面片。具体来说,构件类添加Mesh 函数,根据截面节点坐标在局部系下形成实体拉伸所需基面,然后用构件关联的轴网节点作为拉伸向量拉伸成实体,依次遍历构件实体的每个面进行三角化,从而形成导出模型所需要的三角网。对梁柱板墙等构件依次执行Mesh 函数,形成整个模型的三角网数据。
每个构件作为一个节点,生成Assimp 库的aiNode 对象,每个aiNode对象又指向一个aiMesh 对象,该对象保存构件通过Mesh 函数生成的三角网信息。JWD 中没有提供构件的颜色信息,因此采用PM 软件视图中构件的颜色作为aiMesh 的颜色。经过以上步骤,形成aiScene 模型场景所需全部数据。通过Export 类,指定导出文件路径及文件模型,即可将模型场景导出到STEP 模型文件。
2.工程实例
2.1 不同结构形式展示
工程实例1 为框架混凝土结构,平面内2×2 跨,高度上10 层,柱截面尺寸为500×500mm,梁截面尺寸为300×600mm,板厚取用120mm。图4为在PM 中和导出STEP 格式文件后在第三方软件的显示效果,可以看到与在PM 中的模型完全一致,正确性得到保证。可以在第三方软件中对此模型进行二次加工,包括增加特定类型构件,增加材质,纹理贴图,调整灯光参数等,以达到最佳的显示效果。
图4 框架接口模型对比图
工程实例2 为大底盘多塔结构,底盘平面内8×4 跨,高度上共3 层,柱截面尺寸为500×500mm,梁截面尺寸为250×500mm,板厚取用120mm。有两个塔楼,高度分别为10 层和20 层。图5 为导出STEP 之后的对比显示效果,与PM 中的模型完全一致。在某些第三方软件中,提供了更加强大几何造型、模型编辑、图形渲染等功能,因此可以按需进行模型的深化编辑。
图5 大底盘多塔模型对比图
2.2 不同软件展示
STEP 文件格式作为工业级标准,得到了工程工业软件的广泛支持。基于本接口程序,将PKPM 结构模型导出为STEP 模型后,就能够在所有支持该格式的软件中进行查看和编辑。本文选取了几款典型的工程工业软件进行结果验证,包括Solidworks、Abaqus、AutoCAD、Mayo。同时也选取了BIMFACE 进行web 端轻量化浏览效果验证。
2.2.1 Solidworks
Solidworks 是当前主流的三维CAD/CAE 软件, 广泛应用于机械、电子、建筑等领域。导出之后的模型在Solidworks 中的展示效果如图6所示,可以看到接口保留了所有几何属性,与在PM 中的效果完全一致。同时,用户可以在软件中继续编辑模型,包括建立几何约束,进行复杂造型等。也可以将编辑后的模型导出,在专业的渲染软件中进行渲染。
图6 Solidworks 模型展示
2.2.2 Abaqus
Abaqus 是功能强大的三维有限元仿真软件,能够进行静力分析、动力分析、热传导分析等各种物理场的分析,提供了隐式和显式求解器。导出之后的模型在Abaqus 软件中的展示效果如图7所示。基于此模型,再补充必要的材料、约束、荷载等信息后,可以进行有限元模拟仿真。既可以与PKPM 的计算结果进行对比,也可以对复杂模型进行弹塑性非线性分析和校核。注意在Abaqus 中每个构件对应一个Part,因此没有显示整体模型,下一步工作需要导出模型时进行合并。
图7 Abaqus 模型展示
2.2.3 AutoCAD
AutoCAD 用于二维绘图、详细绘制、设计文档和基本三维设计,现已经成为国际上广为流行的绘图工具。AutoCAD在建筑制图领域更是处于绝对主导地位。导出之后的模型在AutoCAD软件中的展示效果如图8所示,可以看到接口保留了所有几何属性,与在PM中的效果完全一致。用户可以在此模型基础上进行二次编辑,也可以将DWG导出,然后在其他软件中作为衬图使用,方便进行参考定位。
图8 AutoCAD 模型展示
2.2.4 Mayo
Mayo 是一款完全开源的三维CAD 浏览和转换软件,基于现代C++、Qt 和OpenCascade 开发。提供模型格式转换、模型裁切、模型树浏览、测量工具等功能,支持Windows,Linux和macOS 操作系统。导出之后的模型在Mayo 软件中的展示效果如图9所示,可以看到接口保留了所有几何属性,与在PM 中的效果完全一致。利用Mayo 提供的辅助功能,可以进行部分模型裁切查看,测量构件的长度等。
图9 Mayo 模型展示
2.2.5 web 端轻量化浏览
BIMFACE是一款BIM轻量化引擎,解决了文件格式解析、模型图纸浏览、BIM 数据存储等问题,用户只需要专注于业务功能的开发,基于BIMFACE进行功能扩展,开发自己的BIM 应用。模型在BIMFACE 中的轻量化展示效果如图10所示。用户可以在web 端进行模型轻量化浏览查看和简单的编辑。由于web 天然跨平台的优势,用户既可以在电脑浏览器上查看,也可以在手机端和pad 端进行模型查看。
图10 web 端轻量化模型展示
2.3 其他模型编辑功能
根据不同的工程应用目的,导出到第三方软件后,可以有针对性的对模型进行二次编辑和加工。例如对于超限工程,需要采用第二套软件进行弹塑性分析的验证校核,此时可以使用该接口将模型导出到Abaqus 中。补充必要的信息,包括约束、荷载、分析控制参数等,进行非线性弹塑性分析,提取分析结果,与PKPM 的计算结果进行对比,保证项目的安全性满足规范要求。
3.后续研究方向
进一步提高模型数据的完整性。PM 模型中包含完整的结构分析设计所需数据,包括各种结构构件、荷载工况,分析设计参数等。目前接口软件只导出了大部分构件类型,并没有导出其他数据,包括荷载和约束等计算分析所必须的数据。因此只能适用于模型展示和查看,不能进行分析设计。通过合理组织数据结构,约定数据接口含义等提高数据的完整性。
避免离散成三角面片。为了将PKPM 的构件转为STEP 支持的格式,将对象进行了三角化的离散。这样虽然增加了数据的灵活性和通用性,但是会损失结构的原始几何信息。后续可以采用参数化表达方式描述构件的几何信息,这样一方面可以比较完整的保留原始信息,方便双向转换,另一方也可以减小文件的体积。
在产品和易用性层面继续完善接口程序。研发该软件的最初目的是个人研究使用,能够满足模型几何数据导出和在不同软件中进行查看的效果,但没有提供UI、用户交互等产品层面的支持。因此、为了提高接口程序的易用性和用户体验,可以增加用户界面层,从而可以更加简单直观的进行JWD 模型导入和STEP 文件导出。同时也可以在软件中集成三维渲染展示功能,直接在程序中查看模型,方便校核和检查。
减小模型文件体积。STEP 格式文件设计理念开放灵活,易于扩展,一方面能够最大程度的支持各个专业领域,另一方面造成了数据结构的冗杂。STEP 对建筑领域的支持并不完善,为了保证模型的完整性,在转换过程中会造成一定程度的数据膨胀,导致文件体积增大。通过合理组织数据结构,采用文件压缩等技术可以有效减少文件大小。
增加双向转换接口。目前程序能够单向将PKPM模型转换为STEP 模型,尚不能将STEP 模型转换为PKPM模型。增加双向接口之后,能够将大量的STEP 模型文件转换为PKPM模型,实现模型资源的充分复用。在PKPM 中补充荷载、约束等信息之后,能够对模型进行结构分析设计。
4.结论
数据中台是BIM、CIM、数字孪生等数字化模型的核心概念之一。本程序搭建了与平台无关的实用化数据中心,能够承载建筑结构模型中的常用数据,包括节点网格、截面、墙柱梁板等常用对象。基于该数据平台,可以进行数据交换、二次开发、模型浏览等实际工程应用。
本文研发了基于STEP标准的PKPM模型转BIM模型接口软件,能够将PKPM模型的主要结构构件导出为STEP 文件。通过该模型文件,能够在当前主流BIM 软件、工业软件以及支持轻量化浏览的WEB 端、APP 端上浏览查看和渲染PKPM模型。最后通过主流的CAD/CAE 软件、web 轻量化平台等验证了接口程序的正确性。