Method, device and equipment for converting BIM (Building Information Modeling) into three-dimensional tiles in intelligent blocking manner, and medium

By employing intelligent segmentation and efficient indexing mechanisms, the problem of low rendering efficiency in BIM models has been solved, resulting in a smooth rendering and scaling experience and improved rendering performance of 3D tiles.

CN121962415APending Publication Date: 2026-05-01GUANGDONG HUAZHIYUAN TECH CO LTD +4
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
GUANGDONG HUAZHIYUAN TECH CO LTD
Filing Date
2025-11-24
Publication Date
2026-05-01

AI Technical Summary

Technical Problem

Existing BIM models suffer from low rendering efficiency, a single model segmentation method, and a lack of efficient indexing mechanisms, resulting in slow network transmission and rendering lag.

Method used

By extracting model data and determining model feature parameters, an intelligent segmentation strategy is used to divide the model into multiple blocks, merge primitives with the same material, calculate boundary volume, generate multiple levels of detail, construct a tree-shaped dataset, and provide an efficient indexing mechanism.

Benefits of technology

It significantly improves rendering efficiency, reduces the number of rendering calls, enables smooth scaling and roaming, supports view frustum culling and spatial queries, and avoids unnecessary geometry loading.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121962415A_ABST
    Figure CN121962415A_ABST
Patent Text Reader

Abstract

The invention discloses a method, a device and equipment for converting a BIM (Building Information Modeling) into three-dimensional tiles in an intelligent blocking manner, and a medium. The method comprises the following steps: extracting model data in a BIM model, and determining model feature parameters; intelligently selecting a partitioning strategy based on the model characteristic parameters, and partitioning the model data to obtain a plurality of blocks; merging the primitives with the same material in each block, and calculating the boundary volume of each block; generating a plurality of levels of detail for each block based on the boundary volume; and converting each block after the primitives are merged into each tile file, and generating a tree-shaped data set containing detail levels. By means of the mode, the partitioning strategy can be intelligently selected according to the model feature parameters to partition the model data to obtain the multiple blocks, consideration of materials and space distribution in the model feature parameters is added, and the rendering efficiency is improved; the rendering calling times are reduced through merging the pixels of the same material; an efficient tree index mechanism is provided by calculating the boundary volume and constructing a tree data set.
Need to check novelty before this filing date? Find Prior Art

Description

Methods, devices, equipment, and media for intelligent block-based conversion of BIM models into 3D tiles Technical Field

[0001] This application relates to the field of three-dimensional tile conversion, and in particular to a method, apparatus, equipment and medium for intelligent block conversion of BIM models into three-dimensional tiles. Background Technology

[0002] As BIM models continue to grow in size, traditional Web 3D rendering technologies are facing serious performance bottlenecks. Large BIM models typically contain tens of thousands of components, with file sizes reaching hundreds of MB or even several GB. Direct loading of these models can cause browser crashes or rendering lag.

[0003] Existing solutions suffer from the following main problems: large model files lead to slow network transmission; loading all geometry data at once causes memory overflow; the lack of an effective spatial indexing mechanism results in low rendering efficiency; and the inability to dynamically adjust the model's level of detail based on view distance. Furthermore, existing model partitioning methods typically employ simple set division or fixed-size blocks, lacking consideration for material properties and spatial distribution, leading to low rendering efficiency. Summary of the Invention

[0004] This application provides a method, device, equipment, and medium for intelligent block conversion of BIM models into 3D tiles, in order to solve the problems of low rendering efficiency, single block method, and lack of efficient indexing mechanism in the existing technology of BIM models.

[0005] To address the aforementioned technical problems, this application provides a technical solution: a method for intelligently converting BIM models into 3D tiles through block segmentation. This method includes: extracting model data from the BIM model and determining model feature parameters; intelligently selecting a segmentation strategy based on the model feature parameters to divide the model data into multiple blocks; merging primitives of the same material within each block and calculating the boundary volume of each block; generating multiple levels of detail for each block based on the boundary volume; converting the merged blocks into tile files and generating a tree-structured dataset containing the levels of detail.

[0006] In an optional embodiment of this application, the model feature parameters include the number of materials, model size, and spatial distribution density. The step of intelligently selecting a segmentation strategy based on the model feature parameters to divide the model data into multiple segments includes: in response to the model size not exceeding a preset segment size, treating the model data as one segment; in response to the number of materials not exceeding a first preset number, merging primitives with the same material into one segment to obtain multiple segments; in response to the number of materials exceeding a second preset number and the spatial distribution density being less than a preset density, segmenting the model data based on an octree spatial segmentation algorithm to obtain multiple segments; and in response to the number of materials being within the range of the first and second preset numbers and the spatial distribution density being not less than a preset density, segmenting the model data based on a hybrid segmentation strategy to obtain multiple segments.

