A method and system for managing BIM model geometry data
Patent Information
- Application Number
- CN202611375440.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-09-07
- Publication Date
- 2026-11-03
- Estimated Expiration
- 2046-09-07
AI Technical Summary
Existing BIM model geometric data processing methods are inefficient and cannot meet the real-time requirements of construction simulation. Segmentation management relies on manual coding, which is prone to errors. The storage method leads to data redundancy and low update efficiency, and it is impossible to trace the historical version of the segmentation.
A multi-mode segmentation framework is adopted to segment the geometric data of the BIM model based on the needs of the construction stage. Spatial root nodes are formed by aligning bounding boxes with axes, centroid coordinates are calculated to generate unique codes, non-geometric attribute information is stored separately, and graph database is used for management, supporting incremental version storage.
It enables intelligent and efficient management of BIM model geometric data, adapts to different construction stages and granularity requirements, solves problems such as single segmentation mode, lack of standard spatial identification, coupled data management and low update efficiency, and improves the accuracy and efficiency of construction space planning.
Smart Images

Figure CN122862645B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to data processing, specifically to a method and system for managing geometric data of BIM models. Background Technology
[0002] Building Information Modeling (BIM) is a digital architectural design and management tool that contains various data such as geometric, material, and schedule information for a building project. During the construction phase, the amount of geometric data in a BIM model is usually very large. Directly processing and storing the entire model can lead to inefficiency and make it difficult to meet the real-time requirements of applications such as construction simulation.
[0003] Currently, existing BIM model geometric data processing methods store all data uniformly. When only a portion of the data is needed during the construction phase, all data still needs to be managed holistically, resulting in low processing efficiency. Existing technologies include data segmentation management, but this relies on manual coding, which is inconsistent and prone to coding conflicts or omissions. It also requires manual determination of the space to which each component belongs, making it inefficient and prone to errors.
[0004] Existing data storage methods for segmented data typically employ a full update model, requiring all segmented data to be re-stored for each segmentation operation. This results in data redundancy, low storage efficiency, and an inability to trace historical segmentation versions. Furthermore, existing data storage methods often utilize traditional relational databases and model files, making it difficult to efficiently store and query the complex combined geometric data and relationships of BIM models. Summary of the Invention
[0005] Purpose of the invention: To address the above-mentioned shortcomings, this invention provides an efficient and secure method and system for managing BIM model geometric data.
[0006] Technical Solution: To solve the above problems, the present invention provides a method for managing geometric data of BIM models, comprising the following steps:
[0007] Step 1: Based on the requirements of the construction phase, obtain the geometric data of the required components according to the BIM model of the components;
[0008] Step 2: Based on the geometric data of all components, calculate the axis-aligned bounding box, form the spatial root node, and initialize the segmentation version number;
[0009] Step 3: Determine the segmentation mode according to the received segmentation instruction, call the corresponding segmentation algorithm according to the segmentation mode to segment the parent space node, generate the segmented space child nodes, and record the parent space identifier;
[0010] Step 4: Calculate the centroid coordinates of each segmented spatial node, and generate a unique construction space code for the spatial node based on the spatial positional relationship of the centroid coordinates according to the multi-level spatial division rules.
[0011] Step 5: Obtain the components in the spatial node, perform geometric operations on the components and the spatial node to obtain the segmented components, and write the spatial node identifier and construction space code of the spatial node into the component attributes of the segmented components; if a segmentation command is received again, return to step 3;
[0012] Step 6: Identify the incremental spatial child nodes and segmentation components based on the segmentation version number, separate and store the non-geometric attribute information and geometric data of the spatial child nodes and segmentation components respectively, maintain the parent-child hierarchical relationship, and build the graph library; if a segmentation instruction is received again, update the segmentation version number and return to step 3;
[0013] Step 7: Obtain the geometric data of the required components from the library according to the construction space code.
[0014] Furthermore, the segmentation modes include fast layering, fast partitioning, fast segmentation, line segmentation, and solid segmentation;
[0015] The rapid layering: Based on the elevation range of the spatial nodes, a dividing plane is calculated by configuring the elevation offset, and the dividing plane divides the spatial nodes in the direction perpendicular to the Z-axis.
[0016] The rapid partitioning: Based on the station range and elevation range of the spatial nodes, the offset is configured according to the three-view directions of the spatial nodes to calculate the dividing plane, and the dividing plane divides the spatial nodes in the X-axis, Y-axis or Z-axis directions.
[0017] The rapid segmentation: Based on the station range of the spatial nodes, by configuring the number of segments or the length of each segment, the cutting plane of each segment is calculated, and the cutting plane divides the spatial nodes in the X-axis or Y-axis direction;
[0018] The line drawing and segmentation: rotate the three-dimensional view of the spatial node to a preset working plane, draw the segmentation line on the working plane, and stretch the segmentation line along the normal direction of the working plane to generate a 3D segmentation surface to segment the spatial node;
[0019] The entity segmentation is achieved by drawing entities in three-dimensional space and performing geometric Boolean operations between the spatial nodes and the drawn entities to segment the spatial nodes.
[0020] Furthermore, the drawn dividing lines include smart lines, rectangles, arcs, straight lines, regular polygons, and spline curves; the drawn entities include spheres, cylinders, cones, blocks, tori, ellipsoids, elliptical cones, linear entities, and ramps.
[0021] Furthermore, the multi-level space partitioning rule is as follows: the child level obtained by splitting the root node of the space is the hierarchical space, the child level obtained by splitting the hierarchical space is the zone-level space, the child level obtained by splitting the zone-level space is the block-level space, and the child level obtained by splitting the block-level space is still the block-level space.
[0022] Furthermore, the construction space code of the spatial node includes a representative symbol and a numerical code. The construction space code structure of the hierarchical spatial node is a first representative symbol and a numerical code. The construction space code structure of the zone-level spatial node is the construction space code of the parent spatial node superimposed with a second representative symbol and a numerical code. When the parent spatial node of the spatial node is located in the zone-level space, the construction space code structure of the spatial node is the construction space code of the parent spatial node superimposed with a third representative symbol and a numerical code. When the parent spatial node of the spatial node is located in the block-level interval, the construction space code result of the spatial node is the construction space code of the parent spatial node superimposed with a separator and a numerical code. The numerical code of the spatial node at each level of space is sorted and encoded according to the spatial position relationship of the centroid coordinates.
[0023] Furthermore, the encoding rules for the spatial nodes of the hierarchical space are as follows: the centroid coordinates of the spatial nodes are sequentially numbered according to the priority of the Z, X, and Y axis coordinates. First, they are sorted from largest to smallest according to the Z axis coordinates. When the Z axis coordinates are the same, they are sorted from smallest to largest according to the X axis coordinates. When the X axis coordinates are the same, they are sorted from smallest to largest according to the Y axis coordinates. The encoding is performed sequentially according to the sorting results. The encoding rules for the spatial nodes of the area-level space and block-level space are as follows: the centroid coordinates of the spatial nodes are sequentially numbered according to the priority of the X, Y, and Z axis coordinates. First, they are sorted from smallest to largest according to the X axis coordinates. When the X axis coordinates are the same, they are sorted from smallest to largest according to the Y axis coordinates. If the X axis coordinates and Y axis coordinates are both the same, they are sorted from largest to smallest according to the Z axis coordinates. The encoding is performed sequentially according to the sorting results.
[0024] Furthermore, the centroid coordinates are calculated using the volume centroid formula. The spatial nodes are divided into triangular meshes to obtain a discrete triangular mesh model. The centroid coordinates of the discrete triangular mesh model are then calculated. The weighted average method is used for calculation, and the formula is as follows:
[0025]
[0026] in, Let i be the volume of the i-th tetrahedron. Let these be the coordinates of the barycenter of the i-th tetrahedron. This represents the total number of tetrahedrons.
[0027] Furthermore, performing geometric operations on the components and the spatial nodes specifically includes:
[0028] When using the segmentation mode of rapid layering, rapid partitioning, rapid segmentation, or line division, the intersection operation of the component geometry and the spatial node geometry after segmentation is performed to obtain the segmented component, and the segmented component belongs to the corresponding spatial node.
[0029] When using the solid segmentation mode, the component geometry and the drawn solid are subjected to intersection and difference operations. The segmented components of the intersection part belong to the intersection subspace, and the segmented components of the difference part belong to the difference subspace.
[0030] Furthermore, the separate storage of non-geometric attribute information and geometric data of spatial child nodes and segmented component parts, along with the maintenance of parent-child hierarchical relationships, and the construction of the graph library specifically includes:
[0031] The geometric data of the incremental spatial child nodes is converted into mesh triangular facet data and written to the Geometry node of the library. The non-geometric attribute information is written to the SplitConfig node of the library, and the geometric data and non-geometric attribute information of the spatial child nodes are associated.
[0032] The geometric data of the incremental molecular component will be converted into mesh triangular facet data and written to the Geometry node of the library. The non-geometric attribute information will be written to the SplitEntity node of the library. The geometric data and non-geometric attribute information of the molecular component will be associated.
[0033] The relationships between parent and child nodes of the SplitConfig node and the SplitEntity node in the library.
[0034] The present invention provides a management system for BIM model geometric data, comprising:
[0035] The data acquisition module is used to acquire the required geometric data of the components based on the BIM model of the components, according to the needs of the construction phase.
[0036] The initialization module is used to calculate the axis-aligned bounding box based on the geometric data of all components, form the spatial root node, and initialize the segmentation version number; if a segmentation command is received again after storage, the segmentation version number is updated.
[0037] The spatial segmentation module is used to determine the segmentation mode according to the received segmentation instructions, call the corresponding segmentation algorithm according to the segmentation mode to segment the parent spatial node, generate the segmented spatial child nodes, record the parent spatial identifier, and update the segmentation version number.
[0038] The coding module is used to calculate the centroid coordinates of each segmented spatial node, and generate a unique construction space code for the spatial node based on the spatial positional relationship of the centroid coordinates according to the multi-level spatial division rules.
[0039] The component segmentation module is used to obtain the components in the spatial nodes, perform geometric operations on the components and the spatial nodes to obtain segmented components, and write the spatial node identifier and construction space code of the spatial nodes into the component attributes of the segmented components.
[0040] The storage module is used to identify incremental spatial child nodes and segmentation components according to the segmentation version number, separate and store the non-geometric attribute information and geometric data of spatial child nodes and segmentation components respectively, maintain the parent-child hierarchical relationship, and build a graph library;
[0041] The application module is used to retrieve the geometric data of the required components from the library based on the construction space code.
[0042] Beneficial Effects: Compared with existing technologies, the significant advantages of this invention are: It provides a flexible segmentation method adaptable to different construction stages and granularity requirements through a multi-mode segmentation framework; the multi-level spatial division and automatic coding system provide standardized spatial identification and attribution criteria for the segmentation results, aligning with unit engineering and WBS standards; and the separate storage of digital models and the version incremental mechanism ensure efficient management, cross-platform sharing, and traceable updates of the segmented data. These three technical features work synergistically to achieve intelligent, efficient, and systematic segmentation and management of BIM model geometric data, solving the comprehensive technical problems of existing technologies, such as single segmentation modes, lack of standardized spatial identification, coupled data management, and low update efficiency. Attached Figure Description
[0043] Figure 1 This is a schematic diagram of the overall process of the management method of the present invention.
[0044] Figure 2 This is a schematic diagram of the graph database storage architecture for spatial nodes in this invention.
[0045] Figure 3 This is a schematic diagram of the graph database storage architecture of the components in this invention.
[0046] Figure 4 This is a schematic diagram of the spatial node geometry of the first floor of the main and auxiliary plant buildings in an embodiment of the present invention. Detailed Implementation
[0047] like Figure 1 As shown in this embodiment, a method for managing geometric data of a BIM model includes the following steps:
[0048] S1. Data Preprocessing: Based on the requirements of the construction phase, load the BIM geometric data of the components to be segmented, and calculate the axis-aligned bounding boxes based on the geometric data of all components to form spatial root nodes, and initialize the segmentation version number. Specifically, this includes:
[0049] S11. Obtain the required component geometry data from the BIM model library and assign a split version number to this split operation;
[0050] S12. Convert the component geometry data into solids, write the version number of this split, load the solids into the corresponding model files, and record the file paths;
[0051] S13. Calculate the axis-aligned bounding box (AABB) based on the geometric data of all components, and use it as the spatial root node;
[0052] S14. Write the spatial root node identifier into the spatial affiliation attribute of all components, indicating the components under the spatial root node;
[0053] S15. When loading for the first time, execute steps S11 to S14. During subsequent editing, simply load the corresponding model file through the file path and increment the split version number.
[0054] S2. Multi-mode Segmentation: Based on the received segmentation command, the segmentation mode is determined. Without modifying the selected space geometry, the geometry of the selected space is copied, and the corresponding segmentation algorithm is called to segment it, generating child nodes of the segmented space and recording the parent space identifier. The segmentation modes include five types: fast layering, fast partitioning, fast segmentation, line segmentation, and solid segmentation. Among them, line segmentation generates a 3D segmentation surface by stretching the segmentation line drawn on the working plane along the plane normal direction, and solid segmentation achieves precise segmentation of complex shapes through geometric Boolean operations. Specifically, it includes:
[0055] S21. Select the space to be partitioned and the partitioning mode. The partitioning modes include the following 5 types:
[0056] (1) Quick layering: Get the selected space, copy the geometry of the space, calculate the bottom elevation and top elevation, calculate the cutting plane by configuring the elevation offset, and cut the copied space.
[0057] (2) Quick partitioning: Get the selected space, copy the geometry of the space, calculate and draw the three views (front view, left view and top view) as well as the station range and elevation range, calculate the partitioning plane by configuring the view direction, horizontal partitioning or vertical partitioning offset, and partition the copied space.
[0058] (3) Quick segmentation: Obtain the selected space, copy the geometry of the space, calculate the starting station number and the ending station number, calculate the dividing plane of each segment by configuring the quantity or the length of each segment, and segment the copied space.
[0059] (4) Draw lines to divide: Select the selected space, copy the geometry of the space, and draw dividing lines such as smart lines, rectangles, arcs, straight lines, regular polygons and spline curves on the working plane by rotating the space nodes to a specific working plane; stretch the drawn dividing lines along the normal direction of the working plane to generate 3D dividing surfaces to divide the copied space.
[0060] (5) Entity segmentation: Select the selected space, copy the geometry of the space, and draw entities such as spheres, cylinders, cones, blocks, tori, ellipsoids, elliptical cones, linear entities and ramps in the three-dimensional space. Perform geometric Boolean operations (intersection and difference) on the copied space and the drawn entities to achieve precise segmentation of complex shapes.
[0061] S22. Configure the segmentation parameters according to the particle size requirements of the construction stage;
[0062] S23. Construct a dividing plane using the dividing parameters. First, copy the geometry of the selected space, then divide the copied space to form a dividing subspace. The algorithm for constructing the dividing plane is as follows:
[0063] Quick layering: The dividing plane is a plane perpendicular to the Z-axis, and its equation is... ,in , To select the bottom elevation of the space, Let be the offset of the i-th segment. This represents the total number of segmentation offsets;
[0064] Quick partitioning: Determines the normal vector of the partitioning plane based on the selected view direction. Each view direction supports partitioning along two coordinate axes. Users can configure the offset of one or two coordinate axes according to actual needs: The front view (XZ plane) supports partitioning along the X and Z axes. The equation of the partitioning plane along the X axis is... The equation of the tangent plane in the Z-axis direction is: The left view (YZ plane) supports division along the Y and Z axes. The equation of the division plane along the Y axis is: The equation of the tangent plane in the Z-axis direction is: The top view (XY plane) supports division along the X and Y axes. The equation of the division plane along the X axis is: The equation of the tangent plane in the Y-axis direction is: ;in , , , This represents the i-th segment offset in the X-axis direction. This represents the i-th segment offset in the Y-axis direction. This represents the i-th segment offset in the Z-axis direction;
[0065] Quick segmentation: Determine the normal vector of the cutting plane based on the selected segmentation direction. When segmenting incrementally along the X direction, the plane equation is: When the plane is divided into segments decreasing along the X direction, the equation is: When the plane is segmented in increasing order along the Y direction, the equation is: When the plane equation decreases piecewise along the Y direction, it is: ,in , The coordinates of the starting station are... , The coordinates of the final station number, For segment number, The length of each segment;
[0066] Line drawing and segmentation: Draw 7 types of curves on the work plane, including smart lines (polylines), rectangles, arcs, straight lines, regular polygons, circles, and spline curves. Each curve type uses native geometric definitions instead of being discretized into a sequence of line segments. The geometric kernel completes the creation of the 3D segmentation plane, realizing the precise segmentation of selected space and components.
[0067] Solid segmentation: Achieved through geometric Boolean operations, without the need to construct an explicit segmentation plane.
[0068] S24. Record the corresponding partitioning parameters according to different partitioning modes. The partitioning parameters are stored in the operation record attribute of the space root node. It supports repeatedly adjusting the partitioning parameters to re-partition the space.
[0069] S25. Write the segmentation version number into the version attribute of all segmented space child nodes, and write the parent space identifier into the parent attribute of the space child nodes.
[0070] A unified multi-mode segmentation framework is constructed, supporting parametric resegmentation to improve the flexibility and efficiency of construction space division. Through five segmentation modes—rapid layering, rapid partitioning, rapid segmentation, line-based segmentation, and solid segmentation—a unified multi-mode geometric data segmentation framework is built. During the segmentation process, the original component geometric information and segmentation operation parameters are preserved, achieving parametrically driven automatic resegmentation. The unified multi-mode segmentation framework enhances the flexibility and adaptability of spatial division: rapid layering is suitable for vertical spatial layering; rapid partitioning is suitable for area division under different views; rapid segmentation is suitable for segmentation by station number according to cyclic advance; and line-based segmentation and solid segmentation support user-defined irregular spatial division. The unified integration of the five segmentation modes enables this invention to adapt to the spatial division needs of different construction stages and different granularities, solving the technical problem of existing technologies having a single segmentation mode that cannot meet the needs of complex projects. Parametric resegmentation avoids repetitive manual operations: During the segmentation process, the system fully preserves the original component geometry information and records the segmentation operation parameters. When the user needs to adjust the segmentation scheme, only the corresponding segmentation parameters need to be modified, and the system will automatically re-execute the segmentation according to the segmentation operation steps. There is no need to manually repeat all the segmentation operations, which solves the technical problem of low efficiency caused by repetitive manual operations in the existing technology for segmentation adjustment.
[0071] S3. Multi-level spatial coding: According to the "layer-area-block" multi-level spatial division rule, the spatial root node is divided into layers, areas, and segments in sequence. The centroid coordinates of each segmented spatial node are calculated, and a unique construction spatial code is automatically generated based on the spatial position relationship of the centroid coordinates.
[0072] Specifically, it includes:
[0073] S31. Based on the geometric data of the spatial child nodes, calculate the centroid coordinates (volume centroid) of the spatial child nodes: Divide the spatial nodes into triangular meshes to obtain a discrete triangular mesh model. For the discrete triangular mesh model, use the weighted average method to calculate the centroid. The calculation formula is as follows:
[0074]
[0075] in, Let i be the volume of the i-th tetrahedron. Let be the coordinates of the centroid of the i-th tetrahedron; for each triangle in the triangular mesh, let be the coordinates of the three vertices of the triangle. , , and origin The volume of a tetrahedron is calculated using the following formula:
[0076]
[0077] The formula for calculating the centroid coordinates is:
[0078]
[0079] The above method is also applicable to non-convex geometries because the calculation of the volume centroid is independent of the convexity or concavity of the geometry. For hollow components (such as pipes, shells, etc.), the volume centroid is calculated based on the actual geometric boundaries of the component. If the component's geometric data includes information about the inner surface, the volume centroid enclosed by the inner and outer surfaces is calculated separately. If it only contains information about the outer surface, it is treated as a solid component and its centroid is calculated.
[0080] S32. Multi-level space partitioning rules: The child level obtained by splitting the root node of the space is the hierarchical space, the child level obtained by splitting the hierarchical space is the area-level space, the child level obtained by splitting the area-level space is the block-level space, and the child level obtained by splitting the block-level space is still the block-level space.
[0081] S33. Different automatic spatial coding is applied according to different spatial level types such as layer, area, and block, as follows:
[0082] Hierarchical space: First representative symbol: L and numeric code: two digits from 01 to 99, sequentially numbered according to the priority of Z, X, Y axis coordinates. First sorted by Z axis coordinate from largest to smallest. When Z axis coordinates are the same, sorted by X axis coordinate from smallest to largest. When X axis coordinates are the same, sorted by Y axis coordinate from smallest to largest. Coded according to the sorting results, such as: L01;
[0083] District-level space: Based on the construction space coding of the hierarchical space, add a second representative symbol: R and a two-digit code: 01 to 99. The serial number is based on the priority of the X, Y, and Z axis coordinates. First, it is automatically sorted in ascending order in the X-axis direction. If the X-axis is the same, it is sorted in ascending order in the Y-axis direction. If the X and Y axes are the same, it is automatically sorted in ascending order in the Z-axis direction. The code is then generated according to the sorting results, such as: L01R01.
[0084] Block-level space: Based on the zone-level construction space coding, a third representative symbol, "B," and a three-digit code (001 to 999) are added. Numbering is performed sequentially according to the priority of the X, Y, and Z axis coordinates. First, automatic sorting occurs along the X-axis from smallest to largest. If the X-axis values are the same, sorting proceeds along the Y-axis from smallest to largest. If the X and Y axes are the same size, automatic sorting proceeds along the Z-axis from top to bottom. Coding is then performed according to the sorting results. When the block-level space is further subdivided, a separator and a numeric code (.001 to .999) are added to the above coding, such as L01R01B001 and L01R01B001.001.
[0085] S34. Coding conflict handling: There is no overlap between spatial child nodes of the same level, so there is no common centroid among spatial child nodes of the same level. For spatial child nodes of different levels, the coding is based on the parent coding and appended to it to resolve coding conflicts.
[0086] S35. Write the automatically generated construction space code into the code attribute of the space sub-node.
[0087] This invention achieves multi-level spatial division and automatic coding, improving the standardization of spatial identification and the basis for determining ownership. Based on a three-level spatial hierarchy framework of "layer-area-block," combined with centroid coordinates and preset coding rules, it realizes hierarchical management and automatic coding of construction space. The multi-level spatial division is aligned with engineering standards: the three-level spatial hierarchy is decomposed layer by layer into smaller, independently manageable task units, forming a standardized hierarchical tree structure that conforms to the division standards of unit engineering and WBS. This division framework not only supports the decomposition of geometric data of large components such as excavation, shotcrete, and dams into smaller granularities, but also provides clear spatial ownership basis for components such as anchor bolts that do not need to be divided. It solves the technical problems of the lack of unified hierarchical standards for construction space division and insufficient basis for the ownership of divided and undivided components in the existing technology.
[0088] An automatic coding system based on centroid coordinates: coding rules adopt differentiated coding formats according to spatial hierarchy types and support multi-level segmentation coding extension of blocks; the coding process is automatically generated based on the priority of the X, Y, and Z axes of the centroid coordinates, ensuring the uniqueness of the code and the correspondence with the spatial position; this standardized coding system not only facilitates the rapid identification and positioning of construction space, but also provides a unified spatial identification foundation for applications such as construction progress management, resource allocation, and quality traceability, solving the technical problems of non-standardized and difficult-to-unify management of construction space coding in existing technologies.
[0089] S4. Segmentation and Spatial Assignment: Obtain the components under the selected spatial node, copy the component geometry and perform geometric operations with the spatial node geometry to obtain segmented components, determine the subspace to which the segmented components belong, and write the spatial node identifier and construction space code of the spatial node into the component attributes of the segmented components. Specifically, this includes:
[0090] S41. Obtain all spatial nodes after the splitting and all components under the selected spatial nodes;
[0091] S42. Based on the current segmentation method, use the corresponding geometric Boolean operation strategy to accurately segment the candidate components:
[0092] (1) For the segmentation modes of fast layering, fast partitioning, fast segmentation and line cutting, the direct association method of segmentation is adopted: the spatial node and the candidate component are geometrically intersected to obtain the segmented component, and the segmented component belongs to this spatial node.
[0093] (2) For the entity segmentation mode, the Boolean operation result association method is adopted: the drawn entity segmentation tool and the component are subjected to geometric Boolean operation intersection and difference operation. The intersection part belongs to the subspace obtained by the intersection of the same entity segmentation tool, and the difference part belongs to the space obtained by the difference of the same entity segmentation tool.
[0094] S43. Write the spatial node identifier, construction space code, parent component identifier, and segmentation version number into the corresponding attributes of the segmented component. If a segmentation command is received again, return to S2 to continue segmentation.
[0095] S5. Incremental Data Storage: Identify spatial child nodes and sub-components of incremental segmentation based on the segmentation version number, separate and store non-geometric attribute information and geometric data, and maintain the parent-child hierarchical relationship between entities. Specifically, this includes:
[0096] S51. Filter and identify spatial sub-nodes and segmentation components of incremental segmentation based on the segmentation version number;
[0097] S52, such as Figure 2 As shown, the geometric data of the incremental spatial sub-nodes is converted into mesh triangular facet data and written to the Geometry node (geometric node) of the library, while the non-geometric attribute information is written to the SplitConfig node of the library. The two are associated through the HAS_GEO relationship.
[0098] S53, such as Figure 3 As shown, the geometric data of the incrementally cut molecular component is converted into mesh triangular facet data and written into the Geometry node (geometric node) of the library. The non-geometric attribute information is written into the SplitEntity node of the library. The two are associated through the HAS_GEO relationship to achieve separation of digital model and data model.
[0099] The attribute definitions of each node are shown in Tables 1 to 4:
[0100] Table 1 Entity Node (Original Component) Attributes
[0101]
[0102] Table 2 SplitEntity Node (Split Entity Component) Attributes
[0103]
[0104] Table 3 SplitConfig Node (Spatial Node) Attributes
[0105]
[0106] Table 4 Geometry Node (Geometric Data) Attributes
[0107]
[0108] HAS_GEO (Own Geometry) Relationship: Associates Entity / SplitEntity / SplitConfig nodes with Geometry nodes, with the direction being entity node pointing to geometry node, and the relationship is 1:1 (one entity is associated with one geometry data).
[0109] SPLIT (Split) relationship: Associates parent Entity / SplitEntity / SplitConfig nodes with child SplitEntity / SplitConfig nodes, with the direction being parent to child, and multiplicity being 1:N (a parent component can be split into multiple child components).
[0110] S54. Update the parent-child relationship between SplitConfig and SplitEntity nodes in the library using the parent identifier. Both maintain the parent-child relationship through the SPLIT relationship. If a split command is received again, update the split version number and return to S2.
[0111] This paper optimizes data management efficiency and cross-platform sharing capabilities by using graph databases to separate data models and implement incremental version storage. The graph database-based architecture stores segmented data, optimizing data management from both storage structure and update mechanism perspectives through a data model separation design and incremental version storage. The graph database-based data model separation storage architecture stores non-geometric attribute information and geometric data on different nodes, linked by relationships. This separation structure enables independent management and querying of attribute and geometric data, avoiding the low query efficiency caused by the coupling of attribute and geometric data in traditional storage methods. The relational storage mode of graph databases can efficiently maintain parent-child and geometric relationships between entities, supporting complex relational queries. Model files generated by graph databases can directly provide model data for other rendering engines, enabling cross-platform data sharing and reuse. This solves the technical problems of complex BIM model data management, coupling of attribute and geometric data, and difficulties in cross-platform sharing in existing technologies.
[0112] The incremental data persistence mechanism based on version numbers identifies and stores incrementally segmented data by using segmentation version numbers. It processes and stores only newly added segmented data, avoiding duplicate processing of existing data. When editing a segment, it is only necessary to load the model file of the corresponding version and increment the segmentation version number by 1 to achieve incremental updates. This mechanism effectively reduces data storage redundancy and redundant calculation overhead, and solves the technical problems of data storage redundancy and low update efficiency in existing segmentation technologies.
[0113] S6. Data Management and Query: Manage and query the segmented geometric data to generate corresponding 3D model files.
[0114] S61. Based on the requirements of different application modules, obtain the corresponding geometric data from the drawing library according to the construction space code;
[0115] S62. Generate corresponding 3D model files from the acquired geometric data to provide model data support for other platforms.
[0116] The implementation of this invention can significantly improve the accuracy and efficiency of construction space planning, reduce data storage and management costs, and provide solid data support for engineering applications such as construction simulation, progress management, and resource allocation. It has significant engineering application value and economic benefits.
[0117] This embodiment takes the excavation project of the main and auxiliary powerhouses and installation site of a hydropower station as an example. The main powerhouse is 124.9m long, 27m wide and 59.9m high, the auxiliary powerhouse is 21m long, 25.5m wide and 59.9m high, and the installation site is 51m long, 27m wide and 32m high. The overall excavation scheme adopts a combination of rapid layering, rapid zoning, rapid segmentation, line marking and solid cutting.
[0118] First, a rapid layering method is used:
[0119] Implementation scenario: The main plant building has a vertical height of 59.9m and needs to be divided into multiple excavation layers according to the construction sequence, including: Layer I (EL116~EL126.4, height 10.4m), Layer II (EL107~EL116, height 9m), Layer III (EL96.5~EL107, height 10.5m), Layer IV (EL89~EL96.5, height 7.5m), Layer V (EL82.6~EL89, height 6.4m), Layer VI (EL73.3~EL82.6, height 9.3m), and Layer VII (EL66.5~EL73.3, height 6.8m).
[0120] The specific steps are as follows:
[0121] S1: Data Preprocessing
[0122] Load the component geometry data of the main and auxiliary plant buildings and installation site using the library node ID, write it to a custom model file, set the split version number to 1, and record the file path. Calculate an axis-aligned bounding box (AABB) containing all components as the spatial root node: X∈[-40.4, 156.5]m, Y∈[-13.75, 13.25]m, Z∈[66.5, 126.4]m. Write the spatial root node identifier into the spatial attributes of all components.
[0123] S2: Quick Layering Operation
[0124] Select the fast layering segmentation mode, obtain the bottom elevation minz=66.5m and top elevation maxz=126.4m of the spatial root node, and configure the elevation segmentation offset as [6.8, 9.3, 6.4, 7.5, 10.5, 9]m (i.e., at Z=73.3m, Z=82.6m, Z=89m, Z=96.5m, Z=107m, and Z=116m). The system automatically calculates 6 segmentation planes perpendicular to the Z-axis. First, the geometry of the spatial root node is copied. Without changing the original spatial geometry, the copied space is segmented to form 7 subspaces (layers):
[0125] Layer I: Z∈[116, 126.4]m, elevation range (EL116~EL126.4).
[0126] Layer II: Z∈[107, 116]m, elevation range (EL107~EL116);
[0127] Layer III: Z∈[96.5, 107]m, elevation range (EL96.5~EL107);
[0128] Layer IV: Z∈[89, 96.5]m, elevation range (EL89~EL96.5);
[0129] Layer V: Z∈[82.6, 89]m, elevation range (EL82.6~EL89);
[0130] Layer VI: Z∈[73.3, 82.6]m, elevation range (EL73.3~EL82.6);
[0131] Layer VII: Z∈[66.5, 73.3]m, elevation range (EL66.5~EL73.3);
[0132] Write the segmentation version number to the version number attribute of the subspace, and record the spatial root node identifier in the parent identifier attribute of the subspace; record the segmentation operation parameters, such as the elevation Z values (i.e., Z=116m, Z=107m, Z=96.5m, Z=89m, Z=82.6m and Z=73.3m) and the spatial root node identifier, in the operation record attribute of the spatial root node for editing and resegmentation.
[0133] S3: Multi-level spatial partitioning, automatic encoding
[0134] Because the system divides the space based on the root node to obtain a hierarchical space, it automatically calculates the centroid coordinates of the seven subspaces. The encoding rule for the hierarchical space is based on the Z-axis coordinates of the centroids, automatically encoded from top to bottom:
[0135] Layer I (centroid Z = 121.2m): Construction space code is L01;
[0136] Level II (centroid Z = 111.5m): Construction space code is L02;
[0137] Layer III (centroid Z = 101.75m): Construction space code is L03;
[0138] Layer IV (centroid Z = 92.75m): Construction space code is L04;
[0139] Level V (centroid Z = 85.8m): Construction space code is L05;
[0140] Layer VI (centroid Z = 77.95m): Construction space code is L06;
[0141] Layer VII (centroid Z = 69.9m): Construction space code is L07;
[0142] Write the construction space code into the construction space code attribute of the subspace of the above 7 hierarchical spaces.
[0143] S4: Segmentation Components and Spatial Assignment
[0144] Obtain the components under the root node of the space, iterate over each component, copy the geometry of each component, and without changing the geometry of the original component, use the geometry of the copied component to perform Boolean operations with the subspace geometry of the 7 hierarchical spaces respectively. The intersection of the entities yields the segmented components. The segmented components belong to the subspace of the corresponding intersection operation, and the subspace node identifier is written into the spatial attribute of the segmented component. The construction space code is written into the construction space code attribute of the segmented component, and the parent component identifier is written into the parent identifier attribute of the segmented component.
[0145] S5: Incremental Data Storage
[0146] Subspaces and segmented components are filtered out using the version number 1 attribute. The non-geometric attributes of the subspace are stored in the SplitConfig node of the library, and the geometric data is stored in the Geometry node. The two are related through the HAS_GEO relationship. The non-geometric attributes of the segmented components are stored in the SplitEntity node of the library, and the geometric data is stored in the Geometry node. The two are also related through the HAS_GEO relationship. The relationship between the parent and child nodes of SplitConfig and SplitEntity is through the SPLIT relationship.
[0147] S6: Data Management and Query
[0148] Based on the construction schedule requirements, the required component geometric data can be obtained from the library through construction space coding to generate the necessary model files.
[0149] The subspaces of the partitioned hierarchical space are divided using a fast partitioning method:
[0150] Implementation Scenario: The first floor of the main and auxiliary plant (EL116~EL126.4, height 10.4m) will utilize the ventilation and safety tunnel as a construction passage to carry out the central guide tunnel and the expansion excavation on both sides of the first floor of the main and auxiliary plant. Therefore, it is necessary to carry out the excavation in sections, including the upstream side 100 (4.25~13.25 above the plant, width 9m), the central guide tunnel 200 (4.75 below the plant~4.25 above the plant, width 9m), and the downstream side 300 (13.75~4.75 below the plant, width 9m).
[0151] The specific steps are as follows:
[0152] S1: Data Preparation
[0153] Upon receiving the quick partitioning command again, retrieve the latest partitioned version number (i.e., the custom model file after quick layering) and update the partitioned version number by incrementing it by 1, making the version number 2. Alternatively, after quick layering, incremental data storage can be omitted, and quick partitioning can be performed directly, in which case the partitioned version number will remain 1.
[0154] S2: Quick Partition Operation
[0155] Click on the first-level spatial node, select the quick partitioning mode, and the system will automatically calculate and draw the three views:
[0156] Front view (XZ plane): Displays the front view profile of the main and auxiliary plant buildings, the X-axis station range (left of the plant 40.4~right of the plant 156.5), and the elevation range (EL116~EL126.4).
[0157] Left view (YZ plane): Displays the outline of the left view section of the main and auxiliary plant buildings, the Y-axis station range (13.75 below the plant to 13.25 above the plant), and the elevation range (EL116 to EL126.4).
[0158] Top view (XY plane): Displays the top view profile of the main and auxiliary plant buildings, with the X-axis station range (40.4 on the left of the plant to 156.5 on the right of the plant) and the Y-axis station range (13.75 below the plant to 13.25 above the plant).
[0159] Select the left view and configure the vertical split offsets: Y=9m and Y=18m. The system automatically calculates two split planes perpendicular to the Y-axis. First, the L01 layer spatial geometry is copied. Without changing the original L01 layer spatial geometry, the copied L01 layer space is split along the Y-axis to form 3 subspaces (regions):
[0160] Downstream side 300: Y∈[-13.75, -4.75]m, chainage range (13.75~4.75 below the factory, width 9m);
[0161] Central pilot tunnel 200: Y∈[-4.75, 4.25]m, chainage range (4.75 below the plant to 4.25 above the plant, width 9m);
[0162] Upstream side 100: Y∈[4.25, 13.25]m, chainage range (4.25~13.25 on the factory site, width 9m);
[0163] Write the segmentation version number to the version number attribute of the subspace, and record the L01 layer space identifier in the parent identifier attribute of the subspace; record the segmentation operation parameters such as the Y value (i.e., Y=-4.75m and Y=4.25m) and the L01 layer space identifier in the operation record attribute of the space root node so that it can be edited and re-segmented.
[0164] S3: Multi-level spatial partitioning, automatic encoding
[0165] Because of the segmentation on the hierarchical space, a subspace is obtained. The system automatically calculates the centroid coordinates of the three subspaces. The encoding rule for the subspace is based on the encoding of the hierarchical space, with the centroid coordinates sorted in order of priority according to the X, Y, and Z coordinates. First, they are sorted by the X-axis and Y-axis coordinates from smallest to largest, and then by the Z-axis coordinate from largest to smallest. The encoding of the subspace is then appended.
[0166] Downstream side: Centroid coordinates X=98.45m, Y=-9.25m, Z=121.2m, coded as L01R01;
[0167] Central tunnel: centroid coordinates X=98.45m, Y=0.25m, Z=121.2m, coded as L01R02;
[0168] Upstream side: centroid coordinates X=98.45m, Y=8.75m, Z=121.2m, coded as L01R03;
[0169] Write the construction space code into the construction space code attribute of the above three district-level spaces.
[0170] S4: Segmentation Components and Spatial Assignment
[0171] Obtain the components under the L01 level space, iterate over each component, copy the geometry of each component, and without changing the original component geometry, use the copied component geometry to perform Boolean operations with the geometry of the three subspaces respectively. The intersection of the entities yields the segmented component, which belongs to the subspace of the corresponding intersection operation. The subspace node identifier is written into the spatial attribute of the segmented component, the construction space code is written into the construction space code attribute of the segmented component, and the parent component identifier is written into the parent identifier attribute of the child component.
[0172] S5: Incremental Data Storage
[0173] Subspaces and segmented components are filtered out using version number 2. The non-geometric attributes of the subspace are stored in the SplitConfig node of the library, and the geometric data is stored in the Geometry node. The two are related through the HAS_GEO relationship. The non-geometric attributes of the segmented components are stored in the SplitEntity node of the library, and the geometric data is stored in the Geometry node. The two are also related through the HAS_GEO relationship. The relationship between the parent and child nodes of SplitConfig and SplitEntity is through the SPLIT relationship.
[0174] S6: Data Management and Query
[0175] Based on the construction schedule requirements, the required component geometric data can be obtained from the library through construction space coding to generate the necessary model files.
[0176] The subspaces of the partitioned region-level space are divided using a fast segmentation method:
[0177] Implementation scenarios: such as Figure 4 As shown, the construction of the central pilot tunnel and its two side expansions on the first floor of the main and auxiliary plant buildings involves a monthly advance of 90 meters, with a cyclic advance of 4 meters, 30 meters ahead of the protective layers on both sides. The monthly expansions on both sides are 180 meters (90 meters on each side), with a cyclic advance of 4 meters, staggered by 30 meters on each side. This embodiment provides a rapid segmentation method, which, according to the preset construction cycle advance, uses the central pilot tunnel as an example to rapidly segment the tunnel. The specific steps are as follows:
[0178] S1: Data Preparation
[0179] Upon receiving the quick partitioning command again, retrieve the latest partitioned version number (i.e., the custom model file after quick partitioning) and update the partitioned version number by incrementing it by 1, resulting in version number 3. Alternatively, you can skip incremental data storage after quick partitioning and directly perform the quick segmentation operation.
[0180] S2: Quick Segmentation Operation
[0181] Click the spatial node of the pilot heading, select the fast segmentation mode, the system automatically calculates the stake number range in the X-axis direction (40.4 to the left of the factory ~ 156.5 to the right of the factory) and the stake number range in the Y-axis direction (4.75 below the factory ~ 4.25 above the factory), select segmentation along the increasing direction of the X-axis, perform segmentation by length, with each segment being 4m in length, the system automatically calculates 49 segmentation planes perpendicular to the X-axis (X=-36.4m, -32.4m, -28.4m, -24.4m, ..., 147.6m, 151.6m, 155.6m). First, copy the spatial geometry of the pilot heading 200, and segment the copied space on the basis of not changing the original spatial geometry to form 50 construction sections:
[0182] Section 1: X∈[-40.4, -36.4]m, 40.4 to the left of the factory ~ 36.4 to the left of the factory;
[0183] Section 2: X∈[-36.4, -32.4]m, 36.4 to the left of the factory ~ 32.4 to the left of the factory;
[0184] Section 3: X∈[-32.4, -28.4]m, 32.4 to the left of the factory ~ 28.4 to the left of the factory; .......
[0186] Section 48: X∈[147.6, 151.6]m, 147.6 to the right of the factory ~ 151.6 to the right of the factory;
[0187] Section 49: X∈[151.6, 155.6]m, 151.6 to the right of the factory ~ 155.6 to the right of the factory;
[0188] Section 50: X∈[155.6, 156.5]m, 155.6 to the right of the factory ~ 156.5 to the right of the factory;
[0189] Write the segmentation version number into the version number attribute of the subspace, record the spatial identifier of the pilot heading in the parent identifier attribute of the subspace, and record the segmentation operation parameters such as the X-axis values (i.e., X=-36.4m, -32.4m, -28.4m, -24.4m, ..., 147.6m, 151.6m and 155.6m) and the spatial identifier of the pilot heading in the operation record attribute of the spatial root node, so as to facilitate editing and re-segmentation.
[0190] S3: Multi-level spatial division and automatic coding
[0191] Since segmentation is performed on the district-level space to obtain block-level spaces, the system automatically calculates the centroid coordinates of the 50 subspaces 201. The coding rule for block-level spaces is based on the coding of the district-level space, the centroid coordinates are sorted in the priority order of X, Y, and Z coordinates, in which the X-axis coordinates and Y-axis coordinates are sorted from small to large first, and then the Z-axis coordinates are sorted from large to small, to append the coding of the block-level space:
[0192] Segment 1: Centroid coordinates X=-38.4m, Y=-0.25m, Z=121.2m, coded as L01R02B001;
[0193] Section 2: Centroid coordinates X=-34.4m, Y=-0.25m, Z=121.2m, coded as L01R02B002;
[0194] Section 3: Centroid coordinates X=-30.4m, Y=-0.25m, Z=121.2m, coded as "L01R02B003"; ......
[0196] Segment 48: Centroid coordinates X=149.6m, Y=-0.25m, Z=121.2m, coded as L01R02B048;
[0197] Segment 49: Centroid coordinates X=153.6m, Y=-0.25m, Z=121.2m, coded as L01R02B049;
[0198] Segment 50: Centroid coordinates X=156.05m, Y=-0.25m, Z=121.2m, coded as L01R02B050;
[0199] Write the construction space code into the construction space code attribute of the above 50 block-level spaces.
[0200] S4: Segmentation Components and Spatial Assignment
[0201] Obtain the components in the space of the central tunnel (L01R02), iterate over each component, copy the geometry of each component, and without changing the geometry of the original component, use the geometry of the copied component to perform Boolean operations with the subspace geometry of 50 block-level spaces respectively. The intersection of the entities yields the segmented component, which belongs to the subspace of the corresponding intersection operation. The subspace node identifier is written into the spatial attribute of the segmented component, the construction space code is written into the construction space code attribute of the segmented component, and the parent component identifier is written into the parent identifier attribute of the segmented component.
[0202] S5: Incremental Data Storage
[0203] Subspaces and segmented components are filtered out using version number 3. The non-geometric attributes of the subspace are stored in the SplitConfig node of the library, and the geometric data is stored in the Geometry node. The two are related through the HAS_GEO relationship. The non-geometric attributes of the segmented components are stored in the SplitEntity node of the library, and the geometric data is stored in the Geometry node. The two are also related through the HAS_GEO relationship. The relationship between the parent and child nodes of SplitConfig and SplitEntity is through the SPLIT relationship.
[0204] S6: Data Management and Query
[0205] Based on the construction schedule requirements, the required component geometric data can be obtained from the library through construction space coding to generate the necessary model files.
[0206] The subspaces of the partitioned area space are divided using a line-cutting method:
[0207] Implementation scenarios: such as Figure 4 As shown, in the first floor of the main and auxiliary plant, the upstream 100 and downstream 300 ends are first excavated at triangular positions, followed by excavation at a cyclic advance of 4m. This embodiment provides a marking and dividing method, which divides the upstream and downstream ends into triangular areas according to construction requirements. For this type of division into spaces that are not axially aligned, the marking and dividing method can be used. The specific steps are as follows:
[0208] S1: Data Preparation
[0209] Upon receiving the rapid partitioning command again, the latest partitioning version number (i.e., the custom model file after rapid segmentation of the central tunnel) is reloaded, and the partitioning version number is updated by incrementing it by 1, resulting in version number 4. Alternatively, incremental data storage can be omitted after rapid segmentation of the central tunnel, and line drawing operations can be performed directly on both the upstream and downstream sides.
[0210] S2: Line drawing and segmentation operation
[0211] Click on the upstream 100 spatial node, select the line drawing and splitting mode, and you can draw seven types of curves: smart lines, rectangles, arcs, straight lines, regular polygons, circles, and splines. Rotate the spatial node to the 3D view, using the XY plane of the 3D view as the working plane. Draw a diagonal straight line on the XY working plane. The system will stretch the drawn splitting line along the normal direction (Z-axis direction) of the XY working plane to generate a 3D splitting plane. First, copy the upstream spatial geometry. Without changing the original upstream spatial geometry, split the copied upstream space, accurately splitting the triangular region 101 and the non-triangular region 102 space. Write the splitting version number into the version number attribute of the subspace, and record the upstream space identifier in the parent identifier attribute of the subspace. Record the splitting operation parameters, such as the start and end coordinates of the drawn line and the upstream space identifier, in the operation record attribute of the spatial root node for editing and re-splitting.
[0212] S3: Multi-level spatial partitioning, automatic encoding
[0213] Because of the segmentation at the region level, a block-level space is obtained. The system automatically calculates the centroid coordinates of triangular region 10 and non-triangular region 102. The encoding rule for the block-level space is based on the encoding of the region level space, with the centroid coordinates sorted sequentially according to the priority of the X, Y, and Z coordinates. First, they are sorted by the X-axis and Y-axis coordinates from smallest to largest, then by the Z-axis coordinate from largest to smallest. The encoding of the block-level space is then appended.
[0214] Triangular region: centroid coordinates X=-35.748m, Y=9.367m, Z=119.582m, coded as L01R03B001;
[0215] Non-triangular region: centroid coordinates X=61.639m, Y=8.077m, Z=119.944m, coded as L01R03B002;
[0216] Write the construction space code into the construction space code attribute of the above two block-level spaces.
[0217] S4: Segmentation Components and Spatial Assignment
[0218] Obtain the components under the upstream space (L01R03), iterate over each component, copy the geometry of each component, and without changing the original component geometry, use the copied component geometry to perform Boolean operations with the geometry of the two subspaces respectively. The intersection of the entities yields the segmented component, which belongs to the subspace of the corresponding intersection operation. Write the subspace node identifier into the spatial attribute of the segmented component, write the construction space code into the construction space code attribute of the segmented component, and write the parent component identifier into the parent identifier attribute of the segmented component.
[0219] S5: Incremental Data Storage
[0220] Subspaces and slicing components are filtered out using version number 4. The non-geometric attributes of the subspaces are stored in the SplitConfig node of the library, and the geometric data is stored in the Geometry node. The two are related through the HAS_GEO relationship. The non-geometric attributes of the slicing components are stored in the SplitEntity node of the library, and the geometric data is stored in the Geometry node. The two are also related through the HAS_GEO relationship. The relationship between the parent and child nodes of SplitConfig and SplitEntity is through the SPLIT relationship.
[0221] S6: Data Management and Query
[0222] Based on the construction schedule requirements, the required component geometric data can be obtained from the library through construction space coding to generate the required model files.
[0223] The subspaces of the hierarchical space are divided using a solid partitioning method:
[0224] Implementation scenario: A ventilation and safety tunnel will be used as a 10% slope leading to the bottom slab of the second floor to serve as the construction access for the second floor. The blasting excavation method adopted for the second floor is as follows: pre-splitting of the central trench with a 3.5m protective layer reserved; when excavating the second floor, a slope needs to be reserved as a construction access for the excavation.
[0225] The specific steps are as follows:
[0226] S1: Data Preparation
[0227] Upon receiving the quick partitioning command again, the latest partitioned version number (i.e., the custom model file after line partitioning) is reloaded, and the partitioning version number is updated by incrementing it by 1, resulting in version number 5. Alternatively, incremental data storage can be skipped after line partitioning, and entity partitioning can be performed directly on the L02 layer space without updating the partitioning version number.
[0228] S2: Entity segmentation operation
[0229] Click on the L02 (Level II) spatial node, select the entity splitting mode, and you can draw nine types of entities in 3D space as splitting tools, including spheres, cylinders, cones, blocks, tori, ellipsoids, elliptical cones, linear entities, and ramps. In this embodiment, select the ramp entity according to the requirements, and fill in the ramp parameters such as ramp positioning, elevation difference, width, main slope slope, side slope slope, and ramp angle. The system automatically creates a ramp in 3D space, first copies the L02 spatial geometry, and then, without changing the original L02 spatial geometry, splits the copied L02 space into ramp subspaces and non-ramp subspaces through geometric Boolean operations with the ramp. Write the splitting version number into the version number attribute of the subspace, record the L02 spatial identifier in the parent identifier attribute of the subspace, and record the splitting operation parameters such as the ramp component identifier and the L02 spatial identifier in the operation record attribute of the spatial root node for editing and re-splitting.
[0230] S3: Multi-level spatial partitioning, automatic encoding
[0231] Because of the partitioning in the hierarchical space, a subspace is obtained. The system automatically calculates the centroid coordinates of the two subspaces. The encoding rule for the subspace is based on the encoding of the hierarchical space, with the centroid coordinates sorted in order of priority according to the X, Y, and Z coordinates. First, they are sorted by the X-axis and Y-axis coordinates from smallest to largest, and then by the Z-axis coordinate from largest to smallest. The encoding of the subspace is then appended.
[0232] Ramp area: centroid coordinates X=-14.262m, Y=-250m, Z=110.011m, coded as L02R01;
[0233] Non-slope area: centroid coordinates X=75.875m, Y=-250m, Z=111.921m, coded as L02R02;
[0234] S4: Segmentation Components and Spatial Assignment
[0235] Obtain the components in the L02 level space, iterate over each component, copy the geometry of each component, and without changing the original component geometry, use the copied component geometry to perform Boolean operations with the ramp, and obtain the segmented components by the intersection and difference of the entities. The segmented components that intersect with the ramp belong to the subspace of the intersection with the ramp, and the segmented components that differ from the ramp belong to the subspace of the difference with the ramp. Write the subspace node identifier into the spatial attribute of the segmented component, write the construction space code into the construction space code attribute of the segmented component, and write the parent component identifier into the parent identifier attribute of the segmented component.
[0236] S5: Incremental Data Storage
[0237] Subspaces and segmented components are filtered out using version number 5. The non-geometric attributes of the subspace are stored in the SplitConfig node of the library, and the geometric data is stored in the Geometry node. The two are related through the HAS_GEO relationship. The non-geometric attributes of the segmented components are stored in the SplitEntity node of the library, and the geometric data is stored in the Geometry node. The two are also related through the HAS_GEO relationship. The relationship between the parent and child nodes of SplitConfig and SplitEntity is through the SPLIT relationship.
[0238] S6: Data Management and Query
[0239] Based on the construction schedule requirements, the required component geometric data can be obtained from the library through construction space coding to generate the required model files.
Claims
1. A method for managing geometric data of a BIM model, characterized in that, Includes the following steps: Step 1: Based on the requirements of the construction phase, obtain the geometric data of the required components using the BIM model of the components; Step 2: Based on the geometric data of all components, calculate the axis-aligned bounding box, form the spatial root node, and initialize the segmentation version number; Step 3: Determine the segmentation mode according to the received segmentation instruction, call the corresponding segmentation algorithm according to the segmentation mode to segment the parent space node, generate the segmented space child nodes, and record the parent space identifier; The segmentation modes include fast layering, fast partitioning, fast segmentation, line segmentation and solid segmentation; Step 4: Calculate the centroid coordinates of each segmented spatial node, and generate a unique construction space code for the spatial node based on the spatial positional relationship of the centroid coordinates according to the multi-level spatial division rules. Step 5: Obtain the components in the spatial nodes, perform geometric operations on the components and the spatial nodes to obtain the segmented components, and write the spatial node identifier and construction space code of the spatial nodes into the component attributes of the segmented components; If another splitting instruction is received, return to step 3; Performing geometric operations on the components and the spatial nodes specifically includes: When using the segmentation mode of rapid layering, rapid partitioning, rapid segmentation, or line division, the intersection operation of the component geometry and the spatial node geometry after segmentation is performed to obtain the segmented component, and the segmented component belongs to the corresponding spatial node. When using the solid segmentation mode, the component geometry and the drawn solid are subjected to intersection and difference operations. The segmented components of the intersection part belong to the intersection subspace, and the segmented components of the difference part belong to the difference subspace. Step 6: Identify the incremental spatial child nodes and segmentation components based on the segmentation version number, separate and store the non-geometric attribute information and geometric data of the spatial child nodes and segmentation components respectively, maintain the parent-child hierarchical relationship, and build the graph library; if a segmentation instruction is received again, update the segmentation version number and return to step 3; Step 7: Obtain the geometric data of the required components from the library according to the construction space code.
2. The method for managing BIM model geometric data according to claim 1, characterized in that, The segmentation modes include fast layering, fast partitioning, fast segmentation, line segmentation, and solid segmentation; The rapid layering: Based on the elevation range of the spatial nodes, a dividing plane is calculated by configuring the elevation offset, and the dividing plane divides the spatial nodes in the direction perpendicular to the Z-axis. The rapid partitioning: Based on the station range and elevation range of the spatial nodes, the offset is configured according to the three-view directions of the spatial nodes to calculate the dividing plane, and the dividing plane divides the spatial nodes in the X-axis, Y-axis or Z-axis directions. The rapid segmentation: Based on the station range of the spatial nodes, by configuring the number of segments or the length of each segment, the cutting plane of each segment is calculated, and the cutting plane divides the spatial nodes in the X-axis or Y-axis direction; The line drawing and segmentation: rotate the three-dimensional view of the spatial node to a preset working plane, draw the segmentation line on the working plane, and stretch the segmentation line along the normal direction of the working plane to generate a 3D segmentation surface to segment the spatial node; The entity segmentation is achieved by drawing entities in three-dimensional space and performing geometric Boolean operations between the spatial nodes and the drawn entities to segment the spatial nodes.
3. The method for managing BIM model geometric data according to claim 2, characterized in that, The drawing of the dividing lines includes polylines, rectangles, arcs, straight lines, regular polygons, and spline curves; the drawing of the entities includes spheres, cylinders, cones, blocks, tori, ellipsoids, elliptical cones, linear entities, and ramps.
4. The method for managing BIM model geometric data according to claim 2, characterized in that, The multi-level space partitioning rules are as follows: the child level obtained by splitting the root node of the space is the hierarchical space, the child level obtained by splitting the hierarchical space is the zone-level space, the child level obtained by splitting the zone-level space is the block-level space, and the child level obtained by splitting the block-level space is still the block-level space.
5. The method for managing BIM model geometric data according to claim 4, characterized in that, The construction space code of the spatial node includes a representative symbol and a numerical code. The construction space code structure of the spatial node in the hierarchical space is a first representative symbol and a numerical code. The construction space code structure of the spatial node in the district-level space is the construction space code of the parent spatial node superimposed with a second representative symbol and a numerical code. When the parent spatial node of the spatial node is located in the district-level space, the construction space code structure of the spatial node is the construction space code of the parent spatial node superimposed with a third representative symbol and a numerical code. When the parent spatial node of the spatial node is located in the block-level space, the construction space code structure of the spatial node is the construction space code of the parent spatial node superimposed with a separator and a numerical code. The numerical code of the spatial node in each level of space is sorted according to the spatial position relationship of the centroid coordinates.
6. The method for managing BIM model geometric data according to claim 5, characterized in that, The encoding rule for the digital encoding of the spatial nodes in the hierarchical space is as follows: the centroid coordinates of the spatial nodes are sequentially numbered according to the priority of the Z, X, and Y axis coordinates. First, they are sorted from largest to smallest according to the Z axis coordinate. When the Z axis coordinates are the same, they are sorted from smallest to largest according to the X axis coordinate. When the X axis coordinates are the same, they are sorted from smallest to largest according to the Y axis coordinate. The encoding is performed sequentially according to the sorting results. The encoding rules for the digital encoding of spatial nodes in the district-level and block-level spaces are as follows: the centroid coordinates of the spatial nodes are sequentially numbered according to the priority of the X, Y, and Z axis coordinates. First, they are sorted by X-axis coordinates from smallest to largest. When the X-axis coordinates are the same, they are sorted by Y-axis coordinates from smallest to largest. If the X-axis coordinates and Y-axis coordinates are the same, they are sorted by Z-axis coordinates from largest to smallest. The encoding is performed sequentially according to the sorting results.
7. The method for managing BIM model geometric data according to claim 6, characterized in that, The centroid coordinates are calculated using the volume centroid formula. Spatial nodes are divided into triangular meshes to obtain a discrete triangular mesh model. The centroid coordinates of the discrete triangular mesh model are then calculated. The weighted average method is used for calculation, and the formula is as follows: ; in, Let i be the volume of the i-th tetrahedron. Let these be the coordinates of the barycenter of the i-th tetrahedron. This represents the total number of tetrahedrons.
8. The method for managing BIM model geometric data according to claim 1, characterized in that, The process involves separating and storing the non-geometric attribute information and geometric data of spatial child nodes and segmented component parts, maintaining parent-child hierarchical relationships, and constructing a graph library, specifically including: The geometric data of the incremental spatial child nodes is converted into mesh triangular facet data and written to the Geometry node of the library. The non-geometric attribute information is written to the SplitConfig node of the library, and the geometric data and non-geometric attribute information of the spatial child nodes are associated. The geometric data of the incremental molecular component will be converted into mesh triangular facet data and written to the Geometry node of the library. The non-geometric attribute information will be written to the SplitEntity node of the library. The geometric data and non-geometric attribute information of the molecular component will be associated. The relationships between parent and child nodes of the SplitConfig node and the SplitEntity node in the library.
9. A management system for geometric data of BIM models, characterized in that, include: The data acquisition module is used to acquire the required geometric data of the components based on the BIM model of the components, according to the needs of the construction phase. The initialization module is used to calculate the axis-aligned bounding box based on the geometric data of all components, form the spatial root node, and initialize the segmentation version number; If a splitting instruction is received again after storage, update the splitting version number; The spatial segmentation module is used to determine the segmentation mode according to the received segmentation instructions, call the corresponding segmentation algorithm to segment the parent spatial node according to the segmentation mode, generate the segmented spatial child nodes, record the parent spatial identifier, and update the segmentation version number; the segmentation modes include fast layering, fast partitioning, fast segmentation, line segmentation, and solid segmentation; The coding module is used to calculate the centroid coordinates of each segmented spatial node, and generate a unique construction space code for the spatial node based on the spatial positional relationship of the centroid coordinates according to the multi-level spatial division rules. The component segmentation module is used to acquire components from spatial nodes, perform geometric operations on the components and spatial nodes to obtain segmented components, and write the spatial node identifier and construction space code of the spatial nodes into the component attributes of the segmented components; the geometric operations on the components and spatial nodes specifically include: When using the segmentation mode of rapid layering, rapid partitioning, rapid segmentation, or line division, the intersection operation of the component geometry and the spatial node geometry after segmentation is performed to obtain the segmented component, and the segmented component belongs to the corresponding spatial node. When using the solid segmentation mode, the component geometry and the drawn solid are subjected to intersection and difference operations. The segmented components of the intersection part belong to the intersection subspace, and the segmented components of the difference part belong to the difference subspace. The storage module is used to identify incremental spatial child nodes and segmentation components according to the segmentation version number, separate and store the non-geometric attribute information and geometric data of spatial child nodes and segmentation components respectively, maintain the parent-child hierarchical relationship, and build a graph library; The application module is used to retrieve the geometric data of the required components from the library based on the construction space code.
Citation Information
Patent Citations
BIM (Building Information Modeling) creation method and device based on construction information management, equipment and medium
CN117744224A
Road area unit division method and system for digital management and control of highway engineering supervision
CN120893798A
