BIM lightweight method based on fine-grained geometric objectification

By simplifying BIM model data through a fine-grained geometric objectification process, the problem of high rendering resource consumption on the browser side is solved, achieving efficient model lightweighting and improved rendering efficiency.

WO2026000752A1PCT designated stage Publication Date: 2026-01-02CCTEG CHONGQING ENG CO LTD +1

Patent Information

Application Number
PCT/CN2024/129235
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-24
Filing Date
2024-11-01
Publication Date
2026-01-02

AI Technical Summary

Technical Problem

Existing lightweight BIM models suffer from problems such as high resource consumption, low operating efficiency, and poor model quality, making it difficult to render efficiently on browsers or mobile phones.

Method used

It adopts a fine-grained geometry objectification method, which simplifies model data by using a lightweight process of fine-grained Face and Mesh objects, combined with reconstruction and point removal methods, and supports LOD technology at different precision levels.

Benefits of technology

It achieves efficient and lightweight model data, reduces front-end rendering resource consumption, improves rendering efficiency, and is suitable for viewing BIM models in a browser.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024129235_02012026_PF_FP_ABST
    Figure CN2024129235_02012026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention relates to the technical field of building information modeling (BIM). Disclosed is a BIM lightweight method based on fine-grained geometric objectification, the method comprising the following steps: S1, creating a mapping table T to store data of Face objects and Mesh objects in a model; S2, calling an IExportContext interface in a Revit SDK to extract data of components in the model; S3, checking whether the processing of the components in the model is currently completed; S4, if the processing is completed, ending the process; and if the processing is not completed, acquiring the value of a current flag; S5, if flag=1, calling a Face object lightweight processing process and returning to S2; and S6, if flag=0, calling a Mesh object lightweight processing process and returning to S2. The present invention can effectively simplify model data and realize model lightweighting; moreover, obtained data supports LOD technology, which can greatly reduce resource consumption during front-end rendering and improve rendering efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

A BIM model lightweight method based on fine-grained geometric objectization TECHNICAL FIELD

[0001] The present application relates to the technical field of building information modeling, and particularly relates to a BIM model lightweight method based on fine-grained geometric objectization. BACKGROUND

[0002] Revit is a software designed for building information modeling (BIM) and plays an important role in the design, construction and operation stages. In recent years, with the vigorous development of BIM technology, the demand for collaborative design, construction management and operation management using BIM models has increased in various industries. How to realize lightweight of the model while ensuring the accuracy of the model so as to facilitate viewing on browsers or mobile phones has become an important direction of BIM technology development. Under this background, BIM lightweight technology based on Revit has emerged and been widely applied and developed.

[0003] At present, the lightweight schemes for BIM models include parameterized description, face reduction optimization, geometric object instantiation and data compression. However, these methods have certain defects. The parameterized description reduces the file size after lightweight, but a large amount of resources is needed to recalculate the geometric data of the model on the browser side; the face reduction optimization algorithm needs to consume a large amount of time during execution, and the running efficiency is low; the geometric object instantiation can reduce the file size after lightweight, but there are often differences in the selection of object granularity among various manufacturers, and the effects after instantiation are uneven, resulting in poor quality of the lightweight model; data compression can further process the lightweight file to improve the transmission efficiency in the network, but it has no effect on BIM lightweight itself.

[0004] In summary, there is an urgent need for a more reliable and efficient lightweight method.

[0005] SUMMARY

[0006] The present application aims to provide a BIM model lightweight method based on fine-grained geometric objectization, which can effectively simplify model data and realize lightweight of the model; and the obtained data supports LOD technology, which can greatly reduce resource consumption and improve rendering efficiency during front-end rendering.

[0007] The basic scheme provided by the present application is a BIM model lightweight method based on fine-grained geometric objectization, which comprises the following steps:

[0008] S1, a mapping table T is newly created to save the data of Face objects and Mesh objects in the model;

[0009] S2, call IExportContext interface in Revit SDK to extract data of the component in the model;

[0010] S3, check whether the component in the current model is processed or not;

[0011] S4, if processed, end the process; if not processed, get the value of the current flag;

[0012] S5, if flag = 1, call the Face object lightweight processing process and return to S2;

[0013] S6, if flag = 0, call the Mesh object lightweight processing process and return to S2.