[0007] In an optional embodiment of this application, the step of dividing the model data based on a hybrid block strategy to obtain multiple blocks includes: dividing all the primitives in the model data according to their materials to obtain multiple material groups, and calculating the size of each material group; for material groups whose material group size exceeds the preset block size, dividing the material group based on an octree space partitioning algorithm to obtain multiple blocks; and for material groups whose material group size does not exceed the preset block size, using the material group as the block.

[0008] In an optional embodiment of this application, the step of dividing the material group into multiple blocks based on the octree spatial partitioning algorithm includes: dividing the material group into eight equal-volume subspaces based on the center point of the bounding box of the material group; for each graphic element, allocating the graphic element according to the subspace to which the center point of the bounding box of the graphic element belongs; recursively dividing the subspaces based on the octree spatial partitioning algorithm until the size of the subspace does not exceed the preset block size, or the number of graphic elements in the subspace is greater than a third preset number, or the recursion depth exceeds a preset number of layers, and taking the multiple subspaces as multiple blocks.

[0009] In an optional embodiment of this application, merging primitives with the same material within each block and calculating the boundary volume of each block includes: splicing the vertex data of primitives with the same material within each block, remapping the index of each vertex data, and unifying the material references of the primitives to achieve merging; for each block, traversing the vertices to calculate the minimum and maximum coordinates of the bounding box of the block, and calculating the center point and radius of the bounding sphere of the block based on the bounding sphere algorithm to obtain the boundary volume of each block.

[0010] In an optional embodiment of this application, the step of calculating the center point and radius of the bounding sphere of the block based on the bounding sphere algorithm includes: determining an initial diameter starting from the center point of the bounding box, traversing all vertices of the block to expand the initial bounding sphere corresponding to the initial diameter to obtain the bounding sphere, and determining the center point and radius of the bounding sphere.

[0011] In an optional embodiment of this application, generating multiple levels of detail for each block based on the boundary volume includes: for each block, determining the geometric error corresponding to each level of detail based on the boundary volume, and generating multiple levels of detail based on the geometric error and a folding simplification algorithm.

[0012] To address the aforementioned technical problems, another technical solution adopted in this application is: providing a BIM model intelligent block-to-3D tile conversion device, characterized by comprising: a model extraction module for extracting model data from the BIM model and determining model feature parameters; a model segmentation module for intelligently selecting a segmentation strategy based on the model feature parameters to segment the model data into multiple blocks; a material merging module for merging primitives with the same material within each block and calculating the boundary volume of each block; a hierarchy generation module for generating multiple detail levels for each block based on the boundary volume; and a tile generation module for converting the merged primitives into tile files and generating a tree-shaped dataset containing the detail levels.

[0013] To solve the above-mentioned technical problems, another technical solution adopted in this application is: to provide a computer device, including a memory, a processor and a computer program stored in the memory, characterized in that the processor executes the computer program to implement the steps of the above-mentioned intelligent block conversion method for BIM model to three-dimensional tiles.

[0014] To solve the above-mentioned technical problems, another technical solution adopted in this application is: to provide a storage medium storing a computer program thereon, characterized in that the computer program, when executed by a processor, implements the steps of the above-mentioned intelligent block conversion method for BIM model into three-dimensional tiles.

[0015] The beneficial effects of this application are as follows: Unlike existing technologies, this application discloses a method, apparatus, device, and medium for intelligent block-based conversion of BIM models into 3D tiles. This method extracts model data from the BIM model and determines model feature parameters. Based on these parameters, it intelligently selects a block-based strategy to divide the model data into multiple blocks. It incorporates considerations of material and spatial distribution within the model feature parameters, improving rendering efficiency. By merging primitives with the same material within each block, it reduces the number of rendering calls. By generating multiple levels of detail for each block, it achieves smooth scaling and roaming. Through calculating boundary volumes and constructing a tree-like dataset, it provides an efficient tree-like indexing mechanism, supporting view frustum culling, level-of-detail selection, and spatial querying, significantly reducing unnecessary geometry loading and rendering. Attached Figure Description

[0016] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort. Among them: Figure 1 is a flowchart of an embodiment of the intelligent block conversion method for BIM model to 3D tiles provided by this application; Figure 2 is a flowchart of the automatic block conversion of an embodiment of the intelligent block conversion method for BIM model to 3D tiles provided by this application; Figure 3 is a structural diagram of an embodiment of the intelligent block conversion device for BIM model to 3D tiles provided by this application; Figure 4 is a structural diagram of an embodiment of the storage medium provided by this application; Figure 5 is a structural diagram of an embodiment of the computer device provided by this application. Detailed Implementation

[0017] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of the embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.

[0018] The terms "first," "second," and "third" used in the embodiments of this application are for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Thus, a feature defined as "first," "second," or "third" may explicitly or implicitly include at least one of that feature. In the description of this application, "multiple" means at least two, such as two, three, etc., unless otherwise explicitly specified. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or device that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or devices.

[0019] In this document, the term "embodiment" means that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a mutually exclusive, independent, or alternative embodiment. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.

