A city-level BIM model loading method
Through the spatial partitioning method of quadtree and octree, the city-level BIM model is managed hierarchically, which solves the problems of large-scale scene data transmission volume and long loading time, and realizes fast loading and efficient display.
Patent Information
- Application Number
- CN202310880089.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-18
- Publication Date
- 2025-09-09
- Estimated Expiration
- 2043-07-18
AI Technical Summary
During the transmission and loading of large-scale scene data, there are problems such as large transmission volume, long user waiting time, and low model rendering frame rate.
The spatial partitioning method of quadtree and octree is used to manage the city-level BIM model in a hierarchical manner, load data on demand, and request scene data sets in batches according to the change of perspective.
It reduces scene loading time, improves user experience, and increases the efficiency and speed of model display.
Smart Images

Figure CN116894105B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of data loading, and in particular to a city-level BIM model loading method. Background Art
[0002] In the past, large-scale scene data was organized by scene or project, which often faced problems such as large transmission volume, long user waiting time, and low model rendering frame rate.
[0003] Therefore, it is necessary to provide a city-level BIM model loading method to divide each project and realize gradual transmission and loading in batches, thereby reducing the scene loading time. Summary of the Invention
[0004] The purpose of the present invention is to provide a city-level BIM model loading method, which divides each project and realizes gradual transmission and loading in batches, thereby reducing the scene loading time.
[0005] In order to solve the problems existing in the prior art, the present invention provides a city-level BIM model loading method, comprising the following steps:
[0006] Divide the plane space into quadtrees to obtain multi-level quadtrees;
[0007] Divide the three-dimensional space into an octree to obtain a multi-level octree;
[0008] Categorize each project by scenario;
[0009] Each scene is first matched with the quadtree of the corresponding level. After the quadtree of the corresponding level is successfully matched, each scene is then matched with the octree of the corresponding level. According to the existing design, each item in each scene is distributed to different positions in the octree.
[0010] Each project has its own BIM model, and the BIM model and its internal modules are inserted into the octree at the corresponding level;
[0011] Split the quadtree and octree according to the level, set the perspective permission for each level of the quadtree, and set the parameter permission for each level of the octree;
[0012] Obtain viewing permissions and octree request parameters according to user needs, and present a BIM model diagram based on the viewing permissions and octree request parameters.
[0013] Optionally, in the city-level BIM model loading method, a multi-level quadtree is obtained as follows:
[0014] The plane space is divided into quadtrees to obtain the first-level quadtree. According to actual needs, the quadtree is recursively divided in the range covered by each node of the first-level quadtree to obtain the second-level quadtree, the third-level quadtree, ..., the n-th level quadtree, where n is the total number of quadtree layers.
[0015] Optionally, in the city-level BIM model loading method, a multi-level octree is obtained as follows:
[0016] The three-dimensional space is divided into octrees to obtain the first-level octree. According to actual needs, the octree is recursively divided into the second-level octree, the third-level octree, and so on, and the m-th-level octree is obtained in sequence, where m is the total number of octree layers.
[0017] Optionally, in the city-level BIM model loading method, each scene is first matched with a quadtree of a corresponding level. After the quadtree of the corresponding level is successfully matched, each scene is then matched with an octree of the corresponding level in the following manner:
[0018] Match the quadtree of the corresponding level according to the size of the plane occupied by each scene;
[0019] Match the octree of the corresponding level according to the space occupied by each scene;
[0020] Each BIM model and its internal modules are matched to the octree of the corresponding level according to the size of the space they occupy, and the BIM model and its internal modules are inserted into the octree of the corresponding level.
[0021] Optionally, in the city-level BIM model loading method,
[0022] The first level quadtree is divided according to direction;
[0023] The second level quadtree is divided according to the city’s administrative districts;
[0024] The third level quadtree is divided according to streets.
[0025] Optionally, in the city-level BIM model loading method, the user selects perspective authority and octree request parameters on the terminal according to needs.
[0026] Optionally, in the city-level BIM model loading method,
[0027] If the current view permission is loaded into the first-level quadtree, and the view permission in the first-level quadtree is BIM model overview, then the BIM model overview of all projects in the first-level quadtree within the current field of view will be displayed;
[0028] If the view angle is moved so that the current view angle authority is loaded into the fourth-level quadtree, and the view angle authority in the fourth-level quadtree is plane details, the plane details of the BIM model within the current field of view will be displayed.
[0029] Optionally, in the city-level BIM model loading method,
[0030] If the octree request parameter is p, then an octree with p levels is loaded for display, where p is a natural number.
[0031] Optionally, in the city-level BIM model loading method, if the loaded octree of p levels does not meet the requirements, the octree request parameter is changed to p+q, and the octree of q levels is continued to be loaded for display, where q is a natural number, until the user requirements are met.
[0032] The city-level BIM model loading method provided by this invention achieves the fusion of multiple BIM models by leveraging the characteristics of quadtrees and octrees. Furthermore, the invention employs an on-demand loading approach, requesting scene datasets in batches as the viewing angle changes. Each batch of requested data is small, allowing the BIM models in the scene to be displayed quickly, reducing wait time and improving the user experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0033] Figure 1 A schematic diagram showing the position of a model provided in an embodiment of the present invention;
[0034] Figure 2 A schematic diagram of a quadtree formed according to an embodiment of the present invention;
[0035] Figure 3 A schematic diagram of octree segmentation provided by an embodiment of the present invention;
[0036] Figure 4 A schematic diagram of project loading provided by an embodiment of the present invention;
[0037] Figure 5 A schematic diagram of project loading when the viewing angle changes according to an embodiment of the present invention;
[0038] Figure 6 Schematic diagram of data organization implementation of each scenario model provided by an embodiment of the present invention;
[0039] Figure 7 A schematic diagram of the first-level octree provided by an embodiment of the present invention;
[0040] Figure 8 A schematic diagram of the second-layer octree provided by an embodiment of the present invention;
[0041] Figure 9 Schematic diagram of the p-th layer octree provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0042] The following is a more detailed description of the specific embodiments of the present invention with reference to schematic diagrams. The advantages and features of the present invention will become more apparent from the following description. It should be noted that the drawings are greatly simplified and not to exact scale, and are only used for the purpose of conveniently and clearly illustrating the embodiments of the present invention.
[0043] Hereinafter, if the method described herein includes a series of steps, the order in which the steps are presented herein is not necessarily the only order in which the steps may be performed, and some of the steps described may be omitted and / or some other steps not described herein may be added to the method.
[0044] In the past, large-scale scene data was organized by scene or project, which often faced problems such as large transmission volume, long user waiting time, and low model rendering frame rate.
[0045] In order to solve the problems existing in the prior art, the present invention provides a city-level BIM model loading method, comprising the following steps:
[0046] Divide the plane space into quadtrees to obtain multi-level quadtrees;
[0047] Divide the three-dimensional space into an octree to obtain a multi-level octree;
[0048] Categorize each project by scenario;
[0049] Each scene is first matched with the quadtree of the corresponding level. After the quadtree of the corresponding level is successfully matched, each scene is then matched with the octree of the corresponding level. According to the existing design, each item in each scene is distributed to different positions in the octree.
[0050] Each project has its own BIM model, and the BIM model and its internal modules are inserted into the octree at the corresponding level;
[0051] Split the quadtree and octree according to the level, set the perspective permission for each level of the quadtree, and set the parameter permission for each level of the octree;
[0052] Obtain viewing permissions and octree request parameters according to user needs, and present a BIM model diagram based on the viewing permissions and octree request parameters.
[0053] CIM is a digital model for smart city construction, requiring a large number of BIM models as support. BIM models for different scenarios are integrated into the same CIM engine, making planning and organizing this BIM data a crucial step. This invention leverages the characteristics of quadtrees and octrees to achieve the integration of multiple BIM models. Furthermore, this invention utilizes an on-demand loading approach, requesting scene data sets in batches as the viewing angle changes. Each batch of requested data is small, allowing the BIM models in the scene to be displayed quickly, reducing wait time and improving the user experience.
[0054] Further, such as Figure 1 and 2 As shown, a multi-level quadtree is obtained as follows:
[0055] The plane space is divided into quadtrees to obtain the first-level quadtree. According to actual needs, the quadtree is recursively divided in the range covered by each node of the first-level quadtree to obtain the second-level quadtree, the third-level quadtree, ..., the n-th level quadtree, where n is the total number of quadtree layers.
[0056] In one embodiment, Figure 6 As shown, the entire Earth is first divided into two grids, serving as level 0. The two initial grids are then recursively divided using a quadtree, with each division corresponding to a different level. Each grid has row and column numbers and level data, and is associated with a rectangle object with latitude and longitude data in the east, west, south, and north directions, representing the grid's boundaries.
[0057] Furthermore, when integrating city-level multi-scenario BIM model data, we first provide the latitude and longitude data for each scene, along with the scene model's bounding box data. This data is then matched against the previously defined grids. If a match is successful, the scene is located within one of these grids. Similarly, each scene falls within a fixed hierarchy of grids. Through this data organization, multiple city-level scenes are integrated into a single, larger city scene.
[0058] In one embodiment, the first-level quadtree may be divided according to directions; the second-level quadtree may be divided according to administrative districts of the city; and the third-level quadtree may be divided according to streets.
[0059] The present invention uses a quadtree structure to record the planar distribution information of the project on the server side according to the project's geographical location on the earth (project latitude and longitude) and the size of the project's space bounding box. When the user side displays, it can quickly find the project to be loaded according to the needs. Figure 2As shown, when the user is in the northern hemisphere of the earth, only projects A and B in the northern hemisphere need to be loaded, and project C in the southern hemisphere does not need to be loaded, thereby avoiding unnecessary project requests and improving loading efficiency.
[0060] In addition, since quadtree is used to manage the plane distribution information of the project, geographically close projects are classified into the same scene, which reduces the number of scenes and effectively reduces the amount of data when loading each scene. Figure 1 As shown in the figure, Projects A and B are located in the same quadtree grid and are geographically close. Therefore, these two projects are categorized as scenarios and represented using the same scenario. Projects A and B use Scenario 1 to organize their BIM models, while Project C uses Scenario 2 to organize its BIM models.
[0061] The present invention adopts a quadtree as a plane index implementation method to hierarchically locate different scenes on the plane distribution, which is beneficial for the front-end engine to decide whether to load a certain model by hierarchy when displaying the data of the BIM model, eliminate unnecessary scene loading, and improve loading efficiency.
[0062] Each scene has been located and divided into different grids based on the plane distribution information. However, the amount of BIM model data for a single scene is often considerable. It is very necessary to solve the problem of how to organize the BIM model data for a single scene. The present invention uses the spatial partitioning characteristics of the octree to organize and divide the BIM model of a single scene, and dynamically request BIM model data in a hierarchical manner. Furthermore, the method of dividing the multi-level octree is as follows: the three-dimensional space is divided according to the octree method to obtain the first-level octree, and according to actual needs, the octree method is continued to be recursively divided within the range covered by each node of the first-level octree, thereby obtaining the second-level octree, the third-level octree, ..., the m-th-level octree, where m is the total number of octree layers.
[0063] Specifically, each scene is first matched with the quadtree of the corresponding level. On the basis of successfully matching the quadtree of the corresponding level, each scene is then matched with the octree of the corresponding level. According to the existing design, each item in each scene is distributed in different positions of the corresponding octree. Furthermore, the matching method is as follows: the quadtree of the corresponding level is matched according to the size of the plane occupied by each scene; the octree of the corresponding level is matched according to the size of the space occupied by each scene; each BIM model and its internal modules are matched with the octree of the corresponding level according to the size of the space occupied, and the BIM model and its internal modules are inserted into the octree of the corresponding level.
[0064] For further reference, Figure 6, the amount of BIM model data for a single scene is often relatively large. If data is requested for the entire scene, it will cause congestion in data requests. The present invention uses the characteristics of the octree to divide the model modules of a certain scene. First, the center point of the octree is set at the origin of the scene. Each model module in the scene is matched with the nodes of the octree through its own bounding box and center point. If the match is successful, the module of the model is included in the node; if it does not match, the child nodes of the node will continue to be found to continue matching until the match is successful. After all modules in the scene are matched, all modules will be divided into octree nodes. It can be understood that multiple volume intervals are divided according to the size of the module, and modules in different volume intervals correspond to octrees at different levels.
[0065] Optionally, in the city-level BIM model loading method, if Figure 3 As shown, the quadtree and octree are divided according to the level, and the perspective permission is set for the quadtree at each level, and the parameter permission is set for the octree at each level.
[0066] Optionally, in the city-level BIM model loading method, the user selects perspective authority and octree request parameters on the terminal according to needs.
[0067] Optionally, in the city-level BIM model loading method, the perspective authority is obtained according to the position of the user's perspective, a quadtree grid of a matching level is selected, and the scene corresponding to the project in the grid is loaded.
[0068] If the current view permission is loaded into the first-level quadtree, and the view permission in the first-level quadtree is the BIM model overview, then the BIM model overviews of all projects in the first-level quadtree within the current field of view will be displayed; for example, Figure 4 From the user-side perspective shown, only the scenes of Project A and Project B will be requested, and the scene of Project C will not be requested.
[0069] If the view angle is moved so that the current view angle authority is loaded into the fourth-level quadtree, and the view angle authority in the fourth-level quadtree is plane details, the plane details of the BIM model within the current field of view will be displayed.
[0070] In one embodiment, different parts of the scene are requested to be loaded according to the position of the user's perspective. Figure 5 As shown in the subtree 1, when the view is far away from the scene tree, part of the scene data (second-level quadtree) will be loaded first. Figure 5As shown, moving from viewpoint 1 to viewpoint 2 brings the scene closer, further requests are made for related scene data. Subtree 2 in the figure represents incremental requests for scene data (fourth-level quadtree) as the viewpoint moves closer. Therefore, as the viewpoint moves through the scene tree, scene data is dynamically requested in batches until the entire scene structure is complete. Scene data for areas not traversed by the viewpoint is not requested.
[0071] Optionally, in the city-level BIM model loading method, if the octree request parameter is p, then an octree of p levels is loaded for display, where p is a natural number. If the loaded octree of p levels does not meet the requirements, the octree request parameter is changed to p+q, and then octrees of q levels are continuously loaded for display, where q is a natural number, until the user's requirements are met.
[0072] In one embodiment, the front-end engine can smoothly call BIM model data. The octree is divided into multiple levels. The backend can set the octree request parameters. The front-end engine requests data (perspective advancement) to select the backend octree request parameters. Assuming that the octree request parameter is 3, it means that each time a BIM model is requested, only the model data on the three level nodes on the octree is obtained. This allows for flexible configuration of the amount of data requested each time, ensuring that the amount of data requested each time is at a reasonable value, without causing request congestion, improving the speed and efficiency of the front-end engine's data requests, and thus improving the speed of model display.
[0073] The present invention selects several levels in the octree scene to illustrate the actual scene loading process. Figure 7 As shown in , since the viewing angle is far from the center of the scene, at this time, only the content of the root node of the octree scene needs to be loaded to display the first layer of the octree. Figure 8 As shown in , the request is to load some node contents in the second-level octree. Similarly, as the viewing angle continues to advance, the octree request parameters are continuously changed, such as Figure 9 As shown, it is possible to request to load the p-th level octree.
[0074] In summary, the city-level BIM model loading method provided by this invention optimizes transmission by using quadtrees and octrees to divide the project and segmenting the quadtrees and octrees according to the hierarchy. As a result, the data for the entire scene is gradually transferred and loaded in batches as the viewport permissions are changed, reducing scene loading time.
[0075] The above description is merely a preferred embodiment of the present invention and does not limit the present invention in any way. Any person skilled in the art who, without departing from the scope of the present invention, makes any equivalent substitution, modification, or other changes to the technical solution and technical content disclosed in the present invention shall be deemed to be within the scope of the present invention and still fall within the scope of protection of the present invention.
Claims
1. A city-level BIM model loading method, characterized in that: The following steps are involved: Divide the plane space into quadtrees to obtain multi-level quadtrees; Divide the three-dimensional space into an octree to obtain a multi-level octree; Categorize each project by scenario; Each scene is first matched with the quadtree of the corresponding level. After the quadtree of the corresponding level is successfully matched, each scene is then matched with the octree of the corresponding level. According to the existing design, each item in each scene is distributed to different positions in the octree. Each project has its own BIM model, and the BIM model and its internal modules are inserted into the octree at the corresponding level; Split the quadtree and octree according to the level, set the perspective permission for each level of the quadtree, and set the parameter permission for each level of the octree; Obtain viewing permissions and octree request parameters according to user needs, and present a BIM model diagram based on the viewing permissions and octree request parameters.
2. The city-level BIM model loading method according to claim 1, characterized in that: Get a multi-level quadtree as follows: The plane space is divided into quadtrees to obtain the first-level quadtree. According to actual needs, the quadtree is recursively divided in the range covered by each node of the first-level quadtree to obtain the second-level quadtree, the third-level quadtree, ..., the n-th level quadtree, where n is the total number of quadtree layers.
3. The city-level BIM model loading method according to claim 1, characterized in that: Get a multi-level octree as follows: The three-dimensional space is divided into octrees to obtain the first-level octree. According to actual needs, the octree is recursively divided into the second-level octree, the third-level octree, and so on, and the m-th-level octree is obtained in sequence, where m is the total number of octree layers.
4. The city-level BIM model loading method according to claim 2 or 3, characterized in that: Each scene is first matched with the quadtree of the corresponding level. After the quadtree of the corresponding level is successfully matched, each scene is then matched with the octree of the corresponding level in the following way: Match the quadtree of the corresponding level according to the size of the plane occupied by each scene; Match the octree of the corresponding level according to the space occupied by each scene; Each BIM model and its internal modules are matched to the octree of the corresponding level according to the size of the space they occupy, and the BIM model and its internal modules are inserted into the octree of the corresponding level.
5. The city-level BIM model loading method according to claim 4, characterized in that: The first level quadtree is divided according to direction; The second level quadtree is divided according to the city’s administrative districts; The third level quadtree is divided according to streets.
6. The city-level BIM model loading method according to claim 4, characterized in that: The user selects the view permission and octree request parameters on the terminal according to their needs.
7. The city-level BIM model loading method according to claim 6, characterized in that: If the current view permission is loaded into the first-level quadtree, and the view permission in the first-level quadtree is BIM model overview, then the BIM model overview of all projects in the first-level quadtree within the current field of view will be displayed; If the view angle is moved so that the current view angle authority is loaded into the fourth-level quadtree, and the view angle authority in the fourth-level quadtree is plane details, the plane details of the BIM model within the current field of view will be displayed.
8. The city-level BIM model loading method according to claim 6, characterized in that: If the octree request parameter is p, then an octree with p levels is loaded for display, where p is a natural number.
9. The city-level BIM model loading method according to claim 8, characterized in that: If the loaded octree of p levels does not meet the requirements, the octree request parameter is changed to p+q, and the octree of q levels is continuously loaded for display, where q is a natural number, until the user requirements are met.
Citation Information
Patent Citations
Data scheduling method and device for three-dimensional model and electronic equipment
CN111127615A
Urban full-space three-dimensional model data integrated management method
CN114972664A