[0014] Further, the Face object lightweight processing process comprises the following steps:

[0015] S51, calculate the feature vector σ of the current Face object according to the geometric data provided by the OnPolymesh method;

[0016] S52, query whether the feature vector σ is contained in the mapping table T;

[0017] S53, if contained, skip the subsequent processing and directly end the process;

[0018] S54, if not contained, judge whether reconstruction is supported;

[0019] S55, if reconstruction is not supported, store the geometric data provided by the OnPolymesh method in the mapping table T;

[0020] S56, if reconstruction is supported, calculate the geometric data using the reconstruction method and store the data in the mapping table T.

[0021] Further, the Mesh object lightweight processing process comprises the following steps:

[0022] S61, calculate the feature vector σ of the current Mesh object according to the geometric data provided by the OnPolymesh method;

[0023] S62, query whether the feature vector σ is contained in the mapping table T;

[0024] S63, if contained, skip the subsequent processing and directly end the process;

[0025] S64, if not contained, store the geometric data provided by the OnPolymesh method in the mapping table T.

[0026] Further, in S54, when judging whether to support reconstruction, the judgment is made based on the following conditions:

[0027] Condition 1: whether the curved surface has only one contour line;

[0028] Condition 2: the curved surface is composed of four edges, two opposite edges are straight edges, and the remaining two opposite edges are curved edges or edges composed of multiple types of lines;

[0029] The curved surface refers to the surface described by the feature vector σ. If the curved surface meets both Condition 1 and Condition 2, it is determined to support reconstruction; otherwise, it is determined not to support reconstruction.

[0030] Further, in S56, the reconstruction method includes the following steps:

[0031] S561: creating a vertex array, a triangular mesh vertex index array, a UV array, and a normal vector array;

[0032] S562: extracting points on the two opposite curved edges in order as vertices and storing the points in the vertex array;

[0033] S563: calculating the UV coordinates of the extracted vertices in the curved surface and storing them in the UV array;

[0034] S564: calculating the normal vector coordinates of the vertices and storing them in the normal vector array;

[0035] S565: connecting the vertices on the curved edge in order to form a multi-edge polyline similar to the curved edge;

[0036] S566: connecting the vertices on the two polylines to form a polygon and forming a triangular mesh similar to the curved surface; storing the vertex index of the triangular mesh in the triangular mesh vertex index array; the curved surface refers to the surface described by the feature vector σ, and the curved edge is the edge of the surface.

[0037] Further, in S562, the extraction in order is according to the left-hand rule.

[0038] Further, in S563, the UV coordinates of the extracted vertices in the curved surface are calculated using the TessellateOnFace method provided by Revit API.

[0039] Further, in S564, the normal vector coordinates of the vertices are calculated using the ComputeNormal method provided by Revit API.

[0040] Further, the Face object lightweight processing flow further includes S57, which uses the point removal method to reduce the sampled vertices on the curved edge, and then uses the reconstruction method to generate triangular meshes similar to the curved surface with different accuracies.

[0041] Further, the S57 comprises the following sub-steps:

[0042] S571, predefine an angle ε as a threshold value, calculate the cosine value ω of ε; extract the vertex data of a curved edge in the curved surface, assume the vertex set P={p0, p1, p2, p3, p4, p5,...}; and set i=0, a=P[i];

[0043] S572, set j=i+2, b=P[j];

[0044] S573, connect the vertex a and b to form a new edge l, and the edge between b and the adjacent point P[j+1] is marked as m;

[0045] S574, use the dot product formula l·m=|l|*|m|*cos(θ) to calculate the cosine value of the included angle θ between the edges l and m

[0046] S575, when is less than ω, mark the vertex pointed by b as removed, set b as the next vertex, i.e. j=j+1, b=P[j], and continue to execute S573;

[0047] S576, when is greater than ω, set a as b, i.e. i=j, a=P[i], and continue to execute S572;

[0048] S577, when b points to the last vertex of the curved edge, store the remaining vertices on the curved edge into a vertex array;

[0049] S578, use the same method to process another curved edge of the curved surface;

[0050] S579, refer to the steps of the reconstruction method to recalculate the vertex index array, UV array and normal vector array of the triangular mesh.

[0051] The working principle and advantages of the present application are that:

[0052] The application discloses a BIM model lightweight method based on fine-grained geometric objectization.