[0020] This application provides a method for intelligently dividing a BIM model into blocks and converting it into three-dimensional tiles. Referring to Figure 1, Figure 1 is a flowchart of an embodiment of the method for intelligently dividing a BIM model into blocks and converting it into three-dimensional tiles provided in this application. The method includes: S10: extracting model data from the BIM model and determining model feature parameters.

[0021] A BIM model (Building Information Modeling) is a digital three-dimensional building model containing rich information. BIM models include files in various formats such as Object File (OBJ), GL Transmission Format (GLTF), GL Transmission Format Binary (GLB), and Filmbox (FBX).

[0022] This application supports multiple input formats such as OBJ, GLTF, GLB and FBX, and has good scalability and maintainability, which can meet the processing needs of BIM models of different sizes and complexities.

[0023] In this application, for the input BIM model, OBJ, GLTF, GLB, and FBX format files are parsed to extract model data from the BIM model. The model data includes at least geometric data, material information, and texture file paths.

[0024] Specifically, third-party parsing libraries can be used to parse the model's format files. For OBJ format, the OBJ to GLTF conversion tool (obj2gltf) is used to parse it into an intermediate format; for GLTF / GLB format, the GLTF conversion and optimization toolkit (gltf-transform) is used to read it; for FBX format, it is converted to GLTF using the FBX to GLTF conversion tool (fbx2gltf) for post-processing. An adapter pattern is used to encapsulate different format parsers (including obj2gltf, gltf-transform, and fbx2gltf), and all formats are uniformly converted into a standardized intermediate data structure to establish a unified model data structure.

[0025] For the extracted model data, obtain the corresponding values ​​of the model feature parameters, which include the number of materials M, the model size S (i.e., the total size of the model in bytes, in MB), and the spatial distribution density D (spatial distribution density D = geometric volume / bounding box volume).

[0026] By extracting model data from the BIM model, a complete and unified model data structure is established, providing an accurate and efficient data foundation for subsequent 3D tile conversion. Based on this, model feature parameters, such as the number of materials (M), model size (S), and spatial distribution density (D), are further obtained to provide a basis for intelligent block division of the BIM model, adapting to the partitioning needs of different scenarios.

[0027] S20: Intelligent selection of block segmentation strategy based on model feature parameters to divide model data into multiple blocks.

[0028] For ease of understanding, the terms "Tile Block," "Tile File," and "Tile" in this application are defined below. A block is a logical concept, referring to the set of primitives obtained after the intelligent block partitioning strategy is executed; it is a data structure in memory. A tile file is a physical concept, referring to the final output GLB format file; it is the disk storage form after the blocks have been merged and optimized. "Tile," without ambiguity, can refer to either a block or a tile file; it is understood that "tile" can also be used to refer to a block in the following text. Normally, one block corresponds to one tile file, with a one-to-one correspondence. However, in this application, due to the generation of Levels of Detail (LODs), one block corresponds to the same number of tile files as the number of LODs.

[0029] In this application, the model feature parameters include the number of materials, model size, and spatial distribution density.

[0030] The model intelligently selects a partitioning strategy based on its feature parameters, specifically considering the number of materials, model size, and spatial distribution density. It's important to note that the smallest unit for model partitioning is the primitive, not the mesh. Primitives are not partitioned; they contain vertex arrays, index arrays, and material references, corresponding to a single GPU draw call. The hierarchical relationship of data units within the model, from largest to smallest, is: model → node → mesh → primitive.

[0031] In this application, a block segmentation strategy is intelligently selected based on model feature parameters to divide the model data into multiple blocks, including: S21: In response to the model size not exceeding the preset block size, the model data is treated as a block.

[0032] In this application, it can first determine whether the model needs to be divided into blocks based on the model size S. When the model size does not exceed the preset block size, it is determined that the current model does not need to be divided into blocks and can be output as a whole, that is, the entire model data is treated as a block.

[0033] S22: In response to the fact that the number of materials does not exceed the first preset number, merge the primitives with the same material into one block to obtain multiple blocks.

[0034] When the model size S exceeds the preset block size, the current model is determined to need to be divided into blocks. Further, a block division strategy can be selected based on the number of materials M and the spatial distribution density D. When the number of materials M does not exceed a first preset number, a pure material segmentation strategy can be adopted, that is, primitives of the same material are grouped together to maximize the merging effect. The number of blocks generated corresponds to the number of materials. If a block corresponding to a certain material is too large, exceeding the preset block size, that block can be further divided according to the preset block size. This block division strategy is suitable for scenarios with few materials; using only material merging for block division yields the best results and requires the fewest rendering calls.

[0035] S23: In response to the fact that the number of materials exceeds the second preset number and the spatial distribution density is less than the preset density, the model data is segmented based on the octree spatial segmentation algorithm to obtain multiple blocks.

[0036] When the number of materials M exceeds a second preset number, and the spatial distribution density D is less than a preset density, a pure spatial partitioning strategy can be adopted. This strategy uses an octree spatial partitioning algorithm to divide the model data into multiple blocks. This partitioning strategy is suitable for scenarios with too many materials or sparse model space, and pure spatial partitioning makes spatial indexing more efficient.

