BIM scene hierarchical loading method and system based on cloud edge cooperation
By using a cloud-edge-device collaborative architecture and edge computing technology, BIM scene data is split and prioritized, solving the problems of long loading time and poor user experience in WebBIM, and achieving efficient scene loading and optimized user interaction experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-14
- Publication Date
- 2026-04-07
AI Technical Summary
Existing WebBIM technologies suffer from problems such as excessively long loading times and poor user experience due to insufficient network resources when loading large-scale BIM scene data. Furthermore, the data segmentation granularity during IFC data conversion is insufficient, making it unable to adapt to multi-scenario loading applications, and the component priority definition is incomplete.
A cloud-edge-device collaborative architecture is adopted. IFC format text data is split and converted in the cloud through edge computing technology to generate geometric data, material data, business attribute data and index data. During the splitting process, geometric priority is determined, and a hierarchical loading strategy is designed based on geometric and user interaction priorities, prioritizing the loading of components with simple geometry, semantic priority and high user interaction frequency.
It effectively reduces the initial loading time of WebBIM scenarios, improves the reliability and effectiveness of loading, enhances the user interaction experience, and reduces user waiting time.
Smart Images

Figure CN115758523B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of BIM scene loading technology, and in particular to a method and system for loading BIM scene layers based on cloud-edge-device collaboration. Background Technology
[0002] The advent of the digital age has driven the rapid development of various industries. As a core technology for intelligent construction, Building Information Modeling (BIM) has become an important research direction in many fields, including computer science and architecture. Among these, real-time rendering of BIM scenes on the web has attracted significant attention, leading to the emergence of WebBIM technology. In practical applications, BIM scene model data is substantial, and WebBIM technology faces numerous challenges due to limitations in network bandwidth, browser performance, and webpage rendering technology.
[0003] (1) Network architecture. Most existing WebBIM systems adopt the traditional "cloud + terminal" network architecture. Depending on the visualization mode, loading tasks are assigned one by one to the Web terminal or the cloud server or a collaboration of both. However, when faced with loading tasks with different attributes, the limited capabilities of the Web terminal and the location constraints of the cloud server cause particularly prominent problems in long-distance data transmission. Therefore, the WebBIM network architecture urgently needs improvement.
[0004] (2) Data conversion. As a BIM data exchange standard, the Industry Foundation Classes (IFC) format is widely used in existing research. However, most of the converted data is stored in files. When the files are large, the data transmission efficiency is low. At the same time, data loss often occurs during the conversion process, and the converted format data is difficult to be accurately identified and applied on different visualization platforms.
[0005] (3) Scene loading. Existing WebBIM technology primarily uses data from remote cloud servers. Therefore, before allowing user interaction, data transmission from the cloud to the client and data processing on the web are required. Consequently, when the amount of BIM scene data to be loaded is large, limited network resources can easily lead to excessively long waiting times and a poor user experience. Furthermore, the lack of a loading priority setting also contributes to a poor user experience. Summary of the Invention
[0006] In view of this, embodiments of this application provide a BIM scene hierarchy loading method and system based on cloud-edge-device collaboration to eliminate or improve one or more defects existing in the prior art.
[0007] The first aspect of this application provides a method for loading BIM scene hierarchy based on cloud-edge-device collaboration, including:
[0008] Receive IFC format text data of the BIM model forwarded via an edge server in the cloud;
[0009] The IFC format text data is converted and split to obtain the split data corresponding to the BIM model. The split data includes geometric data, material data, business attribute data, and index data. The geometric priority of the geometric data is determined during the splitting process.
[0010] The split data is stored in the cloud and synchronized to the edge server, so that the edge server sends processing completion information for the BIM model to the client device, and the client device loads the scene data of the BIM model hierarchically based on the geometric priority and the preset user interaction priority according to the processing completion information.
[0011] In some embodiments of this application, the data conversion and splitting process of the IFC format text data to obtain the split data corresponding to the BIM model includes:
[0012] The IFC format text data is deserialized to obtain a tree-structured IFC object instance corresponding to the IFC format text data.
[0013] The IFC object instance is traversed using a preorder traversal method, and its spatial structure data, geometric data, material data, and business attribute data are obtained sequentially. An index data for the IFC object instance is then constructed, and the geometric data, material data, business attribute data, and index data are used as the split data.
[0014] In some embodiments of this application, the client device loads the scene data of the BIM model hierarchically based on the processing completion information, the geometric priority, and a preset user interaction priority, including:
[0015] The client device sends a model scene data request to the edge server based on the unique identifier of the model corresponding to the processing completion information, so that the edge server can query whether the corresponding model scene data is stored locally based on the unique identifier of the model. If it is, the edge server sends the index data corresponding to the model scene data to the client device.
[0016] After receiving the index data, the client device parses the index data and constructs the corresponding model tree. Then, it opens the camera locally and filters out the components within the field of view corresponding to the current default view of the camera.
[0017] Based on the geometric priority and the preset user interaction priority, the components within the view frustum are sorted, and the geometric data and material data are loaded based on the corresponding sorting results. Graphic rendering is then performed to obtain the scene data of the BIM model.
[0018] The second aspect of this application provides a method for loading BIM scene hierarchy based on cloud-edge-device collaboration, including:
[0019] Receive IFC format text data of the BIM model sent by the client device;
[0020] The IFC format text data is sent to a cloud server, which then performs data conversion and splitting on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes geometric data, material data, business attribute data, and index data. During the splitting process, the cloud server determines the geometric priority of the geometric data, and then stores the split data in the cloud and sends it out.
[0021] The system receives the split data and sends processing completion information for the BIM model to the client device, enabling the client device to perform hierarchical loading of the scene data of the BIM model based on the geometric priority and the preset user interaction priority according to the processing completion information.
[0022] The third aspect of this application provides a method for loading BIM scene hierarchy based on cloud-edge-device collaboration, including:
[0023] The BIM model's IFC format text data is sent to an edge server, which then sends the IFC format text data to a cloud server. The cloud server performs data conversion and splitting on the IFC format text data to obtain split data corresponding to the BIM model. The split data includes geometric data, material data, business attribute data, and index data. During the splitting process, the cloud server determines the geometric priority of the geometric data, then stores the split data in the cloud and sends it out.
[0024] Receive processing completion information for the BIM model from the edge server based on the split data;
[0025] Based on the processing completion information, the scene data of the BIM model is loaded hierarchically according to the geometric priority and the preset user interaction priority.
[0026] In some embodiments of this application, the step of hierarchically loading the scene data of the BIM model based on the processing completion information, the geometric priority, and the preset user interaction priority includes:
[0027] Based on the unique identifier of the model corresponding to the processing completion information, a model scene data request is sent to the edge server so that the edge server can query whether the corresponding model scene data is stored locally based on the unique identifier of the model. If it is, the edge server sends the index data corresponding to the model scene data.
[0028] The system receives the index data sent by the edge server, parses the index data and constructs the corresponding model tree, and then opens the camera locally and filters out each component within the field of view corresponding to the current default view of the camera.
[0029] Based on the geometric priority and the preset user interaction priority, the components within the view frustum are sorted, and the geometric data and material data are loaded based on the corresponding sorting results. Graphic rendering is then performed to obtain the scene data of the BIM model.
[0030] Another aspect of this application also provides a cloud server, comprising:
[0031] The data receiving module is used to receive IFC format text data of the BIM model forwarded via an edge server in the cloud.
[0032] The data splitting module is used to perform data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data; and determines the geometric priority of the geometric data during the splitting process.
[0033] The data storage and transmission module is used to store the split data in the cloud and synchronize it to the edge server, so that the edge server sends processing completion information for the BIM model to the client device, and the client device loads the scene data of the BIM model hierarchically based on the processing completion information, the geometric priority and the preset user interaction priority.
[0034] Another aspect of this application also provides an edge server, comprising:
[0035] The data acquisition module is used to receive IFC format text data of the BIM model sent by the client device;
[0036] The first data forwarding module is used to send the IFC format text data to the cloud server, so that the cloud server can perform data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data. During the splitting process, the cloud server determines the geometric priority of the geometric data, and then stores the split data in the cloud and sends out the split data.
[0037] The second data forwarding module is used to receive the split data and send processing completion information for the BIM model to the client device, so that the client device loads the scene data of the BIM model hierarchically based on the geometric priority and the preset user interaction priority according to the processing completion information.
[0038] Another aspect of this application also provides a client device, comprising:
[0039] The data sending module is used to send IFC format text data of the BIM model to the edge server, so that the edge server sends the IFC format text data to the cloud server, and the cloud server performs data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data; during the splitting process, the cloud server determines the geometric priority of the geometric data, and then stores the split data in the cloud and sends it out.
[0040] The information receiving module is used to receive the processing completion information for the BIM model sent by the edge server based on the split data;
[0041] The hierarchical loading module is used to perform hierarchical loading of the scene data of the BIM model based on the processing completion information, the geometric priority, and the preset user interaction priority.
[0042] Another aspect of this application provides a cloud-edge-device collaborative BIM scene hierarchy loading system, including:
[0043] A cloud server is used to execute the BIM scene hierarchy loading method based on cloud-edge-device collaboration provided in the first aspect above.
[0044] An edge server is connected to both the client device and the cloud server. The edge server is used to execute the BIM scene hierarchy loading method based on cloud-edge-device collaboration provided in the second aspect above.
[0045] The client device is used to execute the BIM scene hierarchy loading method based on cloud-edge-device collaboration provided in the third aspect above.
[0046] Another aspect of this application provides an electronic device including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the cloud-edge-device collaborative BIM scene layer loading method provided in the first, second, or third aspects above.
[0047] Another aspect of this application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the cloud-edge-device collaborative BIM scene hierarchy loading method described in the first, second, or third aspects above.
[0048] The BIM scene hierarchical loading method based on cloud-edge-device collaboration provided in this application takes an industrial basic class IFC file as input and stores information such as index, geometry, material, and attributes separately while adhering to architectural semantics. Then, it designs a hierarchical loading strategy for BIM scenes by comprehensively considering geometry and user relevance. This effectively reduces the granularity of the loaded data, making it easier to load the fine-grained data that is actually needed. Furthermore, by comprehensively considering geometry and user priority, the hierarchical loading strategy for BIM scenes can effectively improve the reliability and effectiveness of loading, effectively reduce the initial loading time and earliest operable time of the WebBIM scene, significantly improve the effective pixel count, improve the interactive experience, and reduce the time users wait for loading.
[0049] Additional advantages, objectives, and features of this application will be set forth in part in the description which follows, and will in part become apparent to those skilled in the art upon review of the following description, or may be learned by practice of the application. The objectives and other advantages of this application can be realized and obtained by means of the structures specifically pointed out in the specification and drawings.
[0050] Those skilled in the art will understand that the purposes and advantages that can be achieved with this application are not limited to those specifically described above, and that the above and other purposes that this application can achieve will be more clearly understood from the following detailed description. Attached Figure Description
[0051] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, do not constitute a limitation thereof. The components in the drawings are not drawn to scale but are merely for illustrating the principles of this application. For ease of illustration and description of certain parts of this application, corresponding portions in the drawings may be enlarged, i.e., may appear larger relative to other components in an exemplary system actually manufactured according to this application. In the drawings:
[0052] Figure 1 This is a schematic diagram of the overall process of a cloud-edge-device collaborative BIM scene layer loading method executed by a cloud server in one embodiment of this application.
[0053] Figure 2 This is a flowchart illustrating the IFC conversion and splitting process in one embodiment of this application.
[0054] Figure 3 This is a schematic diagram of the overall process of a cloud-edge-device collaborative BIM scene layer loading method executed by an edge server in one embodiment of this application.
[0055] Figure 4 This is a schematic diagram of the overall process of a cloud-edge-device collaborative BIM scene layer loading method executed by a client device in one embodiment of this application.
[0056] Figure 5 This is a schematic diagram of the structure of a cloud server in another embodiment of this application.
[0057] Figure 6 This is a schematic diagram of the structure of an edge server in another embodiment of this application.
[0058] Figure 7 This is a schematic diagram of the structure of a client device in another embodiment of this application.
[0059] Figure 8 This is a flowchart illustrating the specific process of IFC conversion and splitting provided in the application example of this application.
[0060] Figure 9 This is a schematic diagram of the BIM scene hierarchy loading process provided in the application example of this application. Detailed Implementation
[0061] To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the embodiments and accompanying drawings. Here, the illustrative embodiments and their descriptions are used to explain this application, but are not intended to limit it.
[0062] It should also be noted that, in order to avoid obscuring this application with unnecessary details, only the structures and / or processing steps closely related to the solution according to this application are shown in the accompanying drawings, while other details that are not closely related to this application are omitted.
[0063] It should be emphasized that the term "including / comprises" as used herein refers to the presence of a feature, element, step, or component, but does not exclude the presence or addition of one or more other features, elements, steps, or components.
[0064] It should also be noted that, unless otherwise specified, the term "connection" in this article can refer not only to a direct connection, but also to an indirect connection involving an intermediary.
[0065] In the following description, embodiments of the present application will be illustrated with reference to the accompanying drawings. In the drawings, the same reference numerals represent the same or similar parts, or the same or similar steps.
[0066] In one or more embodiments of this application, BIM (Building Information Modeling) refers to Building Information Modeling; IFC (Industry Foundation Classes) refers to Industry Foundation Classes; WebBIM refers to Web-based BIM applications; Web (World Wide Web) refers to the Global Wide Area Network; Edge Computing refers to edge computing technology; HSB (Hierarchical loading Strategy of BIM scenario) refers to a hierarchical loading strategy for BIM scenarios; BuildingSMART (BSI) is a neutral, international, and independent non-profit organization serving the entire BIM lifecycle; IfcOpenShell is an open-source community library file; IfcPlusPlus is an open-source community library file; Xbim is an open-source community library file; IFC2x3 and IFC4 are different versions of the IFC standard; IFCEngine is a non-open-source free library file; Obj is a 3D file format; 3D Tiles is a 3D file format; glTF is a 3D file format; three.js is an open-source community library; cesium.js is an open-source community library; IFC.js is an open-source community library; Opencascade is an open-source library; Hoops is a non-open-source library; Web3D is a technology for creating 3D scenes on the web; 3drepo.io is an open-source community library; BIMServer is an open-source community library; BIMFace is commercial software; Python is a computer programming language; IfcProject is an IFC project, a type name in the IFC standard, referring to a specific project type in the IFC standard; IfcProduct is an IFC product, a type name in the IFC standard, referring to the base type of a product in IFC; Further processing of non-spatial structural elements, determining the type of contained Items: In this sentence, items is an attribute in the non-spatial structural element, its type is an array, the array element type is geometry, and this array describes the geometric data contained in the non-spatial structural element. AssembleObject is an Assemble object, which does not contain geometry and materials. As an assembly node, its child nodes will contain Body objects (nodes) or other Assemble objects. geom_uuid is a unique identifier field name that describes geometry; Attribute is a property defined in a class in IFC, collectively referred to as Attribute, to distinguish it from associated attributes; JSON is a computer data structure format; PAC (Principal Components Analysis) is principal component analysis.
[0067] It should be noted that IFC, as an international BIM data exchange standard, has been widely recognized, and research on data parsing and conversion of IFC files has sprung up like mushrooms after rain. As the officially designated open-source IFC conversion tool library by BuildingSMART, IfcOpenShell has largely achieved the conversion from the IFC standard to other visualization formats. Similar to IfcOpenShell, IfcPlusPlus and Xbim also provide corresponding IFC format conversion tool libraries. All three are based on OpenCasCade for parsing geometric data and use C++ to write their dynamic libraries. The difference is that IfcOpenShell supports multiple IFC versions, while Xbim and IfcPlusPlus only support IFC2x3 and IFC4, lacking sufficient support for newer standard versions. Furthermore, IfcPlusPlus still has unprocessed geometric types. Compared to the aforementioned tool libraries, the non-open-source IFCEngine tool library offers better conversion efficiency and flexibility, which can facilitate the integration and development of other software.
[0068] Based on the existing toolkits, several studies have been conducted on converting IFC data to various application scenarios. Some scholars have investigated converting IFC data to Obj and 3DTiles files and integrated three.js and cesium.js for visualization. However, these toolkits and studies only consider existing data formats and do not take into account the varying urgency of different data requirements in different application scenarios. For example, converting a large IFC scenario to an Obj file requires reading the entire Obj file before querying a specific geometry within that scenario. This process is time-consuming, especially with large Obj files, thus increasing query time.
[0069] In addition, WebBIM can be divided into three categories based on different visualization modes: pure web-based, pure cloud, and cloud-on-device collaboration.
[0070] The pure web-side mode involves reading, converting, and rendering IFC (Information Function Chart) models on the web page. IFC.js, as a representative of the pure web-side mode, applies WebAssembly technology to the web, supporting browser parsing of IFC models, and integrates three.js for web-side rendering. However, limited by browser resources, the conversion and loading efficiency of the pure web-side mode is relatively low, making it suitable only for smaller scenarios.
[0071] Pure cloud mode, also known as cloud rendering mode, involves rendering the model on a cloud server and then transmitting the rendered image stream to the web for display. Some researchers have used the Hoops development tool to convert BIM models into a specific format, perform cloud rendering, and then browse the model on the web. Lai Donglin researched and implemented cloud rendering of 3D map data and mobile rendering, and proposed a multi-layered dynamic loading strategy for loading 3D maps. Other researchers have proposed a viewpoint-independent Web3D global illumination rendering system that calculates global illumination on a cloud server, stores it in a lightmap, and then streams it to the web for rendering and compositing. These studies aim to address the insufficient rendering capabilities of the web by transferring complex rendering calculations to the cloud server and transmitting the image stream back for web interaction and rendering. This mode can achieve large-scene loading and rendering with relatively fast loading speeds; however, the low quality of the image stream transmitted to the web during interaction results in a poor user experience. Furthermore, cloud rendering places additional demands on cloud server hardware such as graphics cards.
[0072] The cloud-edge collaboration model involves querying and processing scene data on a cloud server, transmitting it over the network, and then rendering and interacting on a web-based platform. Some researchers have studied this model and implemented 3drepo.io, which spatially partitions scene data, converts it into extended glTF format, and loads and renders it based on spatial information. Other researchers have proposed a lightweight, real-time visualization solution for large-scale BIM scenes based on Web3D, considering semantic factors to reduce data redundancy and supporting progressive loading, unloading, and visibility culling between the cloud and web pages. Still others have proposed a multi-granularity online visualization framework for WebBIM with cloud-edge-page collaboration, defining component interest levels and designing component transmission mechanisms and initial viewpoint selection methods. A set of real-time roaming algorithms for large-scale WebBIM scenes on mobile web pages has been proposed. This algorithm manages and loads scenes from three aspects: component example redundancy, component and spatial hybrid indexing, and multi-granularity data dynamic loading / unloading strategies, enabling stable and smooth real-time roaming on mobile web pages. Finally, a dynamic loading method based on spatial semantic partitioning has been proposed, dynamically loading data of interest to users based on user interaction. BIMServer and BIMFace are two cloud-based platforms, one from the open-source community and the other from commercial operations. They essentially handle the processing and loading of data for IFC scenes. BIMServer's loading process consists of two main parts: first, loading index data to build a tree index; then, based on user interaction with the tree index, filtering out the identifiers of the nodes to be loaded, and selectively loading geometric and material elements. However, its loading of geometric and material elements relies on subjective user input and lacks automated processing strategies.
[0073] The aforementioned series of studies on cloud-edge collaboration models have optimized BIM scene loading and interaction in the cloud-edge model from multiple aspects such as data processing, loading, and interest. However, it is not difficult to find that the granularity of data classification for different types is insufficient during the IFC data conversion and processing process, which cannot adapt to multi-scenario loading applications. The priority definition of geometry or components during loading is not perfect enough. It is necessary to comprehensively consider geometric, semantic, and user interaction characteristics, and prioritize loading components with simple geometry, semantic priority, and high user interaction frequency to improve loading efficiency and enhance the user's visual experience.
[0074] Web-based BIM (WebBIM) scene data loading technology suffers from excessively long loading times, poor user experience, and network instability when dealing with complex model data. These issues are mainly manifested in the following ways:
[0075] 1. During the IFC data conversion and processing, the granularity of data segmentation for different data types is insufficient, making it unable to adapt to multi-scenario application loading;
[0076] 2. The priority definition of geometry or components during loading is not perfect enough. It is necessary to comprehensively consider the characteristics of geometry, semantics, and user interaction, and prioritize loading components with simple geometry, semantic priority, and high number of user interactions.
[0077] To address the issues of low reliability, low efficiency, frequent data loss, and poor user experience in web-based BIM data transmission, this application provides a cloud-edge-device collaborative BIM scene hierarchical loading method and system. This method introduces edge computing technology into the "cloud + device" network architecture, adding edge nodes between the cloud and the internet to circumvent the shortcomings of existing network architectures. Regarding the problems with IFC data conversion, this application splits and stores index, geometry, material, and attribute data while converting the IFC data, expanding the information for auxiliary data loading while retaining the original data information. For scene loading issues, based on the network architecture and data conversion, and considering geometric relevance and user relevance, a hierarchical loading strategy (HSB) for BIM scenarios is designed. This strategy prioritizes loading geometrically simple, semantically important, and frequently interacted components, thereby improving loading efficiency and enhancing the user's visual experience.
[0078] The following examples will provide a detailed description.
[0079] Based on this, embodiments of this application provide a BIM scene hierarchy loading method based on cloud-edge-device collaboration that can be implemented by a cloud server. See [link to relevant documentation]. Figure 1 The BIM scene hierarchy loading method based on cloud-edge-device collaboration specifically includes the following:
[0080] Step 110: Receive the IFC format text data of the BIM model forwarded via the edge server in the cloud.
[0081] In step 110, the client device, as the holder of the IFC format text data of the initial BIM model, uploads the IFC model to the edge server via the network; after receiving the model uploaded by the client, the edge server synchronously transmits the file to the cloud server.
[0082] Step 120: Perform data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data; and determine the geometric priority of the geometric data during the splitting process.
[0083] In step 120, the cloud server parses and splits the IFC model. The entire parsing, transformation, and splitting process is completed in the cloud. During the splitting process, geometric priority reference values are calculated, and data information such as geometry, materials, business attributes, and indexes are stored separately. In other words, while adhering to architectural semantics, information such as indexes, geometry, and materials is split and stored in units of architectural components, reducing the granularity of the loaded data and facilitating the loading of fine-grained data that is actually needed.
[0084] Step 130: Store the split data in the cloud and synchronize it to the edge server, so that the edge server sends processing completion information for the BIM model to the client device, and the client device loads the scene data of the BIM model hierarchically based on the processing completion information, the geometric priority and the preset user interaction priority.
[0085] In step 130, the cloud server synchronizes the split data to the edge server. After receiving the data synchronized from the cloud node, the edge server notifies the client that its uploaded model has been processed and can be loaded. Taking into account geometry and user relevance, a hierarchical loading strategy for BIM scenarios is designed to optimize the loading priority of model components and achieve a reasonable loading strategy that is user-oriented, integrates component semantics, and geometric characteristics.
[0086] Specifically, the client device uploads the IFC model to the edge server; the edge server synchronously transmits the file to the cloud server; the cloud server parses the IFC model and performs transformation and splitting. It calculates geometric priority reference values and stores data information such as geometry, materials, business attributes, and indexes. The split data is then synchronously sent to the edge server; the web client is notified that model processing is complete.
[0087] In one or more embodiments of this application, the hierarchical loading specifically refers to loading the data such as geometry, material, and business attributes in a hierarchical manner according to geometric priority and preset user interaction priority.
[0088] As described above, the cloud-edge-device collaborative BIM scene hierarchical loading method provided in this application takes an industrial basic class IFC file as input and stores information such as index, geometry, material, and attributes separately while adhering to architectural semantics. Then, considering geometry and user relevance, a hierarchical loading strategy for BIM scenes is designed, which can effectively reduce the granularity of the loaded data, making it easier to load the fine-grained data that is actually needed. Furthermore, considering geometry and user priority, the hierarchical loading strategy for BIM scenes can effectively improve the reliability and effectiveness of loading, effectively reduce the initial loading time and earliest operable time of the WebBIM scene, significantly improve the effective pixel count, improve the interactive experience, and reduce the time users wait for loading.
[0089] To further improve the effectiveness and reliability of split storage, in the BIM scene hierarchy loading method based on cloud-edge-device collaboration provided in this application embodiment, step 120 of the BIM scene hierarchy loading method based on cloud-edge-device collaboration specifically includes the following:
[0090] Step 121: Deserialize the IFC format text data to obtain a tree-structured IFC object instance corresponding to the IFC format text data.
[0091] Specifically, a Python script can be used to filter the basic types, enumeration types, select types, and entity types in the IFC.exp file, and generate a CPP file that can be compiled based on the type definitions and inheritance relationships.
[0092] Step 122: Traverse the IFC object instance based on the preorder traversal method, and sequentially split the spatial structure data, geometric data, material data and business attribute data in the IFC object instance, and construct the index data of the IFC object instance, and use the geometric data, material data, business attribute data and index data as the split data.
[0093] Specifically, it can read IFC format model files, generate IFC instance objects based on CPP files, filter IFC instance objects, split and transform four types of data—spatial structure, geometry, material, and related attributes—and store the results in the database.
[0094] This application focuses on four types of data in IFC files: spatial hierarchy, geometry, material, and associated attributes. To construct a tree-like model index, the IFC project (IfcProject) is used as the entry point, and the IFC product (IfcProduct) is used as the filter type. Spatial structure elements and non-spatial structure elements are distinguished. Spatial structure elements are constructed into Assemble objects, and their attributes and local matrices are processed. These Assembled objects are then recursively processed as their child nodes. Non-spatial structure elements are further processed by determining the type of their contained Items and processing their geometry, topology, mapping, and material data. The geometry and topology data are parsed using the Opencascade geometry library, and Body-type child nodes are constructed to store their data. The number of geometry references is statistically analyzed for HSB calculation. The detailed process of IFC conversion and splitting is as follows: Figure 2 As shown.
[0095] After the IFC conversion is complete, the entire tree is traversed with the AssembleObject node corresponding to the IFC Project node as the root node to obtain the attribute index data in JSON format. This data contains two types of objects: AssembleObject objects that do not contain geometry and Body objects that contain geometry.
[0096] Geometric data defines the faces and edges used for component display. Faces contain vertices, normals, UVs, and index data, while edges contain vertex data. This data is associated with the Body node through the geom_uuid field. In WebBIM scenarios, geometry reuse exists, so the same geometric data can be associated with multiple Body nodes.
[0097] In one specific example, the fields of the indexed data are shown in Table 1.
[0098] Table 1 - Description of Index Data Fields
[0099]
[0100]
[0101] The material data defines the materials for the faces and edges used to display the component. The face material defines the ambient color, diffuse color, specular color, transparency, and texture map, while the edge material defines the color and width. The material data has the same association characteristics as the Body node.
[0102] In IFC, attribute data includes attributes and associated attribute information. To flexibly represent attribute data, this application merges the attribute data and represents it using a JSON object, without defining its fields. In the database, the node UUID is used as the primary key to associate its attribute information.
[0103] To further improve the efficiency, effectiveness, and reliability of priority-based hierarchical loading, in the BIM scene hierarchical loading method based on cloud-edge-device collaboration provided in this application embodiment, step 130 of the BIM scene hierarchical loading method based on cloud-edge-device collaboration further includes the following:
[0104] Step 131: The client device sends a model scene data request to the edge server based on the unique model identifier corresponding to the processing completion information, so that the edge server can query whether the corresponding model scene data is stored locally based on the unique model identifier. If so, the edge server sends the index data corresponding to the model scene data to the client device.
[0105] Step 132: After receiving the index data, the client device parses the index data and constructs the corresponding model tree. Then, it turns on the camera locally and filters out the components within the field of view corresponding to the current default view of the camera.
[0106] Step 133: Sort the components within the view frustum based on the geometric priority and the preset user interaction priority, load the geometric data and material data based on the corresponding sorting results, and perform graphic rendering to obtain the scene data of the BIM model.
[0107] Specifically, in the above IFC conversion and data splitting process, it is not difficult to find that when loading large WebBIM scenes, firstly, network resources should be considered, that is, low network latency and stable network connection; secondly, when network resources are limited and the entire scene cannot be loaded in one request, it is necessary to consider the priority of component loading.
[0108] This application's embodiments illustrate BIM scene-level loading from two aspects: component loading priority design and cloud-edge-device collaborative loading. The component loading priority design considers geometric relevance and user relevance, prioritizing the loading of geometrically simple, semantically important, and frequently interacted components to improve loading efficiency and enhance the user's visual experience. Furthermore, the cloud-edge-device network collaborative loading architecture and process are described.
[0109] (1) Geometric correlation
[0110] The geometric characteristics of a component are one of the main factors affecting its loading priority, i.e., geometric dependence. Examples include surface area, volume, bounding box area, bounding box volume, reference degree, and complexity. It's worth noting that reference degree refers to the number of times the component's geometry is referenced by the Body node. Complexity refers to the number of bytes in the component's geometric mesh data.
[0111] Considering the large number of dimensions and the potential correlation between different dimensions, Principal Component Analysis (PCA) was used to reduce dimensionality and calculate the geometric correlation factor. This lays the foundation for subsequent priority calculations.
[0112] PCA, a commonly used linear dimensionality reduction method, maps data to a lower-dimensional space through linear projection, maximizing the variance of the data projected onto the lower-dimensional vector while minimizing data loss. The specific process is as follows:
[0113] Suppose a BIM model has M geometric samples, each sample has N dimensional features, denoted by X. i Let X represent the i-th sample vector. i =(X i,1 ,X i,2 ,X i,3 ,···,X i,j ,···,X i,N ), x i,j Let represent the eigenvalue of the i-th geometric dimension j, where 1≤i≤M and 1≤j≤N.
[0114] First, for the eigenvector X i Perform decentralization and calculate the sample mean of the j-th dimension.
[0115]
[0116] Then, calculate the sample variance of the j-th dimension, where Let the variance of the M samples in the j-th dimension be:
[0117]
[0118] The standard deviation S of the i-th sample in the j-th dimension i,j for:
[0119]
[0120] The samples are organized into N M-dimensional vectors according to their dimensions, where S = (s1, s2, ..., s...). N ) is a set of data vectors that has undergone standardization, such as sN Let S represent the data vector of the Nth dimension after standardization; let A and B be any two vectors in S, then the covariance of A and B is calculated as follows:
[0121]
[0122] According to formula (4), the covariance of N M-dimensional vectors S is calculated as shown in formula (5), where C represents the covariance matrix of vector S.
[0123]
[0124] If a vector μ is an eigenvector of matrix C, then it must exist in the form of the following formula (6), where λ and μ are the eigenvalues and eigenvectors of matrix C, respectively:
[0125] Cμ=λμ (6)
[0126] Based on the above, there will be N eigenvalues and eigenvectors λ and μ, each λ i Each will have a feature vector μ j Correspondingly, λ is sorted by size, and the top K eigenvalues and their corresponding eigenvectors are selected to obtain a set of mapping relationships:
[0127] {(λ1,μ1),(λ1,μ1),···,(λ k ,μ k )}, 1≤K≤N (7)
[0128] Projecting the original features The original N features are transformed into a new space constructed from the K feature vectors obtained above, and the calculation formula is as shown in formula (8), y i,j (1≤j≤K) represents the value of the i-th sample in the j-th dimension after mapping to K dimensions, denoted as Y. i =(y i,1 ,y i,2 ,···,y i,K ):
[0129]
[0130] Considering the application scenario of this application, K=1 is selected, that is, the largest λ is selected. max With the corresponding μ max , λ max →μ max And calculate the corresponding Y i That is, an M-dimensional vector, where the value in the vector represents the priority reference value of the i-th sample, and the calculation formula is shown in formula (9).
[0131]
[0132] After the above calculations, the geometric relevance factor can be obtained, which is the geometric relevance factor of the component that references this geometry.
[0133] Use component click events to collect user relevance metrics. Clicked components are more likely to attract user attention during the next load, therefore geometric elements that have been interacted with multiple times should be loaded first. (Use R...) i This represents the user relevance of geometry i, specifically the number of times geometry i was clicked (Count). i Count is the ratio of the total number of clicks on all geometry. i The initial value is 0, and 0 ≤ R i ≤1, as in formula (10), where G is the number of geometric elements.
[0134]
[0135] Combining user relevance R i and component priority reference value Y i The geometric loading priority of the component is calculated using the formula (11), where P i This represents the loading priority value of the geometric element referenced by the i-th component. It can be observed that if the geometric element remains unchanged, Y... i The loading priority and user relevance will not change. i Proportional to the model, this design is suitable for scenarios in BIM applications where business data is added without altering the geometry. When any geometric element changes, the Y-axis of all components in the model is updated. i Value, because of its relationship with R i It is relatively independent, therefore it does not affect user interaction data, and the geometric loading priority can be calculated based on the existing user data accumulation. Here, α+β=1, where α and β are their respective weights.
[0136] P i =α×R i +β×Y i (1≤i≤M) (11)
[0137] This application also provides a BIM scene hierarchy loading method based on cloud-edge-device collaboration, which can be implemented by an edge server. See [link to relevant documentation]. Figure 3 The BIM scene hierarchy loading method based on cloud-edge-device collaboration specifically includes the following:
[0138] Step 210: Receive the IFC format text data of the BIM model sent by the client device.
[0139] Step 220: Send the IFC format text data to the cloud server so that the cloud server can perform data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data. During the splitting process, the cloud server determines the geometric priority of the geometric data, and then stores the split data in the cloud and sends out the split data.
[0140] Step 230: Receive the split data and send processing completion information for the BIM model to the client device, so that the client device loads the scene data of the BIM model hierarchically based on the geometric priority and the preset user interaction priority according to the processing completion information.
[0141] As described above, the cloud-edge-device collaborative BIM scene hierarchical loading method provided in this application takes an industrial basic class IFC file as input and stores information such as index, geometry, material, and attributes separately while adhering to architectural semantics. Then, considering geometry and user relevance, a hierarchical loading strategy for BIM scenes is designed, which can effectively reduce the granularity of the loaded data, making it easier to load the fine-grained data that is actually needed. Furthermore, considering geometry and user priority, the hierarchical loading strategy for BIM scenes can effectively improve the reliability and effectiveness of loading, effectively reduce the initial loading time and earliest operable time of the WebBIM scene, significantly improve the effective pixel count, improve the interactive experience, and reduce the time users wait for loading.
[0142] This application also provides a BIM scene hierarchy loading method based on cloud-edge-device collaboration, which can be implemented by a client device. See [link to relevant documentation]. Figure 4 The BIM scene hierarchy loading method based on cloud-edge-device collaboration specifically includes the following:
[0143] Step 310: Send the IFC format text data of the BIM model to the edge server, so that the edge server sends the IFC format text data to the cloud server, so that the cloud server performs data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data; during the splitting process, the cloud server determines the geometric priority of the geometric data, and then stores the split data in the cloud and sends it out.
[0144] Step 320: Receive the processing completion information for the BIM model sent by the edge server based on the split data;
[0145] Step 330: Based on the processing completion information, load the scene data of the BIM model hierarchically according to the geometric priority and the preset user interaction priority.
[0146] To further improve the efficiency, effectiveness, and reliability of priority-based hierarchical loading, in the BIM scene hierarchical loading method based on cloud-edge-device collaboration provided in this application embodiment, step 330 of the BIM scene hierarchical loading method based on cloud-edge-device collaboration further includes the following:
[0147] Step 331: Based on the unique identifier of the model corresponding to the processing completion information, send a model scene data request to the edge server so that the edge server can query whether the corresponding model scene data is stored locally based on the unique identifier of the model. If so, send the index data corresponding to the model scene data.
[0148] Step 332: Receive the index data sent by the edge server, parse the index data and construct the corresponding model tree, and then turn on the camera locally and filter out each component within the field of view corresponding to the current default view of the camera.
[0149] Step 333: Sort the components within the view frustum based on the geometric priority and the preset user interaction priority, load the geometric data and material data based on the corresponding sorting results, and perform graphic rendering to obtain the scene data of the BIM model.
[0150] This application also provides a method for performing Figure 1 Examples of cloud servers in the cloud-edge-device collaborative BIM scene hierarchy loading method shown in the figure, see [examples of cloud servers in the figure]. Figure 5 The cloud server specifically includes the following components:
[0151] Data receiving module 11 is used to receive IFC format text data of BIM model forwarded via edge server in the cloud;
[0152] The data splitting module 12 is used to perform data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data; and determines the geometric priority of the geometric data during the splitting process.
[0153] The data storage and transmission module 13 is used to store the split data in the cloud and synchronize it to the edge server, so that the edge server sends processing completion information for the BIM model to the client device, and the client device loads the scene data of the BIM model hierarchically based on the processing completion information, the geometric priority and the preset user interaction priority.
[0154] The cloud server embodiments provided in this application can be specifically used to execute... Figure 1 The processing flow and functions of the BIM scene hierarchy loading method based on cloud-edge-device collaboration in the above embodiments will not be repeated here. Please refer to the detailed description of the above embodiments of the BIM scene hierarchy loading method based on cloud-edge-device collaboration.
[0155] This application also provides a method for performing Figure 3 The embodiment of the edge server in the cloud-edge-device collaborative BIM scene hierarchy loading method shown herein, including all or part of it, is described in the following example. Figure 6 The edge server specifically includes the following:
[0156] The data acquisition module 21 is used to receive IFC format text data of the BIM model sent by the client device.
[0157] The first data forwarding module 22 is used to send the IFC format text data to the cloud server, so that the cloud server can perform data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data. During the splitting process, the cloud server determines the geometric priority of the geometric data, and then stores the split data in the cloud and sends out the split data.
[0158] The second data forwarding module 23 is used to receive the split data and send processing completion information for the BIM model to the client device, so that the client device loads the scene data of the BIM model hierarchically based on the geometric priority and the preset user interaction priority according to the processing completion information.
[0159] The edge server embodiments provided in this application can be specifically used to execute... Figure 3 The processing flow and functions of the BIM scene hierarchy loading method based on cloud-edge-device collaboration in the above embodiments will not be repeated here. Please refer to the detailed description of the above embodiments of the BIM scene hierarchy loading method based on cloud-edge-device collaboration.
[0160] This application also provides a method for performing Figure 4The embodiment of the client devices in the cloud-edge-device collaborative BIM scene hierarchy loading method shown herein, see all examples. Figure 7 The client device specifically includes the following:
[0161] The data sending module 31 is used to send IFC format text data of the BIM model to the edge server, so that the edge server sends the IFC format text data to the cloud server, and the cloud server performs data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data. During the splitting process, the cloud server determines the geometric priority of the geometric data, and then stores the split data in the cloud and sends it out.
[0162] The information receiving module 32 is used to receive the processing completion information for the BIM model sent by the edge server based on the split data.
[0163] The hierarchical loading module 33 is used to perform hierarchical loading of the scene data of the BIM model based on the processing completion information, the geometric priority, and the preset user interaction priority.
[0164] The embodiments of the client device provided in this application can be specifically used to execute... Figure 4 The processing flow and functions of the BIM scene hierarchy loading method based on cloud-edge-device collaboration in the above embodiments will not be repeated here. Please refer to the detailed description of the above embodiments of the BIM scene hierarchy loading method based on cloud-edge-device collaboration.
[0165] Based on the above embodiments of client devices, edge servers, and cloud servers, this application also provides a BIM scene hierarchy loading system based on cloud-edge-device collaboration. Specifically, the BIM scene hierarchy loading system based on cloud-edge-device collaboration includes the following:
[0166] Cloud servers are used to execute Figure 1 The BIM scene hierarchy loading method based on cloud-edge-device collaboration is shown in the figure.
[0167] The edge server communicates with both the client device and the cloud server, and is used to perform... Figure 3 The method for loading BIM scene hierarchy based on cloud-edge-device collaboration is shown.
[0168] Client device, used to execute Figure 4 The method for loading BIM scene hierarchy based on cloud-edge-device collaboration is shown.
[0169] To further illustrate this solution, this application also provides a specific application example of a cloud-edge-device collaborative BIM scene hierarchical loading method implemented based on a BIM scene hierarchical loading system. First, using an IFC file as input, and adhering to architectural semantics, information such as indexes, geometry, and materials is split and stored unit by unit, based on building components. Then, considering geometry, semantics, and user relevance, a hierarchical loading strategy for BIM scenes is designed. This effectively reduces the granularity of the loaded data, facilitating the loading of fine-grained data as needed. Furthermore, by comprehensively considering geometry and user priorities, a hierarchical loading strategy for BIM scenes is designed, effectively improving the reliability and effectiveness of loading and enhancing the user experience.
[0170] The specific explanation is as follows:
[0171] (I) IFC Data Conversion and Splitting
[0172] This section describes in detail the process of converting and splitting IFC format files, defines the data representation after splitting, and saves the split data to the database for subsequent scene loading.
[0173] See Figure 8 The specific process of IFC conversion and splitting is as follows:
[0174] 1. Read the IFC format file from the computer's hard drive. The IFC model is stored in .ifc files, and the file contains text. After the entire file is read into memory, all subsequent content is completed in memory.
[0175] 2. Deserialize the text data into IFC object instances. The specific deserialization method can adopt the existing IFC standard. The IFC object instances will be used for subsequent processing in the following text. The IFC object instances are managed through a tree structure. Therefore, the following text adopts the preorder tree structure traversal method to traverse the entire model tree.
[0176] 3. Traverse all object instances until you find the IFC Project object instance, because the IFC Project object instance is the root node of the IFC model organization structure tree, and each IFC file has only one IFC Project object instance;
[0177] 4. Extract data from the IFC Project object instance, create an AssembleObject type object, set the AssembleObject type object as the root node, and use the root node as the parent node. Traverse the AssembleObjects of the IFC Project object instance (there may be 1-n), and process them one by one. Note: This article creates only two types of objects: AssembleObject type and Body type. The AssembleObject type does not have geometry and material data, while the Body type has geometry and material data.
[0178] 5. Iterate through all aggregate object instances associated with the parent node. When iterating to the i-th aggregate object instance, create an object instance of type AssembleObject and add it to the child node array of the parent node. Determine whether the i-th aggregate is an object instance of IFC Product or its subclass (IFC Product is a subclass of the type of aggregate object).
[0179] 6. If it is not an IFC product (IfcProduct) class or a subtype of IFC product (IfcProduct) class, take the created aggregate object (AssembleObject) type object instance i as the parent node, traverse the aggregate objects of aggregate object instance i until all IFC product (IfcProduct) class objects under aggregate object instance i are found;
[0180] 7. If it is an IFC product (IfcProduct) class or a subtype of IFC product (IfcProduct) class, extract the data of the IFC product (IfcProduct) object instance (aggregate object i). Its spatial location attribute is the IFC object location (IfcObjectPlacement) type instance object. Process the spatial location attribute, calculate the matrix in the world coordinate system of the IFC product (IfcProduct) object instance, and save it to the created aggregate object (AssembleObject) type instance i.
[0181] 8. Further determine whether the IFC product (IfcProduct) object instance i is an object instance of the type of the element describing the spatial structure (IfcSpatialStructureElement). The element describing the spatial structure (IfcSpatialStructureElement) is a subtype of the IFC product (IfcProduct). Regardless of whether it is the type of the element describing the spatial structure (IfcSpatialStructureElement), use the IFC product (IfcProduct) object instance i as the parent node of the traversal tree and continue traversing the tree.
[0182] 9. If it is a spatial structure element, then traverse all object instances contained within the spatial structure, where the object instance type is IFC Product (IfcProduct). Using the spatial structure element as the parent node, treat the objects it contains as its child nodes, further process the child node objects of type IFC Product (IfcProduct), until the subtree rooted at the spatial structure element is traversed, and return. During the traversal, based on the parent-child relationship, find the matrix in the world coordinate system of the parent object, combine it with the matrix in the world coordinate system of this node, calculate the local matrix of this level node relative to the parent node, process the associated attributes and attributes of the current level's AssembleObject type object, and assign the data to the current level node's AssembleObject type object instance.
[0183] 10. If it is not a spatial structure element, check if it has a Representation attribute. The Representation attribute is an attribute of type IFC Product Representation. If not, discard the node, end the traversal of this branch, and return.
[0184] 11. Given a representation property, create an instance of an AssembleObject type object. Iterate through the object instances in its representation property s. The elements in the 1-n array of representations are of type Ifc representation. Using the newly created AssembleObject type object instance as the parent node input, process the elements of type Ifc representation and treat them as child elements of the newly created AssembleObject type object instance.
[0185] 12. Iterate through the object instances of the Items property (array: 1-n) in the elements of the Ifc Representation type, only processing elements of type IFC Geometric Representation (IfcGeometricRepresentationItem), source definition inserted instance (IfcMappedItem), and IFC Topological Representation (IfcTopological RepresentationItem);
[0186] 13. Determine if the object instance in Items is of the source-defined insert instance (IfcMappedItem) type. If so, special handling is required. The source-defined insert instance (IfcMappedItem) type is a reference type, that is, it points to other Ifc representation elements. Therefore, create an instance of the AssembleObject type as the parent node, and its reference type as the child node, and handle the properties of type Ifc representation.
[0187] 14. If it is not an instance of type IfcMappedItem defined in the source definition, then it is of type IFC GeometricRepresentationItem or IFC TopologicalRepresentationItem, i.e., a geometric or topological type. Create a Body object instance, use the Opencascade geometry library to calculate the geometry or topology, generate renderable data after meshing, process the geometry-related material data together, and return after traversing the tree with this node as the leaf node.
[0188] 15. After the entire tree corresponding to the root node of the IFC Project object instance is traversed, update the associated attributes and attribute information of all AssembleObject and Body types;
[0189] 16. Based on the unit of measurement object instance, update the matrix in the world coordinate system of the aggregate object instance corresponding to the IFC Project object instance;
[0190] 17. Using the AssembleObject instance corresponding to the IFC Project object instance as the root node, traverse the entire tree, construct a tree index, and serialize and store the geometry, material, and attribute data of the nodes in the database; the entire splitting process is complete.
[0191] (II) BIM Scene Hierarchical Loading Design
[0192] During the IFC data conversion and splitting process described above, it is easy to see that when loading large WebBIM scenes, firstly, network resources should be considered, namely, low network latency and stable network connection; secondly, when network resources are limited and the entire scene cannot be loaded in one request, it is necessary to consider the priority of component loading.
[0193] See Figure 9 This application describes the hierarchical loading of BIM scenes from two aspects: component loading priority design and cloud-edge-device collaborative loading. The component loading priority design considers geometric relevance and user relevance, prioritizing the loading of geometrically simple, semantically important, and frequently interacted components to improve loading efficiency and enhance the user's visual experience. On the other hand, it describes the cloud-edge-device network collaborative loading architecture and process.
[0194] 1. The client, as the initial model holder, uploads the IFC model to the edge server via the network;
[0195] 2. After receiving the model uploaded by the client, the edge server synchronously transmits the file to the cloud server;
[0196] 3. The cloud server performs the parsing and splitting of the IFC model. The entire parsing, conversion, and splitting process is completed in the cloud. During the splitting process, geometric priority reference values are calculated, and geometric, material, business attributes, index, and other data information are stored separately. (This step is...) Figure 2 (The process shown)
[0197] 4. The cloud server synchronizes the split data to the edge server;
[0198] 5. After receiving the data synchronized from the cloud node, the edge server notifies the client that the uploaded model has been processed and can be loaded.
[0199] 6. After receiving the notification from the edge server, the client uses the UUID (unique identifier of the model) provided by the edge server to request the model scene data (all data used for display after being split, including index, geometry, material, and attributes, but not all data is loaded at once; the data is categorized and loaded in order).
[0200] 7. After receiving a scene request from the client, the edge node checks whether there is scene data locally. If not, it synchronizes the data from the cloud server; if so, it returns the index data.
[0201] 8. After the client receives the index data, parse the index (only the index file, not including large amounts of data such as geometry, materials, and properties), build the model tree, and then interrupt the camera interaction, initialize the camera parameters, display the default view (the view is determined by the view frustum parameter, which describes the position of the camera, where it is looking, and how far it can see; it can be understood as a trapezoidal shape), and allow the user to manipulate the model.
[0202] 9. Initializing camera parameters and user interaction will cause changes in camera parameters. After the camera parameters change, the view frustum parameter equation is used to calculate whether the constructed AABB bounding box (a computer graphics term that refers to the smallest cube that can enclose a component in the standard coordinate system) is within the view frustum range, and the components within the view frustum range are filtered out.
[0203] 10. The loading priority of the components within the field of view cone is sorted. The sorting method has been described in detail in the foregoing embodiments.
[0204] 11. After sorting, the geometry needs to be loaded in order. First, check the local cache to see if there is cached data for the geometry. If so, the cache is hit, and the graphics are rendered after the data is obtained. If the cache is not hit, the geometry and material data need to be requested from the edge server.
[0205] 12. After receiving the request, the edge server queries the geometry and material data and returns it to the client;
[0206] 13. After receiving the data returned by the edge server, the client caches it locally and uses it for graphics rendering;
[0207] 14. When a user clicks on a component, a user behavior statistics event is triggered, which is used to count the number of components that the user clicked on in a specific model;
[0208] 15. User data is synchronously transmitted to the edge server, the edge server recalculates user correlations, and then synchronizes it to the cloud server.
[0209] 16. After the user interacts with the camera, when the camera changes, jump to step 9 and continue loading the unloaded component data.
[0210] The BIM scene layer loading method and system proposed in this application application example uses a cloud-edge-device collaboration architecture to transform, split, and load model data. The design prioritizes component loading, taking into account three aspects: geometric relevance, semantic relevance, and user relevance. Components with simple geometry, semantic priority, and high user interaction frequency are loaded first, thereby improving loading efficiency and enhancing the user's visual experience.
[0211] The BIM scene hierarchical loading strategy based on a cloud-edge-device collaborative architecture proposed in this application example enhances network stability and reduces network latency during data transmission by utilizing the cloud-edge-device network architecture. The IFC scene model conversion and splitting process separates index data, geometry, material, attribute, and other data, laying the foundation for reducing the earliest operable time. The geometry priority algorithm combines the geometric characteristics in the model with user interest to prioritize loading geometry that has a greater impact on the final scene, thereby improving the user's visual experience.
[0212] Understandably, the IFC conversion method can also use tools such as IFCEngine and IFCOpenShell to parse the IFC file into OBJ and other formats, and then transfer the OBJ and other format data to the database; the loading strategy can also be implemented by setting the loading priority through other component or geometric priority definition methods.
[0213] Through experimental testing, several BIM scenarios were selected and compared with BIMServer in terms of initial loading time, earliest operable time, and effective pixel fill rate. The experimental results show that the strategy can effectively reduce the initial loading time and earliest operable time of WebBIM scenarios, significantly improve the effective pixel fill rate, improve the interactive experience, and reduce the time users wait for loading.
[0214] This application also provides an electronic device, which may include a processor, a memory, a receiver, and a transmitter. The processor is used to execute the cloud-edge-device collaborative BIM scene hierarchy loading method mentioned in the above embodiments. The processor and memory can be connected via a bus or other means, taking a bus connection as an example. The receiver can be connected to the processor and memory via wired or wireless means.
[0215] The processor can be a central processing unit (CPU). The processor can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or combinations of the above types of chips.
[0216] Memory, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs, non-transitory computer-executable programs, and modules, such as the program instructions / modules corresponding to the cloud-edge-device collaboration-based BIM scene hierarchy loading method in the embodiments of this application. The processor executes various functional applications and data processing by running the non-transitory software programs, instructions, and modules stored in the memory, thereby implementing the cloud-edge-device collaboration-based BIM scene hierarchy loading method in the above method embodiments.
[0217] The memory may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created by the processor, etc. Furthermore, the memory may include high-speed random access memory and non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, the memory may optionally include memory remotely located relative to the processor, which can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0218] The one or more modules are stored in the memory, and when executed by the processor, the BIM scene hierarchy loading method based on cloud-edge-device collaboration in the embodiment is executed.
[0219] In some embodiments of this application, the user equipment may include a processor, a memory, and a transceiver unit. The transceiver unit may include a receiver and a transmitter. The processor, memory, receiver, and transmitter may be connected via a bus system. The memory is used to store computer instructions, and the processor is used to execute the computer instructions stored in the memory to control the transceiver unit to send and receive signals.
[0220] As one implementation method, the functions of the receiver and transmitter in this application can be implemented by transceiver circuits or dedicated transceiver chips, and the processor can be implemented by dedicated processing chips, processing circuits or general-purpose chips.
[0221] As another implementation approach, the server provided in this application embodiment can be implemented using a general-purpose computer. That is, the program code implementing the processor, receiver, and transmitter functions is stored in memory, and the general-purpose processor implements the processor, receiver, and transmitter functions by executing the code in memory.
[0222] This application also provides a computer-readable storage medium storing a computer program thereon. When executed by a processor, the computer program implements the steps of the aforementioned BIM scene hierarchy loading method based on cloud-edge-device collaboration. The computer-readable storage medium can be a tangible storage medium, such as random access memory (RAM), main memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, floppy disks, hard disks, removable storage disks, CD-ROMs, or any other form of storage medium known in the art.
[0223] Those skilled in the art will understand that the exemplary components, systems, and methods described in conjunction with the embodiments disclosed herein can be implemented in hardware, software, or a combination of both. Whether implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application. When implemented in hardware, it can be, for example, electronic circuits, application-specific integrated circuits (ASICs), appropriate firmware, plug-ins, function cards, etc. When implemented in software, the elements of this application are programs or code segments used to perform the required tasks. The programs or code segments can be stored in a machine-readable medium or transmitted over a transmission medium or communication link via data signals carried on a carrier wave.
[0224] It should be clarified that this application is not limited to the specific configurations and processes described above and shown in the figures. For the sake of brevity, detailed descriptions of known methods are omitted here. In the above embodiments, several specific steps are described and shown as examples. However, the method process of this application is not limited to the specific steps described and shown. Those skilled in the art can make various changes, modifications, and additions, or change the order of steps, after understanding the spirit of this application.
[0225] In this application, features described and / or illustrated for one embodiment may be used in the same or similar manner in one or more other embodiments, and / or combined with or in place of features of other embodiments.
[0226] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to the embodiments of this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.
Claims
1. A method for loading BIM scene hierarchy based on cloud-edge-device collaboration, characterized in that, include: Receive IFC format text data of the BIM model forwarded via an edge server in the cloud; The IFC format text data is converted and split to obtain the split data corresponding to the BIM model. The split data includes geometric data, material data, business attribute data, and index data. During the splitting process, based on multiple preset geometric dimension features of the geometric data, the geometric correlation factor is calculated using the principal component analysis (PCA) algorithm to determine the geometric priority of the geometric data. The split data is stored in the cloud and synchronized to the edge server, so that the edge server sends processing completion information for the BIM model to the client device, and the client device loads the scene data of the BIM model hierarchically based on the geometric priority and the preset user interaction priority according to the processing completion information. The process of converting and splitting the IFC format text data to obtain the split data corresponding to the BIM model includes: The IFC format text data is deserialized to obtain a tree-structured IFC object instance corresponding to the IFC format text data. The IFC object instance is traversed using a preorder traversal method, and the spatial structure data, geometric data, material data, and business attribute data in the IFC object instance are obtained in sequence. The index data of the IFC object instance is constructed, and the geometric data, material data, business attribute data, and index data are used as the split data. The client device, based on the processing completion information, performs hierarchical loading of the BIM model's scene data according to the geometric priority and a preset user interaction priority, including: The client device sends a model scene data request to the edge server based on the unique identifier of the model corresponding to the processing completion information, so that the edge server can query whether the corresponding model scene data is stored locally based on the unique identifier of the model. If it is, the edge server sends the index data corresponding to the model scene data to the client device. After receiving the index data, the client device parses the index data and constructs the corresponding model tree. Then, it opens the camera locally and filters out the components within the field of view corresponding to the current default view of the camera. Based on the geometric priority and the preset user interaction priority, the components within the view frustum are sorted, and the geometric data and material data are loaded based on the corresponding sorting results. Graphic rendering is then performed to obtain the scene data of the BIM model.
2. A BIM scene hierarchy loading method based on cloud-edge-device collaboration, characterized in that, include: Receive IFC format text data of the BIM model sent by the client device; The IFC format text data is sent to a cloud server so that the cloud server can perform data conversion and splitting on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data. The cloud server determines the geometric priority of the geometric data during the splitting process, then stores the split data in the cloud and sends out the split data; the cloud server is used to execute the BIM scene hierarchy loading method based on cloud-edge-device collaboration as described in claim 1. The system receives the split data and sends processing completion information for the BIM model to the client device, enabling the client device to perform hierarchical loading of the scene data of the BIM model based on the geometric priority and the preset user interaction priority according to the processing completion information.
3. A method for loading BIM scene hierarchy based on cloud-edge-device collaboration, characterized in that, include: Send the IFC format text data of the BIM model to the edge server, so that the edge server sends the IFC format text data to the cloud server, so that the cloud server performs data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data. The cloud server determines the geometric priority of the geometric data during the splitting process, then stores the split data in the cloud and sends out the split data; the cloud server is used to execute the BIM scene hierarchy loading method based on cloud-edge-device collaboration as described in claim 1. Receive processing completion information for the BIM model from the edge server based on the split data; Based on the processing completion information, the scene data of the BIM model is loaded hierarchically according to the geometric priority and the preset user interaction priority.
4. The BIM scene hierarchy loading method based on cloud-edge-device collaboration according to claim 3, characterized in that, The step of hierarchically loading the scene data of the BIM model based on the processing completion information, the geometric priority, and the preset user interaction priority includes: Based on the unique identifier of the model corresponding to the processing completion information, a model scene data request is sent to the edge server so that the edge server can query whether the corresponding model scene data is stored locally based on the unique identifier of the model. If it is, the edge server sends the index data corresponding to the model scene data. The system receives the index data sent by the edge server, parses the index data and constructs the corresponding model tree, and then opens the camera locally and filters out each component within the field of view corresponding to the current default view of the camera. Based on the geometric priority and the preset user interaction priority, the components within the view frustum are sorted, and the geometric data and material data are loaded based on the corresponding sorting results. Graphic rendering is then performed to obtain the scene data of the BIM model.
5. A cloud server, characterized in that, include: The data receiving module is used to receive IFC format text data of the BIM model forwarded via an edge server in the cloud. The data splitting module is used to perform data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data and index data. During the splitting process, based on multiple preset geometric dimension features of the geometric data, the geometric correlation factor is calculated by the principal component analysis (PCA) algorithm to determine the geometric priority of the geometric data. The data storage and transmission module is used to store the split data in the cloud and synchronize it to the edge server, so that the edge server sends the processing completion information of the BIM model to the client device, and the client device loads the scene data of the BIM model hierarchically based on the processing completion information, the geometric priority and the preset user interaction priority. The process of converting and splitting the IFC format text data to obtain the split data corresponding to the BIM model includes: The IFC format text data is deserialized to obtain a tree-structured IFC object instance corresponding to the IFC format text data. The IFC object instance is traversed using a preorder traversal method, and the spatial structure data, geometric data, material data, and business attribute data in the IFC object instance are obtained in sequence. The index data of the IFC object instance is constructed, and the geometric data, material data, business attribute data, and index data are used as the split data. The client device, based on the processing completion information, performs hierarchical loading of the BIM model's scene data according to the geometric priority and a preset user interaction priority, including: The client device sends a model scene data request to the edge server based on the unique identifier of the model corresponding to the processing completion information, so that the edge server can query whether the corresponding model scene data is stored locally based on the unique identifier of the model. If it is, the edge server sends the index data corresponding to the model scene data to the client device. After receiving the index data, the client device parses the index data and constructs the corresponding model tree. Then, it opens the camera locally and filters out the components within the field of view corresponding to the current default view of the camera. Based on the geometric priority and the preset user interaction priority, the components within the view frustum are sorted, and the geometric data and material data are loaded based on the corresponding sorting results. Graphic rendering is then performed to obtain the scene data of the BIM model.
6. An edge server, characterized in that, include: The data acquisition module is used to receive IFC format text data of the BIM model sent by the client device; The first data forwarding module is used to send the IFC format text data to a cloud server, so that the cloud server performs data conversion and splitting processing on the IFC format text data to obtain the split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data, and index data. During the splitting process, the cloud server determines the geometric priority of the geometric data, and then stores the split data in the cloud and sends it out. The cloud server is used to execute the BIM scene hierarchy loading method based on cloud-edge-device collaboration as described in claim 1. The second data forwarding module is used to receive the split data and send processing completion information for the BIM model to the client device, so that the client device loads the scene data of the BIM model hierarchically based on the geometric priority and the preset user interaction priority according to the processing completion information.
7. A client device, characterized in that, include: A data sending module is used to send IFC format text data of the BIM model to an edge server, so that the edge server sends the IFC format text data to a cloud server, and the cloud server performs data conversion and splitting processing on the IFC format text data to obtain split data corresponding to the BIM model. The split data includes: geometric data, material data, business attribute data, and index data. During the splitting process, the cloud server determines the geometric priority of the geometric data, and then stores the split data in the cloud and sends it out. The cloud server is used to execute the BIM scene hierarchy loading method based on cloud-edge-device collaboration as described in claim 1. The information receiving module is used to receive the processing completion information for the BIM model sent by the edge server based on the split data; The hierarchical loading module is used to perform hierarchical loading of the scene data of the BIM model based on the processing completion information, the geometric priority, and the preset user interaction priority.
8. A BIM scene hierarchy loading system based on cloud-edge-device collaboration, characterized in that, include: A cloud server is used to execute the BIM scene hierarchy loading method based on cloud-edge-device collaboration as described in claim 1. An edge server is connected to both the client device and the cloud server for communication purposes. The edge server is used to execute the BIM scene hierarchy loading method based on cloud-edge-device collaboration as described in claim 2. A client device is used to execute the BIM scene hierarchy loading method based on cloud-edge-device collaboration as described in claim 3 or 4.
Citation Information
Patent Citations
3D (Three-Dimensional) lightweight conversion method based on BIM (Building Information Modeling) file
CN108647330A