[0053] In addition, the application also considers the application scene of the lightweight data in the front end (the browser end), and specially sets a point removal method on the basis of the reconstruction method, so that the geometric data can be further simplified to support geometric models with different precisions, so that the application demand of the LOD technology in the rendering process of the BIM model in the browser end can be met, and the resource consumption in the front end rendering can be greatly reduced and the rendering efficiency can be improved. BRIEF DESCRIPTION OF DRAWINGS

[0054] Fig. 1 is a method flow diagram of the BIM model lightweight method based on fine-grained geometric objectization according to the application;

[0055] Fig. 2 is a Revit model component geometric structure diagram of the BIM model lightweight method based on fine-grained geometric objectization according to the application;

[0056] Fig. 3 is a face object lightweight processing flow diagram of the BIM model lightweight method based on fine-grained geometric objectization according to the application;

[0057] Fig. 4 is a mesh object lightweight processing flow diagram of the BIM model lightweight method based on fine-grained geometric objectization according to the application;

[0058] Fig. 5 is a surface reconstruction process diagram of the BIM model lightweight method based on fine-grained geometric objectization according to the application (in the case that the vertex numbers on the two broken lines are equal);

[0059] Fig. 6 is a surface reconstruction process diagram of the BIM model lightweight method based on fine-grained geometric objectization according to the application (in the case that the vertex numbers on the two broken lines are not equal);

[0060] Fig. 7 is a geometric structure diagram of a tree model of the BIM model lightweight method based on fine-grained geometric objectization according to the application;

[0061] FIG. 8 is a schematic diagram of a point removal process in an embodiment two of a BIM model lightweight method based on fine-grained geometric objectification according to the present application;

[0062] FIG. 9 is a schematic diagram of a mesh constructed based on surface raw data in an embodiment two of a BIM model lightweight method based on fine-grained geometric objectification according to the present application;

[0063] FIG. 10 is a schematic diagram of a mesh constructed using surface reconstruction in an embodiment two of a BIM model lightweight method based on fine-grained geometric objectification according to the present application;

[0064] FIG. 11 is a schematic diagram of a mesh of medium precision constructed using point removal in an embodiment two of a BIM model lightweight method based on fine-grained geometric objectification according to the present application;

[0065] FIG. 12 is a schematic diagram of a coarse mesh constructed using point removal in an embodiment two of a BIM model lightweight method based on fine-grained geometric objectification according to the present application. DETAILED DESCRIPTION

[0066] The following is further described in detail through specific embodiments:

[0067] Embodiment one

[0068] The embodiment is basically as shown in FIG. 1: a BIM model lightweight method based on fine-grained geometric objectification, comprising the following steps:

[0069] S1, a mapping table T is newly created to save data of Face objects and Mesh objects in the model.

[0070] The model refers to a BIM model based on Revit software, i.e., a Revit model; and the present method is mainly for running of the Revit software. Specifically, the Face objects and Mesh objects exist as basic primitives in the Revit model. As shown in FIG. 2, the geometric structure of a model component in the Revit software is in a tree structure, the tree root is a Geometry Element object, which contains a plurality of Solid, Geometry Instance, Mesh objects as a set, and the Geometry Instance object is also a set, which also contains a plurality of Solid, Geometry Instance, Mesh objects, and the Solid object contains a plurality of Face objects. That is, the Revit model contains two types of Mesh and Face describing surfaces, and the Face contains regular surface types such as Planar Face, Conical Face, Cylindrical Face, etc.

[0071] The present scheme selects data processing for Face objects and Mesh objects, which is more precise in object granularity and can fully process model objects.

[0072] S2, call the IExportContext interface in Revit SDK to extract data of the components in the model.

[0073] Revit SDK refers to Autodesk Revit Software Development Kit, which is a software development framework that allows developers to extend and customize the functionality of Revit, create plug-ins or custom applications to meet specific design, construction or project management needs. Revit SDK provides API (Application Programming Interface), a set of predefined interfaces and classes, which allows developers to access the core functions of Revit, such as model data, command execution, user interface operation, etc. The IExportContext interface is used to export (extract) model data.

[0074] S3, check whether the components in the current model have been processed. Specifically, when the IExportContext interface calls the Finish method, it indicates that all components in the current scene have been processed.