[0037] S24: In response to the fact that the number of materials is within the range of the first preset number and the second preset number and the spatial distribution density is not less than the preset density, the model data is divided into multiple blocks based on the hybrid block division strategy.

[0038] When the quantity M of materials is within the range of the first preset quantity and the second preset quantity (i.e., the first preset quantity < M < the second preset quantity), and the spatial distribution density is not less than the preset density, the model data can be divided into multiple blocks based on the hybrid block division strategy.

[0039] The preset block size can be 8MB, 10MB or 12MB, the first preset number can be 4, 5 or 6, the second preset number can be 90, 100 or 110, and the preset density can be 0.2, 0.3 or 0.4. All of these can be flexibly adjusted according to actual needs, and no specific limitation is made.

[0040] By employing the aforementioned intelligent tile selection strategy, it is ensured that each tile is of appropriate size, balancing the integrity of materials with spatial continuity. This approach not only effectively avoids the problem of frequent material switching caused by tiles that are too small, but also prevents loading delays and excessive memory usage caused by tiles that are too large, thus significantly improving the rendering efficiency of 3D tiles.

[0041] In this application, model data is divided into multiple blocks based on a hybrid block division strategy, including: dividing all primitives in the model data according to their materials to obtain multiple material groups, and calculating the size of each material group; for material groups whose material group size exceeds the preset block size, the material group is divided into multiple blocks based on an octree space partitioning algorithm; for material groups whose material group size does not exceed the preset block size, the material group is used as a block.

[0042] Specifically, firstly, all primitives in the model data are grouped according to their material to obtain M material groups. Then, the size of each material group in bytes, Size_i, is calculated. For material groups whose Size_i exceeds the preset block size, the octree space partitioning algorithm is used to partition the material groups, while material groups whose Size_i does not exceed the preset block size are kept intact and directly used as blocks.

[0043] The hybrid tile-based strategy balances material integrity and file size control, keeping identical materials within the same tile to minimize material switching, while large material groups support streaming loading through an octree spatial partitioning algorithm. Typical applicable scenarios include single-building BIM (with a moderate number of materials such as curtain walls, concrete, and steel structures).

[0044] In this application, a material group is segmented based on an octree spatial partitioning algorithm to obtain multiple blocks, including: dividing the material group into eight equal-volume subspaces based on the center point of the bounding box of the material group; for each primitive, the primitive is assigned according to the subspace to which the center point of the bounding box of the primitive belongs; the subspace is recursively segmented based on the octree spatial partitioning algorithm until the size of the subspace does not exceed the preset block size, or the number of primitives in the subspace is greater than a third preset number, or the recursion depth exceeds a preset number of layers, and the multiple subspaces are treated as multiple blocks.

[0045] Specifically, for the material group to be spatially segmented, the center point of the axis-aligned bounding box (AABB) in the current space is calculated. The center point is defined as center = ((x_min+x_max) / 2, (y_min+y_max) / 2, (z_min+z_max) / 2), where x_min, y_min, and z_min represent the minimum coordinates of the material group on the X, Y, and Z axes of the current space, respectively, and x_max, y_max, and z_max represent the maximum coordinates of the material group on the X, Y, and Z axes of the current space, respectively. After calculating the center point of the bounding box, the space is simultaneously segmented along the midpoints of the X, Y, and Z axes to generate eight equal-volume subspaces (bottom left front, bottom right front, top left front, top right front, bottom left back, bottom right back, top left back, and top right back), with each subspace having a volume one-eighth that of its parent space. During the process of partitioning subspaces, for the smallest unit of graphic primitive, the ownership of the primitive is determined based on the center point of its bounding box. That is, the primitive is assigned to the subspace in which the center point of the bounding box is located, without performing geometric partitioning.

[0046] After dividing the space into 8 equal-volume subspaces, if the subspace still exceeds the preset block size, recursive segmentation can continue. That is, for each subspace, it is divided according to the octree space partitioning algorithm to obtain 8 next-level subspaces, until the size of the subspace does not exceed the preset block size, or the number of primitives in the subspace exceeds a third preset number, or the recursion depth exceeds a preset number of levels. At this point, the recursion terminates, and the final multiple subspaces are used as multiple blocks. Furthermore, if an empty subspace is generated during the segmentation process, that subspace is not used to generate tile files.

[0047] The third preset quantity can be 40, 50 or 60, and the preset number of layers can be 7, 8 or 9. All of these can be flexibly adjusted according to actual needs, and no specific limitation is made.

[0048] In step S23 above, when the number of materials M exceeds the second preset number and the spatial distribution density D is less than the preset density, the model data is divided into multiple blocks based on the octree spatial segmentation algorithm. The octree spatial segmentation algorithm is the same as here, so it will not be described again.

