Bridge BIM (Building Information Modeling) visualization method and system
By calculating the folding cost and local optimization degree, the BIM model edges are sorted and simplified, and compressed based on the triangle normal vector, the problem of slow and lagging loading of BIM models on the mobile side is solved, and more efficient model loading and rendering is achieved.
Patent Information
- Application Number
- CN202411916221.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-24
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2044-12-24
AI Technical Summary
The mobile web page loading bridge BIM model is slow and easy to stutter, affecting the user experience.
By calculating the folding cost of each edge and the local optimization degree after folding, the edges are sorted and topological checks and boundary maintenance checks are performed, the BIM model is simplified, and the starting triangle is determined based on the normal vector of the triangle neighborhood and sent to the mobile terminal.
It effectively reduces the complexity of the BIM model, improves the mobile loading speed, avoids browser lag, and improves the user experience.
Smart Images

Figure CN119741413A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of architecture, and in particular to a bridge BIM model visualization method and system. Background Art
[0002] Bridge BIM visualization converts abstract BIM data into intuitive three-dimensional models. Through visualization, design schemes can be reviewed, construction processes can be simulated, and operation and maintenance can be monitored, thereby improving engineering efficiency, reducing costs, and ensuring safety. However, the amount of BIM model data is huge. Although traditional desktop software is powerful, it is difficult to meet the smooth display and interaction of large-scale models. Secondly, with the development of mobile Internet and virtual reality / augmented reality (VR / AR) technology, people have put forward higher requirements for cross-platform and immersive visualization experience, and traditional desktop software is difficult to meet these requirements. Web-based BIM visualization technology uses browsers and Web technologies to realize the display and interaction of BIM models on the Web. It has the advantages of cross-platform and no need to install clients. As a three-dimensional graphics standard for the Web, WebGL provides strong technical support for Web-based BIM visualization. Three.js is a JavaScript 3D library based on WebGL, which simplifies the development difficulty of WebGL and is widely used in Web-based BIM visualization development. However, large-scale models contain a large number of geometries and textures. The traditional Three.js rendering method is prone to cause browser freezes or even crashes, and it takes a long time to load large-scale models, affecting the user experience. How to quickly load bridge BIM models on mobile web pages is of great significance to improving the application of BIM. Summary of the invention
[0003] In view of the problem that the loading speed of a bridge BIM model on a web page on a mobile terminal is slow and prone to freezing, in a first aspect, the present invention provides a bridge BIM model visualization method, the method comprising: Obtain the bridge BIM model, and calculate the folding cost of each edge and the degree of local optimization after folding. Sort the edges according to the folding cost and the degree of local optimization and put them into the priority queue. Take the edges out of the priority queue in order, perform topology check and boundary preservation check. If the check passes, merge the two vertices of the taken edge into a new vertex, and update the folding cost and degree of local optimization after folding of the affected edge; otherwise, skip the taken edge. The simplified BIM model is divided into multiple components, a starting triangle is determined from each component based on the normal vector of the triangle neighborhood in the component, and the component is compressed using the starting triangle and then sent to the mobile terminal; The mobile terminal decompresses and renders the BIM model.
[0004] Optionally, the calculation of the folding cost of each edge and the degree of local optimization after folding is specifically as follows: Determine a threshold based on the computing power of the mobile terminal, and treat edges smaller than the threshold as edges to be folded; The triangle containing any endpoint of the edge to be folded is regarded as the triangle affected by the folding, the geometric center and area of each affected triangle are calculated, and the weight of the affected triangle is determined according to the area; A new vertex is calculated based on the weight and the geometric center, a sum of distances from the new vertex to the affected triangles is calculated, and the sum of the distances is normalized as a folding cost; The average value of the ratio of the longest side to the shortest side of the affected triangles after folding is calculated, and the average value is normalized as the degree of local optimization after folding.
[0005] Optionally, the edges are sorted according to the folding cost and the local optimization degree and placed into a priority queue, specifically: The edges to be folded are sorted in ascending order according to the weighted values of the folding cost and the degree of local optimization after folding, and the sorted edges to be folded are put into the priority queue.
[0006] Optionally, the step of determining a starting triangle from each component based on the normal vector of the triangle neighborhood in the component is specifically as follows: Determine a distance threshold according to the component type and component size. If the distance between the center points of two triangles is less than the threshold, the two triangles are neighboring triangles of each other. Calculate the normal vector of each triangle. For each triangle, find the other triangles in its neighborhood and choose the triangle with the smallest normal vector deviation in the neighborhood as the starting triangle.
[0007] Optionally, the distance threshold is determined according to the component type and the component size, specifically: An adjustment coefficient is predefined for each type of component, the shortest side length of the bounding box of the component is calculated, and the product of the shortest side length and the adjustment coefficient is used as the distance threshold.
[0008] In another aspect, the present invention provides a bridge BIM model visualization system, the system comprising: The simplification module is used to obtain the bridge BIM model and calculate the folding cost of each edge and the degree of local optimization after folding. The edges are sorted according to the folding cost and the degree of local optimization and put into the priority queue. The edges are taken out from the priority queue in order, and topology checks and boundary preservation checks are performed. If the check passes, the two vertices of the taken edge are merged into a new vertex, and the folding cost and the degree of local optimization after folding of the affected edge are updated; otherwise, the taken edge is skipped; A compression module is used to divide the simplified BIM model into multiple components, determine a starting triangle from each component based on the normal vector of the triangle neighborhood in the component, compress the component using the starting triangle, and then send it to the mobile terminal; The rendering module is used to render the BIM model after decompression by the mobile terminal.
[0009] Optionally, the calculation of the folding cost of each edge and the degree of local optimization after folding is specifically as follows: Determine a threshold based on the computing power of the mobile terminal, and treat edges smaller than the threshold as edges to be folded; The triangle containing any endpoint of the edge to be folded is regarded as the triangle affected by the folding, the geometric center and area of each affected triangle are calculated, and the weight of the affected triangle is determined according to the area; A new vertex is calculated based on the weight and the geometric center, a sum of distances from the new vertex to the affected triangles is calculated, and the sum of the distances is normalized as a folding cost; The average value of the ratio of the longest side to the shortest side of the affected triangles after folding is calculated, and the average value is normalized as the degree of local optimization after folding.
[0010] Optionally, the edges are sorted according to the folding cost and the local optimization degree and placed into a priority queue, specifically: The edges to be folded are sorted in ascending order according to the weighted values of the folding cost and the degree of local optimization after folding, and the sorted edges to be folded are put into the priority queue.
[0011] Optionally, the step of determining a starting triangle from each component based on the normal vector of the triangle neighborhood in the component is specifically as follows: Determine a distance threshold according to the component type and component size. If the distance between the center points of two triangles is less than the threshold, the two triangles are neighboring triangles of each other. Calculate the normal vector of each triangle. For each triangle, find the other triangles in its neighborhood and choose the triangle with the smallest normal vector deviation in the neighborhood as the starting triangle.
[0012] Optionally, the distance threshold is determined according to the component type and the component size, specifically: An adjustment coefficient is predefined for each type of component, the shortest side length of the bounding box of the component is calculated, and the product of the shortest side length and the adjustment coefficient is used as the distance threshold.
[0013] To address the problem of slow loading and jamming of BIM models on mobile web pages, the present invention determines the edges to be folded by calculating the folding cost of each edge and the degree of local optimization after folding, and then performs topology check and boundary preservation check, thereby streamlining the bridge BIM model while maintaining the topological structure and boundary features of the model; in addition, by calculating the normal vector deviation of the triangle neighborhood, triangles in areas with smoother surfaces are selected as starting triangles to improve the compression rate, thereby effectively solving the problem of slow loading and jamming of bridge BIM models on mobile web pages. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 This is a schematic diagram of the process of Embodiment 1; Figure 2 This is a comparison of the folded edge before and after; Figure 3 Schematic diagram of triangle normal vector. DETAILED DESCRIPTION
[0015] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0016] Specific embodiment 1, the present invention provides a bridge BIM model visualization method, such as Figure 1 As shown, the method includes: Step 1: Obtain the bridge BIM model, and calculate the folding cost of each edge and the degree of local optimization after folding. According to the folding cost and the degree of local optimization, sort the edges and put them into the priority queue. Take the edges out of the priority queue in order, perform topology check and boundary preservation check. If the check passes, merge the two vertices of the taken edge into a new vertex, and update the folding cost and the degree of local optimization after folding of the affected edge; otherwise, skip the taken edge. A BIM (Building Information Modeling) model is a digital model that contains all the information of a project such as a building or a bridge. The BIM model data of a bridge is imported or read from CAD software, BIM software (such as Revit, Bentley OpenBridge) or other data sources. In a BIM model, an edge connects two vertices and forms a line of the model. Folding an edge is to merge the two vertices of the edge into one vertex, thereby reducing the number of faces and vertices of the model and achieving the purpose of simplification. The folding cost is an indicator to measure the quality of the folding operation. The higher the cost, the greater the model deformation or error caused by folding the edge. For example, if a very long edge is folded, it may cause serious distortion of the model shape. At the same time, after folding an edge, the geometric shape around the edge will change. The degree of local optimization measures the impact of folding on the quality of the model. In one embodiment, the midpoint of the folded edge is used as the new vertex, and the length of the folded edge is used as the folding cost. Specifically, the lengths of all edges are normalized, and the normalized edge lengths are used as the folding cost. The average value of the ratio of the longest side to the shortest side of all newly generated triangles after folding is used as the local optimization degree. Specifically, the average value is normalized, and the normalized average value is used as the local optimization degree.
[0017] In an optional embodiment, the calculation of the folding cost of each edge and the degree of local optimization after folding is specifically as follows: Determine a threshold based on the computing power of the mobile terminal, and treat edges smaller than the threshold as edges to be folded; The triangle containing any endpoint of the edge to be folded is regarded as the triangle affected by the folding, the geometric center and area of each affected triangle are calculated, and the weight of the affected triangle is determined according to the area; A new vertex is calculated based on the weight and the geometric center, a sum of distances from the new vertex to the affected triangles is calculated, and the sum of the distances is normalized as a folding cost; The average value of the ratio of the longest side to the shortest side of the affected triangles after folding is calculated, and the average value is normalized as the degree of local optimization after folding.
[0018] The computing power of mobile devices is usually relatively weak. The weaker the performance, the larger the threshold, and more edges will be folded, thereby reducing the complexity of the BIM model received by the mobile terminal. In one embodiment, the mobile devices are classified according to their CPU models, specifically, they are divided into low-end devices, mid-end devices, and high-end devices. The coefficients corresponding to low-end devices, mid-end devices, and high-end devices are w1, w2, and w3, respectively, where 1>w1>w2>w3>0, and the product of the coefficient and the average value of the edges in the BIM model is used as the threshold. If the length of an edge is less than the threshold, the edge is used as the edge to be folded.
[0019] Folding an edge will affect the triangles adjacent to the edge. More specifically, all triangles containing any endpoint of the edge to be folded are triangles affected by the folding. For example, if the two endpoints of the edge to be folded are p1 and p2 respectively, as long as the vertex of the triangle in the BIM model is p1 or p2, it is an affected triangle. Figure 2 The triangles 1-5 in the left pattern are the affected triangles before folding. For each affected triangle, its geometric center and area are calculated. The larger the area of the triangle, the more important it may be in the model. A weight is assigned to each affected triangle according to the area size. The triangle with a larger area has a larger weight. The new vertex is the result after folding the edge, replacing the two vertices of the original edge to be folded. The new vertex is calculated by weighted average based on the weight and geometric center of the affected triangle, so that the new vertex is closer to the important triangle, thereby better maintaining the shape of the model. After the new vertex is calculated, before folding, the distance from the new vertex to each affected triangle is calculated. The distance refers to the perpendicular distance from the point to the triangle plane. All these distances are added up to get a total distance value. In order to make the folding cost comparable, the total distance is further normalized. The sum of the normalized distances is the final folding cost. The higher the cost, the greater the model deformation or error caused by folding this edge. After folding an edge, the shape of the affected triangle will change. The ratio of the longest side to the shortest side is used as a criterion. The closer the ratio is to 1, the closer the triangle is to an equilateral triangle and the better the shape is. The larger the ratio is, the narrower the triangle is and the worse the shape is. Similarly, in order to make the local optimization degree comparable, the local optimization degree is normalized and scaled to the range of [0, 1]. The normalized average ratio is used as the final local optimization degree after folding. The higher the optimization degree, that is, the closer the normalized value is to 0, the better the quality of the local geometric shape after folding.
[0020] The lower the cost and the higher the degree of optimization, the higher the priority and the earlier it is processed. In an optional embodiment, the edges are sorted according to the folding cost and the degree of local optimization and put into the priority queue, specifically: The edges to be folded are sorted in ascending order according to the weighted values of the folding cost and the degree of local optimization after folding, and the sorted edges to be folded are put into the priority queue.
[0021] The cost is multiplied by a weight, plus the degree of optimization is multiplied by another weight. The folding cost and the degree of local optimization are combined into a single priority value, and then all edges are sorted according to this priority value and placed in a priority queue.
[0022] Before the actual folding operation is performed, some checks are performed to ensure that the folding operation will not destroy the validity of the model. The first is the topology check. Topology is the study of the properties of geometric figures that remain unchanged under continuous deformation. The topology check ensures that the folding operation will not destroy the topological structure of the model, for example, it will not produce non-manifold geometry, that is, a point belongs to multiple unconnected faces at the same time, resulting in holes or connection errors in the model. The second is the boundary preservation check. Bridge models usually have clear boundaries such as the edges of the bridge deck and piers. The boundary preservation check ensures that the folding operation will not affect the integrity and correctness of these boundaries, for example, it will not cause the loss or deformation of boundary segments. If an edge passes the topology check and boundary preservation check, it means that folding this edge will not destroy the validity of the model, and the two vertices of the edge can be merged into a new vertex. The position of the vertex has changed, and the geometric properties of other edges connected to the new vertex have also changed accordingly. Therefore, the folding cost and local optimization degree of the edges connected to the new vertex are further updated so that the priority of these edges can continue to be correctly evaluated in subsequent iterations. If an edge does not pass the topology check or boundary preservation check, and folding the edge will destroy the validity of the model, such as causing holes in the model or boundary deformation, then the edge is skipped and not folded. Then, the algorithm takes the next highest priority edge from the priority queue and repeats the topology check and boundary preservation check until the queue is empty. Figure 2 The effect diagram after folding a folding edge is shown. The triangles affected after folding refer to the triangles that are changed due to folding. Figure 2 Triangles 1-3 of the right side pattern are the triangles affected after folding.
[0023] Step 2: Divide the simplified BIM model into multiple components, determine a starting triangle from each component based on the normal vector of the triangle neighborhood in the component, compress the component using the starting triangle, and then send it to the mobile terminal; In the BIM model, components are the basic units that make up engineering projects such as buildings or bridges, such as beams, columns, plates, walls, etc. The simplified BIM model is divided into multiple components. The division method can be based on the existing component information in the BIM model, or it can be automatically divided according to geometric features such as connection relationships, spatial positions, etc. Each component after division will be processed as an independent compression unit. Calculate the normal vector of each triangle in the component, and determine the neighborhood of each triangle. Calculate the average or weighted average of the normal vectors of all triangles in its neighborhood, and select a triangle with the smallest normal vector change, such as the smallest angle with the average normal vector of other neighborhoods as the starting triangle. The starting triangle selected in this way is usually located in the flat area of the component, which is helpful for subsequent compression coding; in one embodiment, the neighborhood refers to other triangles that share edges with it. The compression algorithm usually starts from the starting triangle and encodes according to certain rules. Preferably, the compression is compressed using the EdgeBreaker encoding method.
[0024] Different components have different sizes of flat areas. For example, most of the bridge deck is a flat area, while for bridge piers, the flat area is smaller. In an optional embodiment, a starting triangle is determined from each component based on the normal vector of the triangle neighborhood in the component, specifically: Determine a distance threshold according to the component type and component size. If the distance between the center points of two triangles is less than the threshold, the two triangles are neighboring triangles of each other. Calculate the normal vector of each triangle. For each triangle, find the other triangles in its neighborhood and choose the triangle with the smallest normal vector deviation in the neighborhood as the starting triangle.
[0025] Different component types and sizes, as well as geometric features and mesh densities may vary greatly. In one embodiment, an adjustment coefficient is predefined for each type of component, the shortest side length of the bounding box of the component is calculated, and the product of the shortest side length and the adjustment coefficient is used as the distance threshold. The bounding box is an AABB bounding box or an OBB bounding box, and the shortest side length of the bounding box is multiplied by the adjustment coefficient to obtain the final distance threshold.
[0026] If the distance between the center points of two triangles is less than the preset distance threshold, the two triangles are considered neighbor triangles, and some triangles that do not share edges but are very close in space are allowed to be considered neighbor triangles, so as to more comprehensively consider local geometric features. For each triangle, the deviation of the normal vectors of all triangles in its neighborhood is calculated. The smaller the deviation, the more consistent the direction of the normal vectors of the triangles in the neighborhood, which means the smoother the surface of the area; the triangle with the smallest normal vector deviation in the neighborhood is selected as the starting triangle, thereby improving the compression rate. Among them, selecting the triangle with the smallest normal vector deviation in the neighborhood as the starting triangle means that for each triangle, the normal vector deviation of the triangles in its neighborhood is calculated, Figure 3 The normal vectors of two triangles are shown. The triangle with the smallest normal vector deviation is used as the starting triangle. The triangles in the neighborhood include the triangle itself. For example, if triangle A has three neighborhood triangles BD, the deviations of the normal vectors of the four triangles AD are calculated. In one embodiment, the deviation is calculated by the angle between the normal vectors.
[0027] Step 3: The mobile terminal decompresses and renders the BIM model.
[0028] After receiving the compressed BIM model data, the mobile terminal performs a decompression operation to restore the compressed data to the original BIM model data. The decompression process uses the decompression algorithm corresponding to the compression. If the edgebreaker algorithm is used for compression, the corresponding decompression algorithm of edgebreaker is used for decompression. The decompressed model data will be sent to the rendering pipeline for processing, and finally the bridge BIM model will be displayed on the mobile terminal.
[0029] Specific embodiment 2, the present invention provides a bridge BIM model visualization system, the system comprising: The simplification module is used to obtain the bridge BIM model and calculate the folding cost of each edge and the degree of local optimization after folding. The edges are sorted according to the folding cost and the degree of local optimization and put into the priority queue. The edges are taken out from the priority queue in order, and topology checks and boundary preservation checks are performed. If the check passes, the two vertices of the taken edge are merged into a new vertex, and the folding cost and the degree of local optimization after folding of the affected edge are updated; otherwise, the taken edge is skipped; A compression module is used to divide the simplified BIM model into multiple components, determine a starting triangle from each component based on the normal vector of the triangle neighborhood in the component, compress the component using the starting triangle, and then send it to the mobile terminal; The rendering module is used to render the BIM model after decompression by the mobile terminal.
[0030] Optionally, the calculation of the folding cost of each edge and the degree of local optimization after folding is specifically as follows: Determine a threshold based on the computing power of the mobile terminal, and treat edges smaller than the threshold as edges to be folded; The triangle containing any endpoint of the edge to be folded is regarded as the triangle affected by the folding, the geometric center and area of each affected triangle are calculated, and the weight of the affected triangle is determined according to the area; A new vertex is calculated based on the weight and the geometric center, a sum of distances from the new vertex to the affected triangles is calculated, and the sum of the distances is normalized as a folding cost; The average value of the ratio of the longest side to the shortest side of the affected triangles after folding is calculated, and the average value is normalized as the degree of local optimization after folding.
[0031] Optionally, the edges are sorted according to the folding cost and the local optimization degree and placed into a priority queue, specifically: The edges to be folded are sorted in ascending order according to the weighted values of the folding cost and the degree of local optimization after folding, and the sorted edges to be folded are put into the priority queue.
[0032] Optionally, the step of determining a starting triangle from each component based on the normal vector of the triangle neighborhood in the component is specifically as follows: Determine a distance threshold according to the component type and component size. If the distance between the center points of two triangles is less than the threshold, the two triangles are neighboring triangles of each other. Calculate the normal vector of each triangle. For each triangle, find the other triangles in its neighborhood and choose the triangle with the smallest normal vector deviation in the neighborhood as the starting triangle.
[0033] Optionally, the distance threshold is determined according to the component type and the component size, specifically: An adjustment coefficient is predefined for each type of component, the shortest side length of the bounding box of the component is calculated, and the product of the shortest side length and the adjustment coefficient is used as the distance threshold.
[0034] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a digital versatile disc (DVD)), or a semiconductor medium (eg, a solid state disk (SSD)).
Claims
1. A bridge BIM model visualization method, characterized in that: The method comprises: Obtain the bridge BIM model, and calculate the folding cost of each edge and the degree of local optimization after folding. Sort the edges according to the folding cost and the degree of local optimization and put them into the priority queue. Take the edges out of the priority queue in order, perform topology check and boundary preservation check. If the check passes, merge the two vertices of the taken edge into a new vertex, and update the folding cost and degree of local optimization after folding of the affected edge; otherwise, skip the taken edge. The simplified BIM model is divided into multiple components, a starting triangle is determined from each component based on the normal vector of the triangle neighborhood in the component, and the component is compressed using the starting triangle and then sent to the mobile terminal; The mobile terminal decompresses and renders the BIM model.
2. The method according to claim 1, characterized in that The calculation of the folding cost of each edge and the degree of local optimization after folding is specifically as follows: Determine a threshold based on the computing power of the mobile terminal, and treat edges smaller than the threshold as edges to be folded; The triangle containing any endpoint of the edge to be folded is regarded as the triangle affected by the folding, the geometric center and area of each affected triangle are calculated, and the weight of the affected triangle is determined according to the area; A new vertex is calculated based on the weight and the geometric center, a sum of distances from the new vertex to the affected triangles is calculated, and the sum of the distances is normalized as a folding cost; The average value of the ratio of the longest side to the shortest side of the affected triangles after folding is calculated, and the average value is normalized as the degree of local optimization after folding.
3. The method according to claim 1, characterized in that The edges are sorted according to the folding cost and the degree of local optimization and put into the priority queue, specifically: The edges to be folded are sorted in ascending order according to the weighted values of the folding cost and the degree of local optimization after folding, and the sorted edges to be folded are put into the priority queue.
4. The method according to claim 1, characterized in that The method of determining a starting triangle from each component based on the normal vector of the triangle neighborhood in the component is specifically as follows: Determine a distance threshold according to the component type and component size. If the distance between the center points of two triangles is less than the threshold, the two triangles are neighboring triangles of each other. Calculate the normal vector of each triangle. For each triangle, find the other triangles in its neighborhood and choose the triangle with the smallest normal vector deviation in the neighborhood as the starting triangle.
5. The method according to claim 4, characterized in that The distance threshold is determined according to the component type and component size, specifically: An adjustment coefficient is predefined for each type of component, the shortest side length of the bounding box of the component is calculated, and the product of the shortest side length and the adjustment coefficient is used as the distance threshold.
6. A bridge BIM model visualization system, characterized in that: The system comprises: The simplification module is used to obtain the bridge BIM model and calculate the folding cost of each edge and the degree of local optimization after folding. The edges are sorted according to the folding cost and the degree of local optimization and put into the priority queue. The edges are taken out from the priority queue in order, and topology check and boundary preservation check are performed. If the check passes, the two vertices of the taken edge are merged into a new vertex, and the folding cost and the degree of local optimization after folding of the affected edge are updated; otherwise, the taken edge is skipped; A compression module is used to divide the simplified BIM model into multiple components, determine a starting triangle from each component based on the normal vector of the triangle neighborhood in the component, compress the component using the starting triangle, and then send it to the mobile terminal; The rendering module is used to render the BIM model after decompression by the mobile terminal.
7. The system according to claim 6, characterized in that The calculation of the folding cost of each edge and the degree of local optimization after folding is specifically as follows: Determine a threshold based on the computing power of the mobile terminal, and treat edges smaller than the threshold as edges to be folded; The triangle containing any endpoint of the edge to be folded is regarded as the triangle affected by the folding, the geometric center and area of each affected triangle are calculated, and the weight of the affected triangle is determined according to the area; A new vertex is calculated based on the weight and the geometric center, a sum of distances from the new vertex to the affected triangles is calculated, and the sum of the distances is normalized as a folding cost; The average value of the ratio of the longest side to the shortest side of the affected triangles after folding is calculated, and the average value is normalized as the degree of local optimization after folding.
8. The system according to claim 6, characterized in that The edges are sorted according to the folding cost and the degree of local optimization and put into the priority queue, specifically: The edges to be folded are sorted in ascending order according to the weighted values of the folding cost and the degree of local optimization after folding, and the sorted edges to be folded are put into the priority queue.
9. The system according to claim 6, characterized in that The method of determining a starting triangle from each component based on the normal vector of the triangle neighborhood in the component is specifically as follows: Determine a distance threshold according to the component type and component size. If the distance between the center points of two triangles is less than the threshold, the two triangles are neighboring triangles of each other. Calculate the normal vector of each triangle. For each triangle, find the other triangles in its neighborhood and choose the triangle with the smallest normal vector deviation in the neighborhood as the starting triangle.
10. The system according to claim 9, characterized in that The distance threshold is determined according to the component type and component size, specifically: An adjustment coefficient is predefined for each type of component, the shortest side length of the bounding box of the component is calculated, and the product of the shortest side length and the adjustment coefficient is used as the distance threshold.
Citation Information
Patent Citations
Bridge construction management visualization method and device based on lightweight BIM
CN110516303A
Feature constraint-based triangular mesh optimization method
CN113689566A
Live-action three-dimensional model simplification and optimization method and device based on edge folding
CN117893708A
Mesh optimization for computer graphics
US20210225075A1