[0075] S4, if the processing is complete, end the process; if not, get the value of the current flag flag.

[0076] Specifically, in the present embodiment, a flag switch flag is provided, and its initial value is 0. When the IExportContext interface calls the OnFaceBegin method, the value of flag is set to 1, and when the OnFaceEnd method is called, the value of flag is reset to 0. When the program calls the OnPolymesh method, check the value of the flag flag. When it is 0, it indicates that the current is processing Mesh object data, and when it is 1, it indicates that the current is processing Face object data.

[0077] S5, if flag = 1, call the Face object lightweight processing flow and return to S2.

[0078] As shown in FIG. 3, the Face object lightweight processing flow includes the following steps:

[0079] S51, calculate the feature vector σ of the current Face object according to the geometric data provided by the OnPolymesh method.

[0080] Specifically, the geometry data of different Face objects or Mesh objects is inconsistent, and a feature vector corresponding thereto can be constructed according to the data, and different geometry objects can be quickly distinguished through the feature vector. Here, for the current Face object, a feature vector is established according to the vertex, triangular mesh index, UV coordinate and normal vector and the like data provided by the OnPolymesh method, such as the number of vertices np, the number of triangular mesh indexes ni, the number of UVs nuv, the number of normals nf, and a small amount of vertices P, and the corresponding normal vector N and UV coordinate, and the following feature vector can be established: [np,ni,nuv,nf,P[0] x ,P[0] y ,P[0] z ,N[0] x ,N[0] y ,N[0] z ,UV[0] u ,UV[0] v ,...]. x y z x y z u v

[0081] S52, whether the feature vector σ is contained in the mapping table T.

[0082] S53, if yes, skip the subsequent processing and directly end the process.

[0083] S54, if no, judge whether reconstruction is supported.

[0084] In this step, when judging whether reconstruction is supported, the following conditions are used for judgment:

[0085] Condition 1: whether the surface has only one contour line, i.e. there is no hole on the surface;

[0086] Condition 2: the surface is composed of four edges in four directions, two opposite edges are straight edges, and the remaining two opposite edges are curved edges or edges composed of multiple types of lines.

[0087] The surface refers to the surface described by the feature vector σ; if the surface meets both Condition 1 and Condition 2, it is determined that reconstruction is supported; otherwise, it is determined that reconstruction is not supported.

[0088] S55, if reconstruction is not supported, store the geometry data provided by the OnPolymesh method in the mapping table T.

[0089] S56, if reconstruction is supported, calculate the geometry data using a reconstruction method, and store the data in the mapping table T.

[0090] As shown in FIG. 5, the reconstruction method includes the following steps:

[0091] ​​​​​​​​S561, create a vertex array, a triangle mesh vertex index array, a UV array and a normal vector array

[0092] S562, extract points on the two opposite curved edges in order as vertices and store the points in the vertex array.

[0093] Here, since Revit uses a left-handed coordinate system, the extraction in order is extraction in order according to the left-hand rule.

[0094] S563, calculate the UV coordinates of the extracted vertices in the curved surface and store them in the UV array.

[0095] Specifically, the UV coordinates of the extracted vertices in the curved surface are calculated using the TessellateOnFace method provided by Revit API.

[0096] S564, calculate the normal vector coordinates of the vertices and store them in the normal vector array.

[0097] Specifically, the normal vector coordinates of the vertices are calculated using the ComputeNormal method provided by Revit API.

[0098] S565, connect the vertices on the curved edge in order to form a multi-edge polyline similar to the curved edge.

[0099] S566, connect the vertices on the two polylines to form a polygon and form a triangle mesh similar to the curved surface.

[0100] Here, as shown in FIG. 5, when the number of vertices on the two polylines is equal, the opposite vertices on the two polylines are connected to form a quadrilateral, and then one diagonal of each quadrilateral is connected to form a triangle mesh similar to the curved surface.

[0101] When the number of vertices on the two polylines is not equal, the opposite vertices on the two polylines are first connected to form a quadrilateral, and then one diagonal of each quadrilateral is connected; then the extra vertices on the longer (more vertices) polyline are connected to the last vertex on the other polyline to form a triangle, thereby forming a triangle mesh similar to the curved surface, as shown in FIG. 6.

[0102] The vertex index of the triangle mesh is stored in the triangle mesh vertex index array; the curved surface refers to the surface described by the feature vector σ, and the curved edge refers to the edge of the surface.