[0049] It should be noted that during the above block division process, for the smallest unit primitive, when there is an ultra-large primitive (larger than the preset block size), the block size corresponding to a single primitive is allowed to exceed the preset block size. It should also be noted that steps S21 to S24 are executed selectively based on the response conditions, and there is no specific order of execution.

[0050] Unlike existing technologies that use simple geometric segmentation or fixed-size block division, which lack consideration for material properties and spatial distribution, resulting in low rendering efficiency, the intelligent block division and 3D tile conversion method for BIM models provided in this application fully considers the two key factors of material quantity and spatial distribution density. It intelligently selects a block division strategy based on model size, material quantity, and spatial distribution density, enabling more accurate segmentation of model data. This ensures that each tile file is of appropriate size and maintains material integrity, effectively avoiding the waste of rendering resources caused by neglecting material properties and spatial distribution, thereby significantly improving rendering efficiency and providing more efficient technical support for the display and application of 3D models.

[0051] S30: Merge primitives with the same material within each block and calculate the boundary volume of each block.

[0052] In this application, primitives with the same material within each block are merged, and the boundary volume of each block is calculated. This includes: concatenating the vertex data of primitives with the same material within each block, remapping the index of each vertex data, and unifying the material references of the primitives to achieve merging; for each block, traversing the vertices to calculate the minimum and maximum coordinates of the bounding box of the block, and calculating the center point and radius of the bounding sphere of the block based on the bounding sphere algorithm to obtain the boundary volume of each block.

[0053] In this application, for primitives within each block, primitives with the same material are merged. The merging process mainly includes vertex data concatenation, index remapping, and material unification. Specifically, vertex data concatenation includes concatenating the vertex data of each primitive, including arrays of vertex position coordinates (positions), vertex normal vectors (normals), and texture mapping coordinates (uvs), etc., sequentially. Index remapping includes calculating the vertex offset for each primitive during the merging process, adding the vertex offset to each value of the primitive's index array, and then concatenating the arrays to achieve index remapping. Material unification includes verifying material unification based on material hashing and using a unified material reference for each primitive to ensure that all primitives use the same material properties. By merging primitives with the same material, multiple draw calls can be reduced to a single call during rendering.

[0054] Unlike existing technologies that lack an effective material merging mechanism, the BIM model intelligent block conversion method for 3D tile transformation provided in this application significantly improves the rendering efficiency of 3D tiles by merging primitives of the same material into a single mesh. This not only reduces the number of drawing calls but also optimizes memory usage and improves rendering performance on the web. In some application experiments, it can reduce the number of rendering calls by more than 95%.

[0055] During the merging process, the boundary volume information of each block is calculated, that is, the bounding box and bounding sphere of each block are calculated. For each block, by traversing all vertices of the block, the minimum coordinates min and maximum coordinates max of the block on the X, Y and Z axes in the current spatial coordinate system are obtained, so as to obtain the bounding box min=(x_min,y_min,z_min) and max=(x_max,y_max,z_max).

[0056] In this application, the center point and radius of the bounding sphere of the block are calculated based on the bounding sphere algorithm, including: determining the initial diameter starting from the center point of the bounding box, traversing all vertices of the block to expand the initial bounding sphere corresponding to the initial diameter to obtain the bounding sphere, and determining the center point and radius of the bounding sphere.

[0057] The original Ritter algorithm is a linear-time approximation algorithm for calculating the minimum bounding sphere of a point set. Its core steps are: randomly select two points to initialize a circle (the diameter of which is the distance between the two points); traverse the remaining points, and if a point is outside the circle, reconstruct the circle with the new diameter of that point and the farthest point on the circle; repeat until all points are contained to obtain the bounding sphere.

[0058] In this application, an improved Ritter algorithm can be used to calculate the bounding sphere. For each block, the farthest point is found as the initial diameter, starting from the center point of the bounding box of the block. The initial bounding sphere corresponding to the initial diameter is expanded by traversing all vertices of the block until all vertices are contained within the sphere, thus obtaining the bounding sphere. The center point and radius of the bounding sphere are then determined.

[0059] By adopting the improved Ritter algorithm, a more efficient and accurate calculation of the bounding sphere is achieved, effectively avoiding the local optimum problem that may occur in the original algorithm and improving computational efficiency.

[0060] By calculating the boundary volume, the necessary data foundation is provided for subsequent spatial indexing, greatly optimizing the processing efficiency of 3D tiles. In the subsequent view frustum culling stage, the rendering engine can quickly and accurately determine whether a tile is within the current view range based on the bounding sphere, thus avoiding invalid loading of invisible tiles and significantly improving rendering efficiency. In the subsequent LOD calculation, the geometric error is set to twice the radius of the bounding sphere, which ensures a smooth transition of the model at different levels of detail while effectively controlling the complexity of the model. In the subsequent spatial query process, the bounding box can quickly cull tiles that do not intersect with the query region, further improving query efficiency.

[0061] S40: Based on the boundary volume, generate multiple levels of detail for each block.

