CN114969586A - 基于web端的bim图形引擎加载方法及装置 - Google Patents
基于web端的bim图形引擎加载方法及装置 Download PDFInfo
- Publication number
- CN114969586A CN114969586A CN202110192142.2A CN202110192142A CN114969586A CN 114969586 A CN114969586 A CN 114969586A CN 202110192142 A CN202110192142 A CN 202110192142A CN 114969586 A CN114969586 A CN 114969586A
- Authority
- CN
- China
- Prior art keywords
- bim
- file
- model
- loading
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于WEB端的BIM图形引擎加载方法及装置,方法包括:导出BIM模型的IFC文件,并根据IFC文件解析得到BIM模型的属性数据;导出BIM模型的GLTF文件,并根据GLTF文件解析得到BIM模型的几何数据;导出BIM模型的JSON文件,并根据JSON文件解析得到BIM模型的材质信息;关联属性数据、几何数据与材质信息,并加载属性数据、几何数据与材质信息,以在WEB端加载BIM模型。该方法解决了因贴图资源与材质参数缺失,导致引擎加载的GLTF文件中的构件的Mesh网格材质信息只有顶点颜色,展示效果平庸的技术问题,降低多数据格式关联,提升数据解析、生成和获取便捷性。
Description
技术领域
本申请涉及建筑业信息处理技术领域,特别涉及一种基于WEB(World Wide Web,全球广域网)端的BIM(Building Information Modeling,建筑信息模型)图形引擎加载方法及装置。
背景技术
一般情况下,基于WEB端的BIM图形引擎加载与展示BIM模型都是将BIM模型转换成压缩率较高的GLTF(GL Transmission Format,文件拓展名)格式。但是,由于目前存在有多种BIM设计软件,其格式也差异较大,所以一般采用Building Smart组织制定的IFC(Industry Foundation Class,文件格式)格式作为中间交换格式,通过对IFC格式的解析与转换来获取BIM模型的几何数据文件与属性数据文件。BIM设计软件Autodesk Revit具备导出IFC格式的功能,IFC格式中包含几何数据与属性数据,通过解析IFC数据可以将构件的几何数据保存在GLTF或者是OBJ(OBJ,3D模型文件格式)等其他3D文件格式,将构件的属性数据保存在树型JSON数据格式中,基本满足了大量BIM业务***对BIM设计模型的需求。
然而,由于Revit导出的IFC格式的过程中,并没有将Revit***中的材料外观模板库中的各项材料写入到导出的IFC文件材料资源层,导致BIM模型中的构件的材料实例中的外观模板中的基本纹理、凹凸纹理、透明贴图、法线贴图等各项材料外观属性的贴图资源与材质参数缺失,最终导致引擎加载的GLTF文件中的构件的Mesh网格材质信息只有顶点颜色,展示效果平庸。
申请内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一目的在于提出一种基于WEB端的BIM图形引擎加载方法,解决了相关技术中因贴图资源与材质参数缺失,导致引擎加载的GLTF文件中的构件的Mesh网格材质信息只有顶点颜色,展示效果平庸的技术问题,大大降低了多数据格式关联,有效提升数据解析、生成和获取便捷性。
本发明的第二个目的在于提出一种基于WEB端的BIM图形引擎加载装置。
本发明的第三个目的在于提出一种电子设备。
本发明的第四个目的在于提出一种计算机可读存储介质。
为达到上述目的,本申请第一方面实施例提供一种XXXXX,包括以下步骤:
导出BIM模型的IFC文件,并根据所述IFC文件解析得到所述BIM模型的属性数据;
导出所述BIM模型的GLTF文件,并根据所述GLTF文件解析得到所述BIM模型的几何数据;
导出所述BIM模型的JSON文件,并根据所述JSON文件解析得到所述BIM模型的材质信息;以及
关联所述属性数据、所述几何数据与所述材质信息,并加载所述属性数据、所述几何数据与所述材质信息,以在WEB端加载所述BIM模型。
另外,根据本发明上述实施例的基于WEB端的BIM图形引擎加载方法还可以具有以下附加的技术特征:
可选地,所述根据所述IFC文件解析得到所述BIM模型的属性数据,包括:
加载所述IFC文件,并进行IFC解析得到属性信息、类型信息、结构树信息和材质信息,以组成所述属性数据。
可选地,所述根据所述GLTF文件解析得到所述BIM模型的几何数据,包括:
利用Revit平台加载模型,读取配置文件,以获取模型中与GLTF文件相关的信息,生成所述几何数据。
可选地,在利用所述Revit平台加载模型,读取所述配置文件之前,还包括:
检测是否需要导出所述Revit平台加载模型;
在检测到需要导出所述Revit平台加载模型时,识别所述Revit平台加载模型的当前版本识别标志;
根据所述当前版本对应的启动服务启动所述Revit平台加载模型,以读取所述配置文件。
可选地,所述根据所述JSON文件解析得到所述BIM模型的材质信息,包括:
获取所述GLTF文件支持的材质名称和材质参数;
根据所述材质名称和材质参数读取材质信息转换文件,并根据所述材质信息转换文件中材质参数名和转换规则计算材质参数值,以获取所有贴图名称,生成所述材质信息。
可选地,所述加载所述属性数据、所述几何数据与所述材质信息以在WEB端加载所述BIM模型,包括:
读取材质所需的贴图资源,并使所述贴图资源与模型文件在相同工作路径下;
根据根据由所述属性数据、所述几何数据与所述材质信息关联生成的模型数据加载模型,并加载成功后,读取所有属性参数,以在所述WEB端设置所述所有属性参数;
在引擎中设置对应的平行光与环境贴图,并与各个构件设置的材质进行光线运算,输出实时画面。
可选地,上述的基于WEB端的BIM图形引擎加载方法,还包括:
基于所述属性数据得到所述各个构件的工程属性;
在所述WEB端展示实时画面的同时,显示所述各个构件的工程属性。
为达到上述目的,本申请第二方面实施例提供一种基于WEB端的BIM图形引擎加载装置,包括:
第一解析模块,用于导出BIM模型的IFC文件,并根据所述IFC文件解析得到所述BIM模型的属性数据;
第二解析模块,用于导出所述BIM模型的GLTF文件,并根据所述GLTF文件解析得到所述BIM模型的几何数据;
第三解析模块,用于导出所述BIM模型的JSON文件,并根据所述JSON文件解析得到所述BIM模型的材质信息;以及
加载模块,用于关联所述属性数据、所述几何数据与所述材质信息,并加载所述属性数据、所述几何数据与所述材质信息,以在WEB端加载所述BIM模型。
可选地,所述第一解析模块,包括:
第一加载单元,用于加载所述IFC文件,并进行IFC解析得到属性信息、类型信息、结构树信息和材质信息,以组成所述属性数据;
所述第二解析模块,包括:
生成单元,用于利用Revit平台加载模型,读取配置文件,以获取模型中与GLTF文件相关的信息,生成所述几何数据;
可选地,在利用所述Revit平台加载模型,读取所述配置文件之前,所述生成单元还包括:
检测是否需要导出所述Revit平台加载模型;
在检测到需要导出所述Revit平台加载模型时,识别所述Revit平台加载模型的当前版本识别标志;
根据所述当前版本对应的启动服务启动所述Revit平台加载模型,以读取所述配置文件。
可选地,所述第三解析模块,包括:
获取单元,用于获取所述GLTF文件支持的材质名称和材质参数;
计算单元,用于根据所述材质名称和材质参数读取材质信息转换文件,并根据所述材质信息转换文件中材质参数名和转换规则计算材质参数值,以获取所有贴图名称,生成所述材质信息。
可选地,所述加载模块,包括:
读取单元,用于读取材质所需的贴图资源,并使所述贴图资源与模型文件在相同工作路径下;
设置单元,用于根据根据由所述属性数据、所述几何数据与所述材质信息关联生成的模型数据加载模型,并加载成功后,读取所有属性参数,以在所述WEB端设置所述所有属性参数;
输出单元,用于在引擎中设置对应的平行光与环境贴图,并与各个构件设置的材质进行光线运算,输出实时画面。
可选地,上述的基于WEB端的BIM图形引擎加载装置,还包括:
基于所述属性数据得到所述各个构件的工程属性;
在所述WEB端展示实时画面的同时,显示所述各个构件的工程属性。
为达到上述目的,本申请第三方面实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行如上述实施例所述的基于WEB端的BIM图形引擎加载方法。
为达到上述目的,本申请第四方面实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例所述的基于WEB端的BIM图形引擎加载方法。
由此,可以导出BIM模型的IFC文件,并根据IFC文件解析得到BIM模型的属性数据,并导出BIM模型的GLTF文件,并根据GLTF文件解析得到BIM模型的几何数据,并导出BIM模型的JSON文件,并根据JSON文件解析得到BIM模型的材质信息,并关联属性数据、几何数据与材质信息,并加载属性数据、几何数据与材质信息,以在WEB端加载BIM模型,解决了相关技术中因贴图资源与材质参数缺失,导致引擎加载的GLTF文件中的构件的Mesh网格材质信息只有顶点颜色,展示效果平庸的技术问题,大大降低了多数据格式关联,有效提升数据解析、生成和获取便捷性。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本申请实施例提供的一种基于WEB端的BIM图形引擎加载方法的流程图;
图2为根据本申请一个实施例的Revit导出IFC的流程图。
图3为根据本申请一个实施例的IFC解析解析流程图;
图4为根据本申请一个实施例的Revit导出glTF流程图;
图5为根据本申请一个实施例的Revit材质参数与标准网格材质参数对应图表示意图;
图6为根据本申请一个实施例的材质信息提取流程图;
图7为根据本申请一个实施例的BIM图形引擎加载流程图;
图8为本申请一个实施例的基于WEB端的BIM图形引擎加载装置的方框示意图;
图9为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参照附图描述根据本发明实施例提出的基于WEB端的BIM图形引擎加载方法及装置,首先将参照附图描述根据本发明实施例提出的基于WEB端的BIM图形引擎加载方法。
具体而言,图1为本申请实施例所提供的一种基于WEB端的BIM图形引擎加载方法的流程示意图。
如图1所示,该基于WEB端的BIM图形引擎加载方法包括以下步骤:
在步骤S101中,导出BIM模型的IFC文件,并根据IFC文件解析得到BIM模型的属性数据。
可选地,在一些实施例中,根据IFC文件解析得到BIM模型的属性数据,包括:加载IFC文件,并进行IFC解析得到属性信息、类型信息、结构树信息和材质信息,以组成属性数据。
可以理解的是,本申请实施例可以通过Revit软件打开BIM模型,导出IFC文件。其中,IFC作为描述AEC(Architecture、Engineering、Construction,建筑、工程和施工行业)的一种开放数据格式与主流BIM平台Revit拥有友好数据交换协议,通过Autodesk.Revit.DB.IFC.IExporterIFC接口和Autodesk.Revit.DB.IFC.IIFCImporterServer接口实现云端数据自定义的互交互性,支持构件类型自定义IFC导出实现。
具体而言,如图2所示,本申请实施例可以首先通过Revit平台加载模型(rvt),具体地,通过文件监控服务(File Listener Server)监测特定文件夹下需要导出IFC的Revit模型(rvt),当监控到文件夹中有文件需要转换时会启动模型(rvt)版本服务(RevitVersion Server)去识别模型对应Revit版本,Revit启动服务(Revit Start Server)会启动相匹配的版本去打开加载该模型文件(rvt);
其次,通过Revit平台模型导出IFC,具体地,Revit启动过程中,注册导出IFC导出外部命令(CmdExportIFC),当模型加载完成后通过Revit内部执行外部命令接口(ExternalCommandHelper)来执行录制好的IFC导出命令。导出IFC命令启动后,会自动读取IFC导出配置文件(涵盖导出视图、构件类型、精细程度、IFC版本等信息),创建IFC导出视图,设置参数,执行导出过程,导出模型中轴网、标高、墙、梁、板、柱、房间、空间等模型信息。
最后,生成IFC格式化文件数据,具体地,基于Revit提供的IExporterIFC接口,执行导出模型(rvt)信息,涵盖Revit中与IFC中对应的构件类型、几何、属性和逻辑关系等信息,ReivtAPI导出接口实现中拥有和IFC相对应的实体类型、属性集和逻辑关系来保证数据转换的一致性。
进一步地,本申请实施例可以通过导出的IFC文件解析模型的属性数据。
具体而言,IFC文件使用面向对象的Express语言编写。其中,EXPRESS信息建模语言(ISO10303-11)是产品模型数据交换标准(STandards for the Exchange of Productmodel data,STEP)ISO10303的核心。EXPRESS语言提供了一种中性机制,可以与各种编程环境(如C,C++和FORTRAN等)衔接,不同编程环境中的数据可以通过交互产生的EXPRESS语言数据文件进行交互。
JSDAI数据库是LKSoft提供的一种解决方案,用于将工业产品信息作为对象存储在关系数据库中,并通过符合标准的应用程序编程接口(API)使其可用,支持由EXPRESS信息模型(ISO 10303-11)指定的每种产品对象。这包括称为STEP(ISO 10303),零件库(ISO13584PLIB),标准数据元素类型(IEC61360)等国际标准。此外,还支持特定于用户的EXPRESS模式。
如图3所示,基于JSDAI的IFC解析一般可以包括以下步骤:
S301,jsDai加载IFC文件,进一步获取SdaiRepositry。
S302,利用SdaiRepositry提取IFCObject。
S303,判断IFCObject的类型是否为IFCelement,如果是,执行步骤S307,否则执行步骤S304。
S304,判断IFCObject的类型是否为IfcSpatialStructureElement,如果是,执行步骤S307,否则执行步骤S305。
S305,判断IFCObject的类型是否为IfcGrid,如果是,执行步骤S307,否则执行步骤S306。
S306,判断IFCObject的类型是否为IfcSystem,如果是,执行步骤S307,否则执行步骤S307。
S307,提取相对应的属性ifcpropertySet。
综上可知,本申请实施例可以通过JSDAI解析库初始化,加载IFC,具体地,根据开源软件jsDai加载配置文件获取SdaiSesson,再Sdaiseesion去加载ifc模型文件,加载成功之后会获取一个SdaiRepositry,利用SdaiRepositry提供的接口进行数据提取。
然后,进行IFC解析,具体地,SdaiRepositry进行实体类、空间、轴网、区域、端口解析,则解析的IFC类为:IfcElement、IfcSpatialStructureElement、IfcGrid、IfcSystem、IfcZone、IfcPort进行解析。
其中,属性提取:主要提取IFC中IfcpropertySet、IfcRelDefinesByProperties类中所包含的属性信息,其中也包含建立模型中的自定义属性。
类型提取:主要提取的是IfcTypeObject中的属性,实体中属性一部分描述在类型中。
结构树提取:本申请实施例提取了6种结构树,分别为项目结构树、构件结构树、类型结构树、图层结构树、***结构树、空间结构树。例如项目结构树的结构为IfcProject、IfcSite、IfcBuilding、IfcBuildStorey、IfcElemet。
材质信息提取:本申请实施例提取IFC中通过ifc RelAssociatesMaterial查找到的IfcMaterialList属性,表示构件的材质,但该信息只包含了材料的ID、名称、厚度信息,并不包含可视化所需要的材质信息。
由此,将上述提取的数据按照一定的结构去存储到mongoDB,由于模型构件较多,查找属性非常缓慢,设计了engine Object Query表里面存储了构件属性以map结构存储,便于提升检索速度,同时增强了模型一致性的判断,判断规则是通过对文件流进行加密,如文件一致,则根据项目版本号是否一致,如果一致,则不再重新解析,会复用之前解析数据。
在步骤S102中,导出BIM模型的GLTF文件,并根据GLTF文件解析得到BIM模型的几何数据。
可选地,在一些实施例中,根据GLTF文件解析得到BIM模型的几何数据,包括:利用Revit平台加载模型,读取配置文件,以获取模型中与GLTF文件相关的信息,生成几何数据。
可以理解的是,本申请实施例可以通过Revit API导出模型几何数据GLTF文件,其中,glTF是一种与运行时API无关的交付内容数据格式,其可以提供一种高效、可扩展、可互操作的3D内容传输和加载方式,能够有效的衔接了3D内容创建工具和3D应用程序。
在本申请中,glTF作为IFC数据的补充数据文件存在,主要是为了扩充IFC的材质、纹理、贴图、外观等信息,提供更完善的模型(rvt)解析数据,服务与图形引擎更加逼真的显示效果。鉴于导出模型(rvt)信息导出的效率,该方案实行基于同一源文件的不用拷贝模型对glTF和IFC进行并行导出,通过导出模型过程中相同的ElmentId生成相一致的IFCGuid进行信息关联。
可选地,在利用Revit平台加载模型,读取配置文件之前,还包括:检测是否需要导出Revit平台加载模型;在检测到需要导出Revit平台加载模型时,识别Revit平台加载模型的当前版本识别标志;根据当前版本对应的启动服务启动Revit平台加载模型,以读取配置文件。
具体而言,如图4所示,本申请实施例可以首先通过Revit平台加载模型(rvt),具体地,通过文件监控服务(FileListenerServer)监测特定文件夹下需要导出glTF的Revit模型(rvt),当监控到文件夹中有文件需要转换时会启动模型(rvt)版本服务(RevitVersionServer)去识别模型对应Revit版本,Revit启动服务(RevitStartServer)会通过RevitNET程序集提供的Product使用程序集重定向去后台启动对应版本打开该模型文件(rvt)。
其次,通过Revit平台将glTF导出,具体地,Revit后台启动加载模型(rvt)完成后,读取配置文件,创建glTF导出视图,设置视图参数。使用CustomExporter导出命令,通过实现了IExportContext接口的glTFExportContext来获取模型(rvt)中与glTF相关的信息。
基于RevitAPI实现的glTFExportContext自定义导出类,涉及到提取Revit中关于Polymesh的Mesh、UV、Normal等信息,关于Material的ThumbnailFile、Glossiness、Smoothness、Color、Transparency和Appearance等信息,关于植物、人物和汽车的RPC(Remote Procedure Call,远程过程调用)模型信息致力于提供更加逼真渲染效果的数据基础。
最后,生成glTF格式化文件数据,具体地,本申请实施例可以基于glTFExportContext执行过程获取模型(rvt)中Element与glTF中相关的Scenes、Nodes、Buffers、BufferViews、Accessors、Textures、Materials、Samplers、Images等信息,通过glTF逻辑结构管理类glTFCore将单个对象Mesh相关的Index、Vertex、UV、和Normal等生成ToBase64String字符来创建Buffers,组织与Element相关的BufferViews和Accessors,添加Textures、Materials、Samplers、Images节点,通过glTFLoader来创建glTF数据文件。glTF文件中信息通过Revit中ElemntId生成IFCGuid与IFC中的信息进行关联,从而实现glTF对IFC信息进行增量补充。
在步骤S103中,导出BIM模型的JSON文件,并根据JSON文件解析得到BIM模型的材质信息。
可选地,在一些实施例中,根据JSON文件解析得到BIM模型的材质信息,包括:获取GLTF文件支持的材质名称和材质参数;根据材质名称和材质参数读取材质信息转换文件,并根据材质信息转换文件中材质参数名和转换规则计算材质参数值,以获取所有贴图名称,生成材质信息。
可以理解的是,本申请实施例可以通过Revit API导出模型材质信息JSON文件。具体地,Revit平台提供了建模使用的一般性材质集,涵盖混凝土,木材、玻璃、涂料、金属等,预设了部分内置材质资源样板,基于这些模板能够创建丰富多彩的材质图形和外观,体现颜色、图像、反射率、透明度和凹凸等材质特性,能够支持自定义扩展参数。
关于材质部分Revit提供了大量的关于图形、外观、物理和热度等相关可设置信息,但在BIM图形引擎实际渲染中并不是全部需要。鉴于此,该解决方案采用了一种基于物理渲染标准(PBR,Physically Based Rendering)的标准网格材质(MeshStandardMaterial),从Revit材质参数库里提取glTF模型暂不支持的材质参数,根据其与PBR材质的对应关系(如图5所示)设计出材质信息转换文件,主要涵盖Revit材质参数名和参数值,BIM图形引擎中材质参数名和参数值。基于该信息文件,能够把Revit中材质参数转换为BIM图形引擎对应的材质参数,用于渲染还原真实场景。
具体地,如图6所示,Revit提取材质信息包括以下步骤:
S601,开始。
S602,设计材质信息转换文件。
S603,解析rvt文件里的材质信息。
S604,获取贴图纹理路径信息。
S605,去除贴图文件名空格字符。
S606,材质参数转换。
S607,导出材质信息。
S608,导出纹理贴图。
S609,结束。
由此可知,本申请可以解析模型材质信息,具体地,Revit作为主流的BIM平台,提供用户二次深度开发功能接口,支持C++、C#和VB.NET等开发语言。其材质信息主要涵盖外观资源和资源属性大部分内容,Revit API中与之相关存储有AppearanceAssetElement,Asset和AssetProperty等,每个资源属性里面可能包含关联属性集,通过RevitAPI深度开发了一个提取相关信息工具来获取全部相关材质信息。
首先,获取glTF文件支持的材质名称和材质参数,如混凝土材质涵盖颜色、纹理贴图和金属材质涵盖透明度,金属度等信息。进而,读取材质信息转换文件,根据材质参数名和转换规则计算出相应的材质参数值。最后,记录获取到的所有贴图名称。
然后导出模型与材质信息文件,具体地,基于上一步获取的材质信息,借助Newtonsoft将其导出为材质信息JSON文件,其包含了模型用到的材质名称,每个材质对应并且经过转换后的参数值和导出模型里用到的所有贴图名称等信息,支持glTF模型里用到的纹理贴图从Reivt材质库目录自动拷贝到输入目录,完成Revit API导出模型材质信息。
在步骤S104中,关联属性数据、几何数据与材质信息,并加载属性数据、几何数据与材质信息,以在WEB端加载BIM模型。
可选地,在一些实施例中,加载属性数据、几何数据与材质信息以在WEB端加载BIM模型,包括:读取材质所需的贴图资源,并使贴图资源与模型文件在相同工作路径下;根据根据由属性数据、几何数据与材质信息关联生成的模型数据加载模型,并加载成功后,读取所有属性参数,以在WEB端设置所有属性参数;在引擎中设置对应的平行光与环境贴图,并与各个构件设置的材质进行光线运算,输出实时画面。
可以理解的是,本申请实施例可以从模型(rvt)中导出的IFC文件、glTF文件、材质JSON文件和数据库内容等信息通过FileId进行模型项目级信息关联,为BIM图形引擎按项目加载提供基础。
并且在同一模型信息基础上,首先基于glTF中Node和Material等的Name属性值作为信息检索关联的依据;进而,通过检索关联值获取材质JSON文件中与该模型构件相关的材质信息参数信息、纹理贴图相对路径和RPC文件信息等内容;最后,借助检索关联值和Web服务获取模型构件关联的项目参数、类型参数、实例参数和自定义参数等信息,为整个模型的渲染和应用提供完善数据基础。
进一步地,上述的基于WEB端的BIM图形引擎加载方法,还包括:基于属性数据得到各个构件的工程属性;在WEB端展示实时画面的同时,显示各个构件的工程属性。
具体地,本申请实施例可以通过图形引擎或三维可视化工具加载模型几何、材质与属性数据,其中,如图7所示,BIM图形引擎加载流程包括以下步骤:
S701,读取导出的材质JSON。
S702,threejs工程引入gltfloader组件。
S703,填入gltf路径加载模型。
S704,加载成功后遍历模型Mesh子节点,每个子节点通过材质json加载,指定各类贴图,并设置相关材质属性。
S705,设置平行光与环境贴图。
S706,访问IFC解析数据库获取工程数据。
S707,进行渲染,完成模型与属性数据可视化。
也就是说,本申请是可以从上述关联的材质JSON,解析此JSON文件,读取模型包含的材质所需要的贴图资源相关信息,确保这些贴图资源与模型文件在相同工作路径下;并通过上述关联的模型数据,利用threejs框架的glTF loader组件加载模型;并在通过gltf对象加载成功后,通过对gltf对象中的所有Mesh子节点的遍历,读取child的material的name,通过name在材质JSON文件中获取相应的属性参数,除了贴图纹理以外,读取凹凸纹理、粗糙度、金属度、透明贴图、透明度及其参数值,然后在child的material中设置所有这些参数;并在引擎中设置好平行光与环境贴图,与各个构件设置好的材质进行光线运算,最终实时输出真实感强的画面;同时可以通过访问步骤五中的IFC解析的数据库获取构件的相应的工程属性,这样的数据属性与几何模型可以同时展示在WEB端中。
根据本申请实施例提出的基于WEB端的BIM图形引擎加载方法,可以导出BIM模型的IFC文件,并根据IFC文件解析得到BIM模型的属性数据,并导出BIM模型的GLTF文件,并根据GLTF文件解析得到BIM模型的几何数据,并导出BIM模型的JSON文件,并根据JSON文件解析得到BIM模型的材质信息,并关联属性数据、几何数据与材质信息,并加载属性数据、几何数据与材质信息,以在WEB端加载BIM模型,解决了相关技术中因贴图资源与材质参数缺失,导致引擎加载的GLTF文件中的构件的Mesh网格材质信息只有顶点颜色,展示效果平庸的技术问题,大大降低了多数据格式关联,有效提升数据解析、生成和获取便捷性。
其次参照附图描述根据本申请实施例提出的基于WEB端的BIM图形引擎加载装置。
图8是本申请实施例的基于WEB端的BIM图形引擎加载装置的方框示意图。
如图8所示,该基于WEB端的BIM图形引擎加载装置10包括:第一解析模块100、第二解析模块200、第三解析模块300和加载模块400。
其中,第一解析模块100用于导出BIM模型的IFC文件,并根据IFC文件解析得到BIM模型的属性数据;
第二解析模块200用于导出BIM模型的GLTF文件,并根据GLTF文件解析得到BIM模型的几何数据;
第三解析模块300用于导出BIM模型的JSON文件,并根据JSON文件解析得到BIM模型的材质信息;以及
加载模块400用于关联属性数据、几何数据与材质信息,并加载属性数据、几何数据与材质信息,以在WEB端加载BIM模型。
可选地,在一些实施例中,第一解析模块100包括:第一加载单元。
其中,第一加载单元,用于加载IFC文件,并进行IFC解析得到属性信息、类型信息、结构树信息和材质信息,以组成属性数据;
第二解析模块200包括:生成单元。
其中,生成单元,用于利用Revit平台加载模型,读取配置文件,以获取模型中与GLTF文件相关的信息,生成几何数据;
可选地,在一些实施例中,在利用所述Revit平台加载模型,读取所述配置文件之前,所述生成单元还包括:
检测是否需要导出所述Revit平台加载模型;
在检测到需要导出所述Revit平台加载模型时,识别所述Revit平台加载模型的当前版本识别标志;
根据所述当前版本对应的启动服务启动所述Revit平台加载模型,以读取所述配置文件。
可选地,在一些实施例中,第三解析模块300包括:获取单元和计算单元。
其中,获取单元,用于获取GLTF文件支持的材质名称和材质参数;
计算单元,用于根据材质名称和材质参数读取材质信息转换文件,并根据材质信息转换文件中材质参数名和转换规则计算材质参数值,以获取所有贴图名称,生成材质信息。
可选地,在一些实施例中,加载模块400包括:读取单元、设置单元和输出单元。
其中,读取单元,用于读取材质所需的贴图资源,并使贴图资源与模型文件在相同工作路径下;
设置单元,用于根据根据由属性数据、几何数据与材质信息关联生成的模型数据加载模型,并加载成功后,读取所有属性参数,以在WEB端设置所有属性参数;
输出单元,用于在引擎中设置对应的平行光与环境贴图,并与各个构件设置的材质进行光线运算,输出实时画面。
可选地,上述的基于WEB端的BIM图形引擎加载装置,还包括:
基于属性数据得到各个构件的工程属性;
在WEB端展示实时画面的同时,显示各个构件的工程属性。
需要说明的是,前述对基于WEB端的BIM图形引擎加载方法实施例的解释说明也适用于该实施例的基于WEB端的BIM图形引擎加载装置,此处不再赘述。
根据本申请实施例提出的基于WEB端的BIM图形引擎加载装置,可以导出BIM模型的IFC文件,并根据IFC文件解析得到BIM模型的属性数据,并导出BIM模型的GLTF文件,并根据GLTF文件解析得到BIM模型的几何数据,并导出BIM模型的JSON文件,并根据JSON文件解析得到BIM模型的材质信息,并关联属性数据、几何数据与材质信息,并加载属性数据、几何数据与材质信息,以在WEB端加载BIM模型,解决了相关技术中因贴图资源与材质参数缺失,导致引擎加载的GLTF文件中的构件的Mesh网格材质信息只有顶点颜色,展示效果平庸的技术问题,大大降低了多数据格式关联,有效提升数据解析、生成和获取便捷性。
图9为本申请实施例提供的电子设备的结构示意图。该电子设备可以包括:
存储器901、处理器902及存储在存储器901上并可在处理器902上运行的计算机程序。
处理器902执行程序时实现上述实施例中提供的基于WEB端的BIM图形引擎加载方法。
进一步地,电子设备还包括:
通信接口903,用于存储器901和处理器902之间的通信。
存储器901,用于存放可在处理器902上运行的计算机程序。
存储器901可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器901、处理器902和通信接口903独立实现,则通信接口903、存储器901和处理器902可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(PeripheralComponent,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器901、处理器902及通信接口903,集成在一块芯片上实现,则存储器901、处理器902及通信接口903可以通过内部接口完成相互间的通信。
处理器902可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的基于WEB端的BIM图形引擎加载方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更N个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或N个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,N个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种基于WEB端的BIM图形引擎加载方法,其特征在于,包括以下步骤:
导出BIM模型的IFC文件,并根据所述IFC文件解析得到所述BIM模型的属性数据;
导出所述BIM模型的GLTF文件,并根据所述GLTF文件解析得到所述BIM模型的几何数据;
导出所述BIM模型的JSON文件,并根据所述JSON文件解析得到所述BIM模型的材质信息;以及
关联所述属性数据、所述几何数据与所述材质信息,并加载所述属性数据、所述几何数据与所述材质信息,以在WEB端加载所述BIM模型。
2.根据权利要求1所述的方法,其特征在于,所述根据所述IFC文件解析得到所述BIM模型的属性数据,包括:
加载所述IFC文件,并进行IFC解析得到属性信息、类型信息、结构树信息和材质信息,以组成所述属性数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述GLTF文件解析得到所述BIM模型的几何数据,包括:
利用Revit平台加载模型,读取配置文件,以获取模型中与GLTF文件相关的信息,生成所述几何数据。
4.根据权利要求3所述的方法,其特征在于,在利用所述Revit平台加载模型,读取所述配置文件之前,还包括:
检测是否需要导出所述Revit平台加载模型;
在检测到需要导出所述Revit平台加载模型时,识别所述Revit平台加载模型的当前版本识别标志;
根据所述当前版本对应的启动服务启动所述Revit平台加载模型,以读取所述配置文件。
5.根据权利要求1所述的方法,其特征在于,所述根据所述JSON文件解析得到所述BIM模型的材质信息,包括:
获取所述GLTF文件支持的材质名称和材质参数;
根据所述材质名称和材质参数读取材质信息转换文件,并根据所述材质信息转换文件中材质参数名和转换规则计算材质参数值,以获取所有贴图名称,生成所述材质信息。
6.根据权利要求1所述的方法,其特征在于,所述加载所述属性数据、所述几何数据与所述材质信息,以在WEB端加载所述BIM模型,包括:
读取材质所需的贴图资源,并使所述贴图资源与模型文件在相同工作路径下;
根据由所述属性数据、所述几何数据与所述材质信息关联生成的模型数据加载模型,并加载成功后,读取所有属性参数,以在所述WEB端设置所述所有属性参数;
在引擎中设置对应的平行光与环境贴图,并与各个构件设置的材质进行光线运算,输出实时画面。
7.根据权利要求1所述的方法,其特征在于,还包括:
基于所述属性数据得到所述各个构件的工程属性;
在所述WEB端展示实时画面的同时,显示所述各个构件的工程属性。
8.一种基于WEB端的BIM图形引擎加载装置,其特征在于,包括:
第一解析模块,用于导出BIM模型的IFC文件,并根据所述IFC文件解析得到所述BIM模型的属性数据;
第二解析模块,用于导出所述BIM模型的GLTF文件,并根据所述GLTF文件解析得到所述BIM模型的几何数据;
第三解析模块,用于导出所述BIM模型的JSON文件,并根据所述JSON文件解析得到所述BIM模型的材质信息;以及
加载模块,用于关联所述属性数据、所述几何数据与所述材质信息,并加载所述属性数据、所述几何数据与所述材质信息,以在WEB端加载所述BIM模型。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-5任一项所述的基于WEB端的BIM图形引擎加载方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1-5任一项所述的基于WEB端的BIM图形引擎加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110192142.2A CN114969586A (zh) | 2021-02-19 | 2021-02-19 | 基于web端的bim图形引擎加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110192142.2A CN114969586A (zh) | 2021-02-19 | 2021-02-19 | 基于web端的bim图形引擎加载方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114969586A true CN114969586A (zh) | 2022-08-30 |
Family
ID=82954068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110192142.2A Pending CN114969586A (zh) | 2021-02-19 | 2021-02-19 | 基于web端的bim图形引擎加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114969586A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226037A (zh) * | 2023-05-08 | 2023-06-06 | 山东同圆数字科技有限公司 | 基于Web的IFC格式数据明细动态提取方法及*** |
CN116880924A (zh) * | 2023-07-21 | 2023-10-13 | 以见科技(上海)有限公司 | 数据加载方法、***和电子设备 |
CN117556519A (zh) * | 2023-12-11 | 2024-02-13 | 深圳大学 | 面向数字孪生的Revit模型数据的转换方法及设备 |
-
2021
- 2021-02-19 CN CN202110192142.2A patent/CN114969586A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226037A (zh) * | 2023-05-08 | 2023-06-06 | 山东同圆数字科技有限公司 | 基于Web的IFC格式数据明细动态提取方法及*** |
CN116880924A (zh) * | 2023-07-21 | 2023-10-13 | 以见科技(上海)有限公司 | 数据加载方法、***和电子设备 |
CN117556519A (zh) * | 2023-12-11 | 2024-02-13 | 深圳大学 | 面向数字孪生的Revit模型数据的转换方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110688692B (zh) | 一种基于结构化bim模型的二三维联动及叠加显示的方法 | |
CN110245368B (zh) | 一种bim数据的结构化处理与存储方法 | |
CN114969586A (zh) | 基于web端的bim图形引擎加载方法及装置 | |
CN111161390A (zh) | 一种基于BIM模型和WebGL的渲染方法及装置 | |
CN105550247A (zh) | 基于svg标准可自定义图符的电力***图形显示方法 | |
CN108597032A (zh) | 将建筑信息模型导入Unity3D中显示方法及*** | |
US10997778B2 (en) | Method for generating three-dimensional model, and terminal device | |
CN112989482A (zh) | Bim模型数据的生成方法及装置和构建方法及装置 | |
CN106709985A (zh) | 一种虚拟祭祀三维场景的生成方法及装置 | |
CN113591197B (zh) | 在线编辑方法、装置、电子设备及存储介质 | |
CN106846431B (zh) | 一种支持多表现形式的统一Web图形绘制*** | |
CN107885840A (zh) | 城市信息模型服务方法及*** | |
CN109858059B (zh) | 基于cad超大模型的虚拟现实技术在水电站仿真的应用方法 | |
WO2008026003A2 (en) | 3 d pdf document generator and method for generating 3d pdf documents | |
CN116630589A (zh) | 三维虚拟场景与二维视图之间的数据联动编辑方法及装置 | |
CN113468626B (zh) | 图纸生成方法、装置、电子设备及存储介质 | |
CN115359208A (zh) | 一种适合于运维管理的bim数据轻量化存储方法 | |
KR20010044367A (ko) | 디엑스에프 파일을 지오매니아 데이터 파일로 변환하는 방법 | |
CN116107558A (zh) | 一种基于数字孪生的可视化管理*** | |
CN102270219B (zh) | 一种火星探测器部件级虚拟样机库的架构方法 | |
CN115375812A (zh) | Cad数据渲染方法、装置、电子设备及存储介质 | |
CN113610512A (zh) | 电子签章生成方法、装置、设备及存储介质 | |
CN114092677A (zh) | 3d模型转化优化方法、装置及设备 | |
CN112489177A (zh) | 一种点云数据渲染展示方法及*** | |
US10817486B2 (en) | Containment of data structures with data objects in data modeling tools |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230630 Address after: A4-04, Floor 4, Building A1, No. 1, Panpu Road, Country Garden Community, Beijiao Town, Shunde District, Foshan, Guangdong 528311 Applicant after: Guangdong Bozhilin Software Technology Co.,Ltd. Address before: 528311 a2-05, 2nd floor, building A1, 1 Panpu Road, Biguiyuan community, Beijiao Town, Shunde District, Foshan City, Guangdong Province Applicant before: GUANGDONG BOZHILIN ROBOT Co.,Ltd. |