[0103] Based on the reconstruction method, these regular faces in the Face object can be described with less vertex approximation, realizing the data simplification of the Face object. In addition, for Face objects and Mesh objects that cannot be reconstructed, the objectization method (corresponding to S55 and the Mesh object lightweight processing flow) is used to reduce the data volume after BIM lightweight processing; the lightweight effect is better.

[0104] S6, if flag=0, call the Mesh object lightweight processing flow and return to S2.

[0105] As shown in FIG. 4, the Mesh object lightweight processing flow includes the following steps:

[0106] S61, calculate the feature vector σ of the current Mesh object according to the geometric data provided by the OnPolymesh method.

[0107] S62, query whether the feature vector σ is contained in the mapping table T.

[0108] S63, if it is contained, skip the subsequent processing and directly end the flow.

[0109] S64, if it is not contained, store the geometric data provided by the OnPolymesh method in the mapping table T.

[0110] For ease of understanding, the Mesh object lightweight processing flow is described in its entirety below in combination with a tree model case as shown in FIG. 7:

[0111] Step 1, a mapping table T is pre-established, and the flag is initialized to 0;

[0112] Step 2, call the IExportContext interface in Revit SDK to extract the data of the components in the model;

[0113] Step 3, when the OnPolyMesh method is executed, check the value of the flag;

[0114] Step 4, if flag=0, it indicates that the data of the Mesh object is being extracted, and the feature vector σ of the Mesh object is calculated according to the vertex array and the triangular mesh vertex index array provided by the OnPolyMesh method;

[0115] Step 5, query whether the feature vector σ is contained in the mapping table T;

[0116] Step 6, if it is contained, end the flow;

[0117] Step 7, if not included, with the eigenvector σ as the key, the vertex array, the triangular mesh vertex index array, the UV array, the normal vector array and other data provided by the OnPolyMesh method are stored in the mapping table T.

[0118] The BIM model lightweight method based on fine-grained geometric objectization provided in the embodiment is based on finer graphic elements, and realizes the instantiation of the face-based graphic element in the BIM lightweight process. Compared with other geometric object instantiation methods, the granularity is finer, and the geometric reuse rate is higher. On this basis, a geometric reconstruction method is proposed, which greatly simplifies the geometric data of the regular curved surface, the data volume is smaller, and the lightweight of the model data can be further realized.

[0119] Embodiment two

[0120] A BIM model lightweight method based on fine-grained geometric objectization, on the basis of embodiment one, the Face object lightweight processing flow further includes S57, the vertex of the curved edge is reduced by using the point removal method, and a reconstruction method is used to generate triangular meshes similar to the curved surface with different precision.

[0121] As shown in FIG. 8, the S57 includes the following sub-steps:

[0122] S571, a predefined angle ε is used as a threshold, and the cosine value ω of ε is calculated; the vertex data of a curved edge in the curved surface is extracted, assuming that the vertex set P={p0, p1, p2, p3, p4, p5,...}; and i=0, a=P[i].

[0123] S572, j=i+2, b=P[j].

[0124] S573, connect the vertices a and b to form a new edge l, and the edge between b and the adjacent point P[j+1] is denoted as m.

[0125] S574, the cosine value of the included angle θ of the edges l and m can be calculated by using the dot product formula l·m=|l|*|m|*cos(θ).

[0126] S575, when is less than ω, the vertex pointed by b is marked for removal, b is set to the next vertex, i.e. j=j+1, b=P[j], and S573 is continued.

[0127] S576, when is greater than ω, a is set to b, i.e. i=j, a=P[i], and S572 is continued.

[0128] S577, when b points to the last vertex of the curved edge, the remaining vertices of the curved edge are stored in the vertex array.

[0129] S578, another curved edge of the curved surface is processed using the same method. The de-pointing method corresponds to S571-S578.

[0130] S579, the vertex index array, the UV array and the normal vector array of the triangular mesh are recalculated according to the steps of the reconstruction method.

[0131] For the convenience of understanding, the reconstruction process of the cylindrical surface which is most used in the electromechanical model is described as a whole, including the following steps:

[0132] Step 1, a mapping table T is pre-established, and the flag is initialized to 0;

[0133] Step 2, the IExportContext interface in Revit SDK is called to extract the data of the components in the model;