[0062] In this application, multiple levels of detail are generated for each block based on the boundary volume, including: for each block, determining the geometric error corresponding to each level of detail based on the boundary volume, and generating multiple levels of detail based on the geometric error and the folding simplification algorithm.

[0063] In this application, for each block, mesh simplification is performed to generate a level of detail, which can be understood as generating versions of the original model for each block with different levels of precision. Specifically, this can be achieved using geometric error-driven folding simplification algorithms, such as Quadratic Error Metric (QEM) or edge folding algorithms, so that the number of faces per block decreases by 50%. For example, the original model has 100,000 faces → 50,000 faces → 25,000 faces → 12,500 faces, with lower precision corresponding to fewer faces.

[0064] Geometric error values ​​for different LOD levels are generated by interpolating between the maximum and minimum geometric errors using a decreasing coefficient. Specifically, the decreasing coefficient q represents that the geometric error of each layer is 100% of that of the layer above. q is typically 0.1, meaning that the geometric error of each layer is 10% of that of the layer above. The formula for the geometric error of each level is: geometricError_level_n = geometricError_root × (0.1)^n, where geometricError_level_n is the geometric error of the nth layer, and geometricError_root is the geometric error of the root node, which is twice the radius of the bounding sphere. For example, the geometric error of the root node is 100m → LOD1 is 10m → LOD2 is 1m → LOD3 is 0.1m. The smaller the geometric error, the higher the accuracy.

[0065] During subsequent rendering, the rendering engine automatically selects the display layer based on a comparison between the camera distance and the geometric error. The rendering engine's decision logic is as follows: if the camera distance > geometric error, the current layer is displayed; if the camera distance ≤ geometric error, a higher-precision sublayer is loaded and displayed. The camera distance is calculated in real-time by the rendering engine and is the distance from the camera position to the center of the bounding sphere of the block.

[0066] Through the aforementioned adaptive LOD generation, users can automatically switch LODs when zooming, displaying a simplified model at a distance and full details at a close distance, achieving a smooth zooming and roaming experience, significantly improving rendering efficiency, reducing unnecessary computational resource consumption, and ensuring the rationality and accuracy of model display at different viewing distances.

[0067] S50: Convert the merged primitives into individual tile files and generate a tree-like dataset containing a level of detail.

[0068] 3DTiles is an open standard 3D tile format optimized for Web 3D rendering. It supports the streaming and rendering of large-scale 3D data. A 3DTiles dataset contains at least a GLB file for each tile and a tileset.json file that describes the dataset.

[0069] In this application, the merged primitive blocks are encoded according to the glTF 2.0 standard, the data is encoded into binary buffers, accessor indices are created, materials and textures are associated, and the data is packaged into GLB format files. Existing libraries (such as obj2gltf and gltf-transform) can be used for the conversion. The merged primitive blocks contain the merged primitives (vertices, indices, normals, and texture mapping coordinates), material information, texture images, and bounding sphere and bounding box data.

[0070] During the implementation of the level of detail in step S40 above, a tile will generate multiple corresponding GLB files. For example, for tile 0, GLB files such as Tile-0-LOD0.glb, Tile-0-LOD1.glb, and Tile-0-LOD2.glb will be generated. Each GLB file corresponds to a different level of precision, such as LOD0, LOD1, and LOD2. These GLB files will be stored in a tree dataset to generate a tree dataset containing the level of detail.

[0071] Additionally, a tileset.json file needs to be created to describe the tree structure of the entire dataset. This can be understood as the tileset.json file organizing these GLB files using a tree structure. The root node contains an array of children, and each node contains the [center X, center Y, center Z, radius] of the bounding sphere and bounding box, the geometric error, and the tile file path (content.uri).

[0072] Furthermore, during the tile-sharing phase, when dividing the tiles spatially, the constructed octree structure is directly mapped to the children hierarchy of tileset.json. Child nodes contain tile file paths pointing to GLB files, while intermediate nodes only contain children arrays.

[0073] For example, the tree structure of a 3DTiles format dataset is as follows: 3dtiles / ├── tileset.json ├── Tile-0-LOD0.glb ← Block 0, low precision ├── Tile-0-LOD1.glb ← Block 0, medium precision ├── Tile-0-LOD2.glb ← Block 0, high precision ├── Tile-0-LOD3.glb ← Block 0, highest precision ├── Tile-1-LOD0.glb ← Block 1, low precision ├── Tile-1-LOD1.glb……├── Tile-1-LOD2.glb├── Tile-1-LOD3.glb├── ...├── Tile-9-LOD0.glb├── Tile-9-LOD1.glb├── Tile-9-LOD2.glb└── The Tile-9-LOD3.glb dataset contains a total of 10 blocks, divided into 4 LOD levels, meaning each block corresponds to 4 GLB files, for a total of 40 GLB files.