[0134] Step 3, when the OnFaceBegin method of the IExportContext interface is called, the flag is set to 1;

[0135] Step 4, when the OnPolyMesh method is executed, the value of the flag is checked;

[0136] Step 5, if the flag is 1, it indicates that the data of the Face object is being extracted, and the feature vector σ of the Mesh object is calculated according to the vertex array and the triangular mesh vertex index array provided by the OnPolyMesh method;

[0137] Step 6, whether the feature vector σ is contained in the mapping table T is queried;

[0138] Step 7, if it is contained, go to step 12;

[0139] Step 8, if it is not contained, whether the edge of the cylindrical surface meets the conditions of redrawing, i.e., whether the reconstruction is supported, is judged according to the composition and type of the edge;

[0140] Step 9, if the redrawing condition is met (i.e., the reconstruction is supported), the vertex array of the curved edge is extracted according to the redrawing step, the triangular mesh vertex index array, the UV array and the normal vector array are calculated, and the data is recorded in the mapping table T;

[0141] Step 10, according to the new vertex array, the triangular mesh vertex index array, the UV array and the normal vector array, the de-pointing method is used to calculate the geometric data of the cylindrical surface at different accuracies, and the vertex array, the triangular mesh vertex index array, the UV array and the normal vector array at different accuracies are generated, and the data is updated to the mapping table T; the result after redrawing is shown in FIGS. 9, 10, 11 and 12;

[0142] Step 11, if the redraw condition is not met (i.e. no reconstruction is supported), record the data provided by the OnPolyMesh method into the mapping table T;

[0143] Step 12, when the OnFaceEnd method of the IExportContext interface is called, set the flag flag = 0.

[0144] The BIM model lightweight method based on fine-grained geometric objectization provided in the embodiment further adds a point removal method on the basis of the first embodiment, and can further simplify the geometric data to support geometric models with different precisions. Moreover, in the process of rendering the BIM model on the browser side, the LOD (Level of Detail) technology is often used to reduce the consumption of browser resources and improve the rendering efficiency. Therefore, the surface needs to provide data with different precisions such as fine, medium and coarse. The present scheme can meet the above requirements, provide support for the LOD technology used in the front-end rendering, and can greatly reduce the resource consumption and improve the rendering efficiency in the front-end rendering.

[0145] The above-mentioned is only an embodiment of the present application, and the well-known specific structures and characteristics in the scheme are not described in detail, the ordinary skilled in the art knows all the ordinary technical knowledge in the field of the present application before the filing date or the priority date, can know all the prior art in the field, and has the ability to apply the conventional experimental means before the date, the ordinary skilled in the art can improve and implement the present scheme under the guidance of the present application, and some typical well-known structures or well-known methods should not be an obstacle for the ordinary skilled in the art to implement the present application. It should be pointed out that for those skilled in the art, without departing from the structure of the present application, a number of modifications and improvements can be made, which should be considered as the protection scope of the present application, and these will not affect the effect and practicality of the present application.

Claims

1. A lightweight BIM model method based on fine-grained geometric objectification, characterized in that, Includes the following steps: S1. Create a new mapping table T to store the data of Face objects and Mesh objects in the model; S2, calls the IExportContext interface in the Revit SDK to extract data of components in the model; S3, Check whether the components in the current model have been processed; S4, if processing is complete, the process ends; If the process is not complete, retrieve the value of the current flag bit; S5, if flag = 1, call the Face object lightweight processing flow and return to S2; S6, if flag = 0, call the lightweight Mesh object processing flow and return to S2.

2. The lightweight BIM model method based on fine-grained geometric objectification according to claim 1, characterized in that, The lightweight processing procedure for the Face object includes the following steps: S51, Calculate the feature vector σ of the current Face object based on the geometric data provided by the OnPolymesh method; S52, query whether the mapping table T contains the feature vector σ; S53, if included, skip subsequent processing and end the process directly; S54, if not included, determine whether reconstruction is supported; S55, if reconstruction is not supported, store the geometric data provided by the OnPolymesh method into the mapping table T; S56, if reconstruction is supported, use the reconstruction method to calculate the geometric data and store the data in the mapping table T.