[0074] Unlike existing technologies that lack efficient indexing mechanisms, the intelligent block-based conversion method for BIM models to 3D tiles provided in this application supports frustum culling, LOD selection, and spatial querying through octree indexing and boundary volume calculation, significantly improving rendering performance. The rendering engine can dynamically load the required tile data based on camera distance, achieving efficient streaming transmission. Simultaneously, it utilizes bounding box and bounding sphere information for frustum culling, avoiding the rendering of invisible tiles, thus significantly improving rendering performance. Furthermore, based on geometric errors and camera distance, the rendering engine can automatically select an appropriate LOD level of precision, ensuring optimal visual effects and performance balance across different viewing angles.

[0075] In this application, the BIM model is intelligently divided into blocks and converted into a 3D tile format, which has good compatibility, supports various Web 3D rendering engines, and avoids memory overflow problems through a streaming loading mechanism.

[0076] In one embodiment, referring to Figure 2, which is a flowchart illustrating the automatic block conversion process of an embodiment of the intelligent block conversion method for BIM models to 3D tiles provided in this application, the following steps are taken: First, the BIM model data to be converted is input, supporting multiple formats such as OBJ, GLTF, GLB, and FBX. Second, the model data is parsed, including extracting geometric data, material information, and texture file paths to establish a complete and unified model data structure. Then, based on the model feature parameters (model size, number of materials, and spatial distribution density), a block-splitting strategy is intelligently selected, including block-splitting by file size, grouping by material, segmenting by spatial distribution, and a hybrid strategy, resulting in multiple blocks of the model data. Next, for each block, primitives of the same material are merged, boundary volume is calculated, and LOD hierarchy is generated, so that multiple GLB files are generated for one block. Finally, the GLB files corresponding to each block are combined into a dataset, and the tree structure of the entire dataset is described by the created tileset.json file, outputting a standard 3DTiles file.

[0077] This application provides a device for intelligently converting BIM models into 3D tiles. Referring to Figure 3, Figure 3 is a structural schematic diagram of an embodiment of the device provided in this application. The device includes: a model extraction module 10, used to extract model data from the BIM model and determine model feature parameters; a model segmentation module 20, used to intelligently select a segmentation strategy based on the model feature parameters and segment the model data into multiple blocks; a material merging module 30, used to merge primitives with the same material in each block and calculate the boundary volume of each block; a hierarchy generation module 40, used to generate multiple detail levels for each block based on the boundary volume; and a tile generation module 50, used to convert the merged primitives into tile files and generate a tree-shaped dataset containing the detail levels.

[0078] The process of intelligently dividing and converting the BIM model into three-dimensional tiles through the interaction of the above-mentioned model extraction module 10, model segmentation module 20, material merging module 30, layer generation module 40 and tile generation module 50 can be referred to the specific description of steps S10 to S50 above. The repeated parts will not be repeated here.

[0079] Referring to Figure 4, Figure 4 is a schematic diagram of the structure of an embodiment of the storage medium provided in this application.

[0080] The storage medium 400 stores program data 410, which, when executed by the processor, implements the steps of the intelligent block-to-three-dimensional tile conversion method of the BIM model as described in Figure 1.

[0081] The program data 410 is stored in a storage medium 400 and includes several instructions for causing a network device (which may be a router, personal computer, server, or other network device) or processor to execute all or part of the steps of the methods described in the various embodiments of this application.

[0082] Optionally, the storage medium 400 can be any medium that can store program data, such as a USB flash drive, portable hard drive, read-only memory (ROM), random access memory (RAM), disk, or optical disc.

[0083] Referring to Figure 5, Figure 5 is a schematic diagram of the structure of an embodiment of the computer device provided in this application.

[0084] The device 500 includes a processor 520 and a memory 510 connected to each other. The memory 510 stores a computer program. When the processor 520 executes the computer program, it implements the steps of the intelligent block conversion of BIM model into three-dimensional tiles as described above.

[0085] Unlike existing technologies, this application discloses a method, apparatus, device, and medium for intelligent block-based conversion of BIM models into 3D tiles. This method extracts model data from the BIM model, determines model feature parameters, and then intelligently selects a block-based strategy to divide the model data into multiple blocks based on these parameters. It incorporates considerations of material and spatial distribution within the model feature parameters, improving rendering efficiency. By merging primitives with the same material within each block, it reduces the number of rendering calls. By generating multiple levels of detail for each block, it achieves smooth scaling and roaming. Through calculating boundary volumes and constructing a tree-like dataset, it provides an efficient tree indexing mechanism, supporting view frustum culling, level-of-detail selection, and spatial querying, significantly reducing unnecessary geometry loading and rendering.

[0086] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to interchangeably. Each embodiment focuses on its differences from other embodiments. In particular, the storage medium embodiments and computer device embodiments are basically similar to the method embodiments, so the descriptions are relatively simple; relevant parts can be referred to the descriptions of the method embodiments.

[0087] This application can be used in a wide range of general-purpose or special-purpose computing system environments or configurations. For example: personal computers, handheld or portable devices, tablet devices, multiprocessor systems, microprocessor-based systems, network PCs, minicomputers, distributed computing environments including any of the above systems or devices, etc.

[0088] In the several embodiments provided in this application, it should be understood that the disclosed methods and devices can be implemented in other ways. For example, the device embodiments described above are merely illustrative; multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed.

[0089] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment, depending on actual needs.

[0090] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0091] The above description is merely an embodiment of this application and does not limit the patent scope of this application. Any equivalent structural or procedural transformations made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of this application.

Claims

1. A method for intelligently converting BIM models into 3D tiles, characterized in that, include: Extract model data from the BIM model and determine the model's characteristic parameters; Based on the model feature parameters, an intelligent segmentation strategy is selected to divide the model data into multiple segments; primitives with the same material within each segment are merged, and the boundary volume of each segment is calculated; based on the boundary volume, multiple detail levels are generated for each segment; the segments after merging primitives are converted into tile files, and a tree dataset containing the detail levels is generated.

2. The intelligent block-based conversion method for BIM model to 3D tiles according to claim 1, characterized in that, The model feature parameters include the number of materials, model size, and spatial distribution density. The intelligent selection of a segmentation strategy based on these model feature parameters to divide the model data into multiple segments includes: treating the model data as a single segment if the model size does not exceed a preset segment size; merging primitives with the same material into a single segment if the number of materials does not exceed a first preset number, thus obtaining multiple segments; segmenting the model data using an octree spatial segmentation algorithm if the number of materials exceeds a second preset number and the spatial distribution density is less than a preset density, thus obtaining multiple segments; and segmenting the model data using a hybrid segmentation strategy if the number of materials is within the range of the first and second preset numbers and the spatial distribution density is not less than a preset density, thus obtaining multiple segments.

3. The intelligent block-based conversion method for BIM model to 3D tiles according to claim 2, characterized in that, The step of dividing the model data into multiple blocks based on a hybrid block partitioning strategy includes: dividing all the primitives in the model data according to their materials to obtain multiple material groups, and calculating the size of each material group; for material groups whose size exceeds the preset block size, partitioning the material groups based on an octree space partitioning algorithm to obtain multiple blocks; and for material groups whose size does not exceed the preset block size, using the material groups as blocks.

4. The intelligent block-based conversion method for BIM model to 3D tiles according to claim 3, characterized in that, The step of segmenting the material group based on the octree spatial partitioning algorithm to obtain multiple blocks includes: dividing the material group into eight equal-volume subspaces based on the center point of the bounding box of the material group; for each primitive, allocating the primitive according to the subspace to which the center point of the bounding box of the primitive belongs; recursively segmenting the subspace based on the octree spatial partitioning algorithm until the size of the subspace does not exceed the preset block size, or the number of primitives in the subspace is greater than a third preset number, or the recursion depth exceeds a preset number of layers, and taking multiple subspaces as multiple blocks.

5. The intelligent block-based conversion method for BIM model to 3D tiles according to claim 1, characterized in that, The step of merging primitives with the same material within each block and calculating the boundary volume of each block includes: concatenating the vertex data of primitives with the same material within each block, performing index remapping on each vertex data, and unifying the material references of the primitives to achieve merging; for each block, traversing the vertices to calculate the minimum and maximum coordinates of the bounding box of the block, and calculating the center point and radius of the bounding sphere of the block based on the bounding sphere algorithm to obtain the boundary volume of each block.

6. The intelligent block-based conversion method for BIM model to 3D tiles according to claim 5, characterized in that, The calculation of the center point and radius of the bounding sphere of the block based on the bounding sphere algorithm includes: determining an initial diameter starting from the center point of the bounding box, traversing all vertices of the block to expand the initial bounding sphere corresponding to the initial diameter to obtain the bounding sphere, and determining the center point and radius of the bounding sphere.

7. The intelligent block-based conversion method for BIM model to 3D tiles according to claim 1, characterized in that, The step of generating multiple levels of detail for each block based on the boundary volume includes: for each block, determining the geometric error corresponding to each level of detail based on the boundary volume, and generating multiple levels of detail based on the geometric error and a folding simplification algorithm.

8. A BIM model intelligent block-based conversion device for three-dimensional tile transformation, characterized in that, include: The model extraction module is used to extract model data from the BIM model and determine the model's characteristic parameters; The model segmentation module is used to intelligently select a segmentation strategy based on the model feature parameters to segment the model data into multiple blocks; the material merging module is used to merge primitives with the same material within each block and calculate the boundary volume of each block; the hierarchy generation module is used to generate multiple detail levels for each block based on the boundary volume; and the tile generation module is used to convert each block after merging primitives into tile files and generate a tree-shaped dataset containing the detail levels.

9. A computer device, comprising a memory, a processor, and a computer program stored in the memory, characterized in that, The processor executes the computer program to implement the steps of the BIM model intelligent block conversion to three-dimensional tile method according to any one of claims 1-7.

10. A storage medium having a computer program stored thereon, characterized in that, When executed by a processor, the computer program implements the steps of the intelligent block-to-three-dimensional tile conversion method for BIM models as described in any one of claims 1-7.