3. The lightweight BIM model method based on fine-grained geometric objectification according to claim 1, characterized in that, The lightweight processing procedure for Mesh objects includes the following steps: S61, Calculate the feature vector σ of the current Mesh object based on the geometric data provided by the OnPolymesh method; S62, query whether the mapping table T contains the feature vector σ; S63, if included, skip subsequent processing and end the process directly; S64, if not included, then store the geometric data provided by the OnPolymesh method into the mapping table T.

4. The lightweight BIM model method based on fine-grained geometric objectification according to claim 2, characterized in that, In S54, the determination of whether to support refactoring is based on the following conditions: Condition 1: Does the surface have only one contour line? Condition 2: The surface consists of edges in four directions, of which two opposite edges are straight edges, and the remaining two opposite edges are curved edges or edges composed of multiple types of lines; The surface referred to is the surface described by the eigenvector σ; if the surface satisfies both condition 1 and condition 2, it is determined to be a support surface. If it does not support reconstruction, then it is determined that reconstruction is not supported; otherwise, it is determined that reconstruction is not supported.

5. A lightweight BIM model method based on fine-grained geometric objectification according to claim 2, characterized in that, In S56, the reconstruction method includes the following steps: S561, create a new vertex array, a triangular mesh vertex index array, a UV array, and a normal vector array; S562: Extract the points on the two opposite curved edges in sequence as vertices and store the points in the vertex array; S563, calculate the UV coordinates of the extracted vertices in the surface and store them in the UV array; S564, calculate the normal vector coordinates of the vertex and store them in the normal vector array; S565 connects the vertices on the curved edge in sequence to form a polygonal line similar to the curved edge; S566 connects the vertices of two polygonal lines to form polygons, creating a triangular mesh similar to a curved surface. The vertex indices that constitute the triangular mesh are stored in the triangular mesh vertex index array; the surface refers to the surface described by the feature vector σ, and the curved edge is the edge of the surface.

6. A lightweight BIM model method based on fine-grained geometric objectification according to claim 5, characterized in that, In S562, the sequential extraction means extraction in the order of the left-hand rule.

7. A lightweight BIM model method based on fine-grained geometric objectification according to claim 5, characterized in that, In S563, the TessellateOnFace method provided by the Revit API is used to calculate the UV coordinates of the extracted vertices in the surface.

8. A lightweight BIM model method based on fine-grained geometric objectification according to claim 5, characterized in that, In S564, the ComputeNormal method provided by the Revit API is used to calculate the normal vector coordinates of the vertices.

9. A lightweight BIM model method based on fine-grained geometric objectification according to claim 2, characterized in that, The Face object lightweighting process also includes S57, which uses a point removal method to reduce the number of vertices sampled on the curved edge, and then uses a reconstruction method to generate triangular meshes similar to the curved surface at different precisions.

10. A lightweight BIM model method based on fine-grained geometric objectification according to claim 9, characterized in that, S57 includes the following sub-steps: S571, predefine an angle ε as a threshold, calculate the cosine value ω of ε; extract the vertex data of a curved edge in the surface, assuming the vertex set P = {p0, p1, p2, p3, p4, p5, ...}; and set i = 0, a = P[i]; S572, let j = i + 2, b = P[j]; S573, connect vertices a and b to form a new edge l, and denote the edge between b and its neighboring vertex P[j+1] as m; S574. Using the dot product formula l·m=|l|*|m|*cos(θ), the cosine of the angle θ between sides l and m can be calculated. S575, when When the value is less than ω, the vertex pointed to by b is marked as removed, b is set as the next vertex, i.e., j = j + 1, b = P[j], and S573 continues to be executed; S576, when When the value is greater than ω, set a to b, i.e., i = j, a = P[i], and continue to execute S572; S577, when b points to the last vertex of the curved edge, store the remaining vertices on the curved edge into the vertex array; S578, use the same method to process another curved edge of the surface; S579, recalculate the triangular mesh vertex index array, UV array, and normal vector array according to the steps of the reconstruction method.

Citation Information

Patent Citations

  • Revit-based BIM model lightweight method and system

    CN111949722A

  • Revit model lightweight method for webgl engine

    CN114880742A

  • Geometric objectification BIM model lightweight method based on fine granularity

    CN118656901A

  • BIM data processing system for BIM data format conversion

    KR101465481B1

Cited By

  • Urban-level BIM model data lightweight processing method

    CN121880297A