Large BIM model optimization method and system based on intelligent loading

The block loading structure is generated through double classification of component center point and boundary value and spatial index interval judgment. Combined with the angle and distance sorting and filtering mechanism of the visual cone boundary vector, the element level and preload list are dynamically adjusted, which solves the problems of low processing efficiency and poor system stability of the large-scale BIM model, and efficient loading and optimized resource utilization are achieved.

CN120030661AActive Publication Date: 2025-05-23ELLIPTIC EQUATION (SHENZHEN) INFORMATION TECH CO LTD

Patent Information

Application Number
CN202510502495.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-22
Publication Date
2025-05-23
Estimated Expiration
2045-04-22

AI Technical Summary

Technical Problem

When handling large-scale BIM models, the prior art has problems such as wasted computing resources, slow loading speed, heavy system burden and unstable processing process, which is difficult to support the coordinated optimization needs of multi-scale models and heterogeneous terminals.

Method used

The dual classification of the coordinates of the component center point and the boundary value of the boundary box is adopted, and the block loading structure is generated based on spatial index interval judgment. The user's perspective is dynamically matched through the angle and distance sorting filtering mechanism of the view cone boundary vector, and key components in the visual area are preferred. At the same time, the user's perspective translation vector is divided through the sliding window, the potential loading area is predicted and a preload list is generated, the element level is dynamically adjusted to optimize hardware resource utilization, and redundant memory is periodically recovered.

Benefits of technology

It improves the loading efficiency and system stability of the large-scale BIM model, reduces the frequency of invalid data requests, optimizes the utilization rate of hardware resources, adapts to the hardware heterogeneous environment, and ensures the stability of the processing process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120030661A_ABST
    Figure CN120030661A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of computer aided design, in particular to a large-volume BIM model optimization method and system based on intelligent loading, and the method comprises the following steps: carrying out the interval judgment based on the central point of a component and the boundary value of a bounding box, carrying out the dual classification according to the type coding, and generating a block structure according to the surface number and mapping layering; included angle distance judgment sorting is performed by combining view cone vectors to generate a loading sequence, and cosine similarity is calculated based on view angle translation and rotation division behavior segments to screen similar components to generate a preloading list. According to the method, block structures are generated based on double classification of component center points and bounding box boundary values, visual angle priority loading visual areas are dynamically matched in combination with visual cone included angle distance sorting, potential areas are predicted through user visual angle translation and rotation parameters to generate a preloading list, and the precision grade of non-core components is dynamically adjusted according to terminal resource parameters. And inefficient resources are identified by using the timestamp, the stay duration and the frame rate difference value, and synchronous optimization of the loading efficiency and the system performance is realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of computer-aided design, and in particular to a large-scale BIM model optimization method and system based on intelligent loading. Background Art

[0002] The field of computer-aided design technology includes technologies that use computer software and hardware tools to assist in design. This field covers a variety of applications, including product design, architectural design, mechanical design, etc. The core content is to help designers improve work efficiency and design accuracy by providing digital modeling, simulation, analysis and other functions through computers. Computer-aided design can not only model in three-dimensional space, but also perform structural analysis, fluid simulation and other calculations, supporting the entire process from preliminary design to final production. The key to this technical field is to optimize the design process through computer technology, reduce design errors and improve production efficiency.

[0003] Among them, the BIM model optimization method refers to an optimization method proposed for the loading, storage and calculation process of large-scale models in the application of building information modeling (BIM). The patent subject involves optimizing the processing efficiency of large-scale BIM models through intelligent loading technology. Specifically, the technical matters solved by the patent include how to realize intelligent loading of data in large BIM models and reduce the waste of computing resources caused by excessively large models. The optimization method makes model loading more efficient by adjusting algorithms, reorganizing data structures, etc., especially in complex building structures and large-volume data scenarios, which can improve loading speed, reduce system burden, and ensure the stability of the processing process.

[0004] Existing technologies rely on fixed block strategies and do not dynamically divide the loading range in combination with component spatial attributes and type coding, resulting in insufficient model segmentation accuracy. The static field of view screening mechanism lacks real-time angle and distance sorting rules, and cannot dynamically adjust the loading priority according to changes in viewing angles. Redundant data outside the field of view still occupies memory. User behavior prediction uses a single linear model, and does not quantitatively analyze the correlation between the viewing angle movement trajectory and the spatial direction vector. The preloading accuracy is significantly affected by sudden operations. Rendering resource allocation uses a preset level standard, which is not associated with the real-time performance parameters of the terminal, and the hardware resource utilization is uneven. Memory management lacks a time dimension recovery mechanism, and data that has not been called for a long time continues to accumulate, increasing the risk of system crashes. Existing methods are difficult to support the collaborative optimization needs of multi-scale models and heterogeneous terminals. Summary of the invention

[0005] The purpose of the present invention is to solve the shortcomings existing in the prior art and to propose a large-scale BIM model optimization method and system based on intelligent loading.

[0006] In order to achieve the above object, the present invention adopts the following technical solution: a large-scale BIM model optimization method based on intelligent loading, comprising the following steps: S1: Obtain the coordinates of the component center point, the bounding box boundary value and the type code, perform interval judgment between the component coordinates and the spatial index boundary, perform double classification processing in combination with the type code, and then perform complexity stratification on the number of element faces and mapping marks to generate a BIM model loading block structure; S2: calling the BIM model to load the coordinates of the bounding box of the component in the block structure, performing angle and distance judgment with the frustum boundary vector generated by the current viewing angle, screening the components and sorting them by the angle value, and generating a loading sequence of the current viewing area components; S3: Based on the user perspective translation vector and rotation Euler angle in a continuous time period, a sliding window is used to divide the local behavior segment, and weighted average normalization is performed on the translation vector. The set of spatial block direction vectors in the block structure of the BIM model loading is called, and the cosine similarity between unit vectors is calculated. The component labels of the same area are selected as preloading targets, and a BIM component preloading list is generated; S4: Obtain terminal rendering resource parameters, call the component element quantity and mapping mark in the BIM component pre-load list, compare resource requirements with resource upper limits, perform downward adjustment processing on some component element levels, and generate an element level adjustment plan.

[0007] As a further solution of the present invention, the BIM model loading block structure includes spatial block information, type classification information, and complexity level; the current view component loading sequence is specifically a loading sorting list, a perspective priority identifier, and a distance filtering item; the BIM component preloading list includes area labels, behavior pattern recognition, and preloading target identifiers; the graphic element level adjustment scheme includes level mapping rules, resource matching standards, and adjustment strategies.

[0008] As a further solution of the present invention, the step of obtaining the block structure of the BIM model loading is specifically as follows: S101: Obtain the coordinates of the component center point and the boundary value of the bounding box, compare the coordinates of the component center point with the spatial index boundary axis by axis, determine whether the coordinates are in a closed interval formed by the maximum and minimum values ​​of the boundary, and perform secondary classification on the components in the same interval in combination with the type code to generate a spatial index interval classification set; S102: Based on the spatial index interval classification set, the number of primitive faces and the mapping mark are extracted using the formula: ; Obtain the hierarchical complexity coefficient by calculation, and compare the value with the preset complexity threshold to generate the complexity hierarchical parameter; in, represents the layered complexity coefficient, Represents the number of faces of the primitive. Represents a sticker tag. , Respectively represent the maximum and minimum boundary values ​​of the bounding box in the corresponding axis. Calculate the absolute value of the bounding box side length; S103: calling the classification results in the spatial index interval classification set, combining the hierarchical values ​​in the complexity hierarchical parameters, performing dual-condition matching of spatial position and complexity on the components, merging the components with consistent matching results into the same block unit, and generating a BIM model loading block structure.

[0009] As a further solution of the present invention, the step of obtaining the current view component loading sequence is specifically as follows: S201: calling the BIM model to load the bounding box vertex coordinates of each component in the block structure, based on the normal vectors of the six boundary surfaces of the frustum, using the formula: ; Calculate the angle between the bounding box of each component and the boundary surface of the frustum, and traverse all components to generate the bounding box-frustum angle; in, Representative The bounding box and The angle between the boundary surfaces of the frustum, Representative The coordinate vector of the center point of the bounding box of the component, Represents the viewing cone The normal vector of the boundary surface, Representative The center point of the bounding box and the The Euclidean distance between the boundary surfaces of the frustum; S202: Based on the angle between the bounding box and the view cone, components that meet the conditions are screened according to the angle value range, and components beyond a preset distance range are excluded in combination with the straight-line distance data between the center point of the component bounding box and the viewpoint coordinates, so as to generate a visible component identification set; S203: calling the bounding box-view cone angle value, traversing the component angle values ​​in the visible component identification set, establishing a loading priority queue arranged in ascending order of values, and generating a current view component loading sequence.

[0010] As a further solution of the present invention, the steps of obtaining the BIM component preload list are specifically as follows: S301: using a sliding window to divide the local behavior segment of the user's perspective translation vector, multiplying and accumulating the translation vector components at multiple time points in the window with the time attenuation factor, and calculating the normalized translation parameter corresponding to the center point of the window; S302: calling the BIM model to load a set of spatial block direction vectors in the block structure, based on the normalized translation parameter, using the formula: ; Calculate the block directional association strength, and generate a directional similarity set through the joint operation of the vector projection difference value and the spatial weight adjustment factor; in, Representative The window and The block in Directional association strength value under the quasi-dynamic factor, Representative Window The standard deviation of the translation vector components at multiple time points, Represents the inverse of the cosine value of the angle between the block j direction vector and the normalized translation parameter, Represents the ratio of the volume of block j to the square root of the user's viewing angle height, Representative Window The product of the standard deviation of the components of the inner translation vector and the time decay factor, Represents the window The translation vector component at each time point, Represents the total number of time points in the window; S303: Calculate a dynamic threshold based on the direction similarity set, filter the block direction association strength values ​​exceeding the threshold, integrate the corresponding block labels, and generate a BIM component preload list.

[0011] As a further solution of the present invention, the steps of obtaining the primitive level adjustment solution are specifically as follows: S401: Obtain terminal rendering resource parameters, call the component element quantity and mapping mark in the BIM component preload list, and calculate the average visibility parameter using the formula: ; Calculate the component resource requirement measurement values ​​of multiple components and integrate them to form a component resource requirement set; in, Representative The resource requirement metric of each component, Representative The number of elements in a component, Representative The complexity of the mapping markup of each component, Represents the base scaling factor of texture complexity, Represents the visibility deviation influence coefficient, Representative The visibility parameters of each component, Represents the average visibility parameter of all associated components, Represents distance and critical weight factor, Representative The rendering distance of each component, Representative The scenario criticality coefficient of each component; S402: Based on the component resource requirement set, compare the resource requirement metric values ​​of multiple components with the preset resource upper limit value item by item, select the components whose resource requirement metric values ​​exceed the upper limit value, and generate an over-limit component identification set; S403: According to the over-limit component identification set, the primitive level of the identified component is gradually lowered until the resource demand metric value after the reduction meets the resource upper limit constraint, and a primitive level adjustment plan is generated.

[0012] As a further embodiment of the present invention, the method further comprises: S5: calling the loaded component number in the primitive level adjustment scheme, obtaining the loading timestamp, the viewing angle retention time and the frame rate difference, determining the component number that meets the low retention and frame rate drop conditions, and establishing a list of unloadable components; The list of uninstallable components specifically includes uninstall component identifiers, time matching information, and frame rate monitoring indicators.

[0013] As a further solution of the present invention, the step of obtaining the list of uninstallable components is specifically as follows: S501: calling the loaded component number in the primitive level adjustment scheme, reading the loading timestamp in the component registration information from the system memory, collecting the viewing angle stay time of the user's viewing angle, calculating the frame rate difference between the current frame rate and the preset reference frame rate, merging the three data into a unified format and verifying the integrity, and generating a component basic data set; S502: Based on the component basic data set, the formula is used: ; Calculate the unloading priority coefficient, store the component numbers whose coefficients exceed the dynamic determination threshold into a temporary set, and generate a candidate unloading set; in, Represents the uninstall priority coefficient of the component, Represents the difference between the current actual frame rate and the preset reference frame rate. Represents the viewing time of a single component, Represents the arithmetic mean of the viewing time of all components, Represents the current system timestamp, Represents the loading timestamp of a single component, Represents an exception handling constant to avoid the denominator being zero; S503: Traverse the candidate uninstallation set, sort them from high to low according to the uninstallation priority coefficient, calculate the difference between the system timestamp and the loading timestamp, if the difference is less than the dynamic loading cycle threshold, retain the component, if the difference is greater than or equal to the dynamic loading cycle threshold, intercept the first N items in order, and generate a list of uninstallable components.

[0014] A large-volume BIM model optimization system based on intelligent loading, the large-volume BIM model optimization system based on intelligent loading is used to execute the large-volume BIM model optimization method based on intelligent loading, the system comprises: The component hierarchical block module obtains the coordinates of the component center point and the bounding box boundary value, combines the type code for double classification, divides the complexity level according to the value of the element surface and the mapping mark status, and generates a BIM model loading block structure containing spatial distribution and hierarchical characteristics; The view screening and sorting module calls the bounding box coordinates of the BIM model loading block structure, calculates the distance value between the component center point and the view cone boundary, screens the components that meet the visible threshold, sorts them according to the cosine value of the angle between the viewpoint direction vector and the component vector, and generates the current view component loading sequence; The behavior prediction preloading module uses a sliding window to divide the behavior segments based on the user's perspective translation vector and Euler angle data, performs standard deviation calculation and weighted average normalization on the translation vector in the window, calls the BIM model to load the spatial block direction vector set of the block structure, calculates its cosine similarity with the normalized vector, screens the block labels with similarity exceeding the threshold, and combines the unloaded items in the current view component loading sequence to generate a BIM component preloading list; The resource adaptation adjustment module obtains the terminal video memory capacity and texture unit occupancy value, calls the total number of component faces and texture resolution of the BIM component preload list, compares the video memory demand with the remaining value, performs texture resolution downgrade on the over-limit components, and generates a primitive level adjustment plan; The dynamic unloading determination module obtains the dwell time stamp and frame rate difference of the loaded components, calls the loading time parameter of the primitive level adjustment scheme, marks the components whose dwell time is less than the threshold and whose frame rate difference exceeds the limit, and generates a list of unloadable components.

[0015] Compared with the prior art, the advantages and positive effects of the present invention are: In the present invention, dual classification of component center point coordinates and bounding box boundary values ​​is adopted, and a block loading structure is generated in combination with spatial index interval judgment to accurately segment the model data range. The angle of the cone boundary vector and the distance sorting and screening mechanism dynamically match the user's perspective, prioritize the loading of key components in the visible area, and reduce the frequency of invalid data requests. The user's perspective translation vector and the rotation Euler angle are divided by sliding windows and normalized by weighted average to predict potential loading areas and generate a pre-loading list to achieve early resource allocation. The terminal rendering resource parameters compare the number of primitives and map tags, dynamically adjust the accuracy level of non-core components, and optimize hardware resource utilization. The loading timestamp and frame rate difference are linked to identify inefficient resources, and redundant memory is periodically recovered to avoid cumulative performance degradation. This method achieves simultaneous improvement of loading efficiency and system stability, and is particularly suitable for hardware heterogeneous environments. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1 It is a schematic diagram of the workflow of the present invention; Figure 2 A flowchart of the steps for obtaining the block structure loaded in the BIM model of the present invention; Figure 3 A flowchart of the steps for obtaining the current view component loading sequence of the present invention; Figure 4 A flowchart of the steps for obtaining a preload list of BIM components of the present invention; Figure 5 A flowchart of the steps for obtaining the primitive level adjustment solution of the present invention; Figure 6 The figure is a flow chart of the steps for obtaining the list of uninstallable components of the present invention. DETAILED DESCRIPTION

[0017] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention.

[0018] In the description of the present invention, it should be understood that the terms "length", "width", "up", "down", "front", "back", "left", "right", "vertical", "horizontal", "top", "bottom", "inside", "outside" and the like indicate positions or positional relationships based on the positions or positional relationships shown in the drawings, and are only for the convenience of describing the present invention and simplifying the description, rather than indicating or implying that the device or element referred to must have a specific orientation, be constructed and operated in a specific orientation, and therefore cannot be understood as limiting the present invention. In addition, in the description of the present invention, "multiple" means two or more, unless otherwise clearly and specifically defined.

[0019] Embodiment 1: See also Figure 1 The present invention provides a technical solution: a large-volume BIM model optimization method based on intelligent loading, comprising the following steps: S1: Obtain the coordinates of the component center point, the bounding box boundary value and the type code, perform interval judgment between the component coordinates and the spatial index boundary, perform double classification processing in combination with the type code, and then perform complexity stratification on the number of element faces and mapping marks to generate a BIM model loading block structure; S2: Call the BIM model to load the bounding box coordinates of the components in the block structure, make angle and distance judgments with the frustum boundary vector generated by the current viewing angle, filter the components and sort them by angle values, and generate the current view component loading sequence; S3: Based on the user perspective translation vector and rotation Euler angle in a continuous time period, a sliding window is used to divide the local behavior segment, and the translation vector is normalized by weighted average. The set of spatial block direction vectors in the block structure of the BIM model is called to load, and the cosine similarity between unit vectors is calculated. The component labels of the same area are selected as preloading targets, and a BIM component preloading list is generated; S4: Obtain terminal rendering resource parameters, call the component element quantity and mapping mark in the BIM component preload list, compare resource requirements with resource upper limits, perform downgrade processing on some component element levels, and generate element level adjustment plans; S5: Call the loaded component number in the primitive level adjustment scheme, obtain the loading timestamp, viewing angle retention time and frame rate difference, determine the component number that meets the low retention and frame rate reduction conditions, and establish a list of uninstallable components.

[0020] The BIM model loading block structure includes spatial block information, type classification information, and complexity level. The current view component loading sequence is specifically the loading sort list, perspective priority identification, and distance filter items. The BIM component preloading list includes area labels, behavior pattern recognition, and preloading target identification. The element level adjustment plan includes level mapping rules, resource matching standards, and adjustment strategies. The list of unloadable components is specifically the unloading component identification, time matching information, and frame rate monitoring indicators.

[0021] See also Figure 2 , the specific steps for obtaining the block structure of BIM model loading are: S101: Obtain the coordinates of the component center point and the boundary value of the bounding box, compare the coordinates of the component center point with the spatial index boundary axis by axis, determine whether the coordinates are in a closed interval formed by the maximum and minimum values ​​of the boundary, and perform secondary classification on the components in the same interval in combination with the type code to generate a spatial index interval classification set; First, the building information model (BIM) database is retrieved to extract the basic geometric information of each component in the model. For a beam component with ID "L001-001", the three-dimensional coordinates of its center point are obtained: , in meters, and read the minimum and maximum boundary values ​​of its bounding box (BoundingBox) on the X, Y, and Z axes. The X-axis range of the bounding box of the beam component is Meters, the Y axis range is Meters, Z-axis range is Next, the X coordinate value of the center point of this component, 15.5, is compared with the boundary interval of the predefined spatial index grid on the X axis. The spatial index interval division rule of the X axis is set to one interval every 20 meters. The first interval is m, due to , this component is included in this interval on the X axis, and the Y coordinate value 22.3 is continued to be compared. The Y axis index interval is set to one interval every 25 meters. The first interval is m, due to , the Y coordinate falls into this interval, and finally the Z coordinate value is compared to 4.0, and the Z axis index interval is set to an interval every 5 meters. The first interval is m, due to , the Z coordinate falls into this interval. After comprehensive judgment, the "L001-001" beam component is initially determined to belong to the three-dimensional space index cell defined by X:[0,20),Y:[0,25),Z:[0,5). Then, the type code of the component is read, which is "L001", representing "structural beam". The system further classifies this component and all other components whose center points also fall into the X:[0,20),Y:[0,25),Z:[0,5) interval and whose type code is the same as "L001" and gathers them into a subset. For example, another component ID is "L001-002" and the center point coordinates are meters, type code "L001", it will also be classified into this sub-collection, and a wall component with ID "W002-005" has a center point coordinate Meters, although it also falls into the spatial index cell of X:[0,20),Y:[0,25),Z:[0,5), its type code is "W002", which means "interior wall", so it will be classified into another different subset under this cell. The system traverses all components in the BIM model, repeatedly compares the center point coordinates with the spatial index boundary for each component, and performs secondary classification based on the type code until all components are processed. Finally, a component set with the spatial index interval as the first-level classification and the component type code as the second-level classification is generated. This set is the spatial index interval classification set. Some component information examples are as follows: Table 1 Component basic information table ; As shown in Table 1, the ID, type code, center point coordinates and bounding box boundary value information of some components are listed. These data are the basis for spatial index classification.

[0022] S102: Based on the spatial index interval classification set, the number of primitive faces and the mapping mark are extracted using the formula: ; Obtain the hierarchical complexity coefficient by calculation, and compare the value with the preset complexity threshold to generate the complexity hierarchical parameter; in, represents the layered complexity coefficient, Represents the number of faces of the primitive. Represents a sticker tag. , Respectively represent the maximum and minimum boundary values ​​of the bounding box in the corresponding axis. Calculate the absolute value of the bounding box side length; Taking a specific subset of the spatial index interval classification set as an example, this subset corresponds to all beam components with spatial index intervals X:[0,20), Y:[0,25), Z:[0,5) and type code "L001", as shown in Table 1, including 5 beam components L001-001, L001-002, L001-003, L001-004, and L001-005. The system extracts the detailed geometric information of these 5 components from the BIM database and counts the sum of their primitive faces (number of triangles). Assuming that the number of faces of the components are 150, 160, 145, 155, and 165 respectively, the total number of primitive faces of this subset is Then, the system reads the material mapping information of these components and quantifies them according to the preset rules to obtain mapping marks. , the quantization rule is defined as: no texture is assigned a value of 0, using a low-resolution (less than 512x512 pixels) or a single color texture is assigned a value of 1, using a medium-resolution (512x512 to 1024x1024 pixels) or a texture with additional channels such as a normal map is assigned a value of 2, using a high-resolution (greater than 1024x1024 pixels) photorealistic texture or a PBR (Physically Based Rendering) complex material is assigned a value of 3. Here, the five beams all use a standard concrete texture with a resolution of 1024x1024 and an attached normal map, so their The values ​​are all 2, which means the representativeness of this subset The arithmetic mean of the values ​​is Then, the overall bounding box of the set of five beams is calculated, and the boundary of the overall bounding box is obtained by querying the minimum and maximum coordinates of each component bounding box (see Table 1): X-axis , Y axis , Z axis , calculate the side length of each axis: X-axis side length 22.2-7.2=15.2 meters, Y-axis side length 22.6-7.8=14.8 meters, Z-axis side length 4.3-3.3=1.0 meter, select the axis with the largest span for subsequent calculation, that is, X-axis, its maximum boundary value Meters, minimum boundary value Meters, calculate the absolute value of the side length of the axis m, will obtain , ,as well as ; Substitute into the layered complexity coefficient calculation formula: ; in represents the layered complexity coefficient, Represents the total number of primitive faces in the subset (775), represents the quantized map markers of the subset (2), , They represent the maximum (22.2) and minimum (7.0) boundary values ​​of the overall bounding box of the subset on the maximum span axis (X axis). The denominator of the formula is added with 1 to avoid the situation where the side length of the bounding box is zero. The calculation process is: ; The calculated hierarchical complexity coefficient The complexity threshold is compared with the preset complexity threshold. The complexity threshold is set based on the rendering capability of the target hardware platform and the single-frame processing budget under the target frame rate. The performance of scenes with different complexities is tested to determine the The corresponding relationship between the value and the rendering time. The goal is to maintain 60FPS (about 16.67 milliseconds / frame) when an average of 50 blocks are visible. The average processing time budget for each block is about milliseconds, according to the test results, The value is related to the rendering time, setting: When the rendering time is less than 0.2 milliseconds, it is judged as low complexity; when When the rendering time is between 0.2 and 0.4 milliseconds, it is judged as medium complexity; when When the rendering time exceeds 0.4 milliseconds, it is judged as high complexity. It is less than 15, so the beam component subset is judged to be of low complexity and is assigned a stratification parameter of "low complexity". The system repeats the extraction, quantification, calculation and comparison process for all spatial index interval classification subsets generated by S101, and generates the corresponding complexity stratification parameter for each subset.

[0023] The benefit of the formula is that by combining the number of faces of the primitive And the quantized map markers Evaluating rendering workloads together while using maximum bounding box edge length Normalized as a measure of spatial extent so that It can reflect the visual information density and rendering complexity within a unit space.

[0024] S103: calling the classification results in the spatial index interval classification set, combining the hierarchical values ​​in the complexity hierarchical parameters, performing dual-condition matching of spatial position and complexity on the components, merging the components with consistent matching results into the same block unit, and generating a BIM model loading block structure.

[0025] The classification results in the spatial index interval classification set extract the subset marked as "interval X: [0,20), Y: [0,25), Z: [0,5), type L001", and combine it with the complexity layer parameter "low complexity" calculated and generated for it in step S102. The system then retrieves the spatial position information of all other subsets in the model (defined by the spatial index interval to which they belong) and the calculated complexity layer parameters, and searches for other subsets that are spatially adjacent to the current subset and whose complexity is also "low complexity". The criterion for spatial adjacency is that the overall bounding boxes of the two subsets are in contact in at least one axis or the distance is less than a preset small value (such as 0.01 meters). The search finds a subset identified as "Interval X:[20,40), Y:[0,25), Z:[0,5), type L001". Its spatial index interval is adjacent to the current subset on the X axis (the right boundary of X:[0,20) is X=20, and the left boundary of X:[20,40) is also X=20). After S102 calculation, its complexity layering parameter is also "low complexity", which meets the two conditions of spatial proximity and consistency of complexity. The system decides to merge these two subsets (including all L001 beam components in each of them) to form a larger block unit with the unit ID "Block_A". The search continues and encounters the subset identified as "Interval X :[0,20),Y:[0,25),Z:[5,10), type W002", whose spatial index interval is adjacent to the initial subset on the Z axis, but its complexity parameter is calculated as "medium complexity" in S102, which does not meet the complexity consistency condition, so it is not merged with "Block_A". Then it encounters a subset marked as "interval X:[0,20),Y:[25,50),Z:[0,5), type L001", although its complexity is also "low complexity" and its type is the same as L001, its spatial index interval is consistent with any of the original subsets contained in "Block_A" (X:[0,20),Y:[0,25),Z:[5,10), type W002). [0,5) and X:[20,40), Y:[0,25), Z:[0,5)) are not directly adjacent (the Y axis does not touch), then according to the merging strategy (for example, only merge those that are directly in contact), no merging is performed, and the system continues to execute this matching and merging process, merging all subsets that meet the spatial proximity and consistent complexity layering parameters into a block unit until all original subsets are traversed and all possible merging operations are completed, and finally a BIM model loading block structure composed of multiple independent block units (such as Block_A, Block_B, etc.) is formed, and each block unit contains one or more groups of original component subsets that are spatially adjacent and have similar complexity.

[0026] See also Figure 3 , the specific steps for obtaining the current view component loading sequence are: S201: Call the BIM model to load the bounding box vertex coordinates of each component in the block structure, based on the normal vectors of the six boundary surfaces of the frustum, using the formula: ; Calculate the angle between the bounding box of each component and the boundary surface of the frustum, and traverse all components to generate the bounding box-frustum angle; in, Representative The bounding box and The angle between the boundary surfaces of the frustum, Representative The coordinate vector of the center point of the bounding box of the component, Represents the viewing cone The normal vector of the boundary surface, Representative The center point of the bounding box and the The Euclidean distance between the boundary surfaces of the frustum; Load the block structure of the BIM model, select a block unit, and then select a component in the unit for processing. Select component "L001-001" (center point meters, bounding box X: [12.0, 19.0], Y: [22.0, 22.6], Z: [3.8, 4.2] meters), read the 3D coordinates of the 8 vertices of its bounding box, one of the vertices is At the same time, get the camera parameters of the current rendering perspective, including its position coordinates and frustum definition. The current position of the camera is set to meters, the field of view (FOV) is 60 degrees vertically, the aspect ratio is 16:9, the near clipping plane distance is 0.5 meters, and the far clipping plane distance is 150 meters. Based on these parameters, the plane equations of the six boundary planes (near, far, left, right, top, and bottom) of the viewing cone and their unit normal vectors pointing inward are calculated. The near plane normal vector is (Assuming the camera is facing the negative direction of the Z axis), the left plane normal vector is calculated by the camera parameters: , whose modulus is 1. Next, calculate the center point of the bounding box of component L001-001 Meters relative to the camera position The vector of meters is denoted by , ; Calculate the magnitude of this vector: rice; Select the first boundary surface, select the left plane ( ), whose unit normal vector is , its module length , calculate the vector With normal vector The dot product of: ; Then calculate the center point of the component bounding box The shortest Euclidean distance to the left plane of the view frustum , the equation of the left plane is determined by the camera parameters and is in the form of , substitute the center point coordinates to calculate the distance, the calculated distance is Meters, substitute these calculated values ​​into the angle calculation formula: ; Computing component L001-001( ) and the left plane ( ) , the dot product result is 9.709, the vector moduli are 16.30 and 1 respectively, and the distance is 9.15 meters, Using 3.14159, the calculation process is: Spend; For this component L001-001, continue to calculate the angle between it and the other five boundary surfaces of the viewing cone (near, far, right, top, and bottom), and get , , , , The system repeats this process for each component in the block structure loaded by the BIM model, calculates the angle between the center point of the component's bounding box and the six boundary surfaces of the frustum, and stores all components and their corresponding six angle values ​​to form a bounding box-frustum angle set. The formula is useful in that it not only uses the vector angle calculated by the dot product (converted to degrees) to determine the orientation of the component center relative to the boundary surface of the frustum (less than 90 degrees is usually indicated as the inside), but also introduces a distance correction term , this term uses the distance from the center point to the boundary The cube root of and the distance to the viewpoint Adjust so that it is closer to the border ( Small) or close to the viewpoint ( For components with smaller (smaller) dimensions, their additional angle values ​​are relatively small, slightly increasing their potential priority in subsequent sorting, and vice versa, slightly decreasing it.

[0027] S202: Based on the angle between the bounding box and the view cone, components that meet the conditions are screened according to the angle value range, and components beyond the preset distance range are excluded in combination with the straight-line distance data between the center point of the component bounding box and the viewpoint coordinates, so as to generate a visible component identification set; Bounding box-view cone angle set, the system screens each component to determine whether it is in the current field of view. The first step of the screening is to check the angle calculated between the component and the six boundary surfaces of the view cone, and set a valid angle range, which is defined as [0,90] degrees. For a component, if the angle calculated between its center point and all six boundary surfaces of the view cone is If all of the six angles (34.25, 82.1, 18.5, 55.9, 63.7, 29.4) are within the [0, 90] degree closed interval, it is preliminarily considered that the center point of the component is located inside or on the boundary of the viewing cone, and thus it is considered as a potential visible component. Taking component L001-001 as an example, its six angles (34.25, 82.1, 18.5, 55.9, 63.7, 29.4) are all within the [0, 90] degree range, so L001-001 passes this check and is added to the candidate set. Consider another component "P003-008", which is calculated The angle between the component and the right plane is 98.2 degrees. Since 98.2>90, it exceeds the valid range, indicating that the center point of the component is outside the right plane of the viewing cone. The system excludes the component from the candidate set. After completing the angle range check for all components, a preliminary candidate list of visible components is obtained. The second step of screening is distance-based filtering. For each component in the candidate list, the straight-line distance between the center point of its bounding box and the viewpoint (camera position) is extracted, that is, the vector modulus calculated in step S201. , the distance of component L001-001 is 16.30 meters. The system compares this distance with the preset viewing distance range, which is defined by the near clipping plane distance and the far clipping plane distance of the viewing cone, which is [0.5,150] meters in this case. The distance of component L001-001, 16.30 meters, is compared with this range because , the component meets the distance condition and continues to remain in the candidate set. Another component "F005-012" in the candidate set is processed. Its angle check passes, but the calculated distance between the center point and the viewpoint is 175.6 meters. Since 175.6>150, it exceeds the far clipping plane distance, indicating that the component is too far away from the camera. The system excludes it from the candidate set. The system performs this distance range comparison on all components that pass the angle check and removes components that do not meet the conditions. After two steps of screening, the set of components that are finally retained constitutes the visible component identification set of the current frame.

[0028] S203: Call the bounding box-view cone angle number, traverse the component angle values ​​in the visible component identification set, establish a loading priority queue arranged in ascending order of values, and generate a current view component loading sequence.

[0029] Bounding box-view cone angle data, focusing on the components in the determined visible component identification set. In order to determine the loading (or rendering) priority of these visible components, the system needs to calculate a sorting key value for each visible component, and select the angle calculated between the component center point and the near plane (NearPlane) of the view cone. As the main sorting basis, the smaller the value, the closer the component is to the viewpoint (in the line of sight). For component L001-001 in the visible component identification set, For another visible component "W002-005" (assuming it is visible), calculate its angle with the near plane For the visible component "L001-002", calculate its The system traverses all components in the visible component identification set and extracts the angle values ​​calculated between each of them and the near plane. , and then these components and their corresponding The values ​​are constructed into a list, such as: [(L001-001,82.1), (W002-005,75.5), (L001-002,88.0), (other visible components, corresponding angle values)], and finally, the system The numerical values ​​are sorted in ascending order, with smaller values ​​at the front. The sorted list becomes: [(W002-005,75.5),(L001-001,82.1),(L001-002,88.0),…other components in ascending order]. This ascending component ID list constitutes the final current view component loading sequence. The components at the front of the sequence have higher loading priority.

[0030] See also Figure 4 , the specific steps for obtaining the BIM component preload list are: S301: using a sliding window to divide the local behavior segment of the user's perspective translation vector, multiplying and accumulating the translation vector components at multiple time points in the window with the time attenuation factor, and calculating the normalized translation parameter corresponding to the center point of the window; The system continuously monitors and records the position changes of the user's perspective (camera) in three-dimensional space to capture its translation behavior. A recording interval is set to 0.05 seconds. In the past 1 second, the system records 1 / 0.05=20 camera position points. , each position point is a three-dimensional world coordinate (x, y, z) in meters. By calculating the position difference between adjacent time points, we get 20-1=19 translation vectors: , ,…, , each vector represents the displacement within 0.05 seconds. The system uses the sliding window method to analyze this vector sequence. The width of the sliding window is set to 0.5 seconds, including 0.5 / 0.05=10 time points, that is, 9 translation vectors. The sliding step of the window is set to 0.25 seconds. The first window covers time points 1 to 10 (including vector to ), and the second window covers time points 6 to 15 (including the vector to ), and so on, consider the first window (time points 1-10), extract the 9 translation vectors in the window to In order to reflect that recent movement is more important than long-term movement, a time decay factor is introduced, and the decay factor adopts an exponential decay form ,in is the timestamp of the center of the window (time point 5.5), is a vector Corresponding timestamp (from time point n to n+1), decay rate The setting basis is how long you want the previous movement weight to decay to ,set up , so that the movement weight before 0.5 seconds decays to approximately , calculate each translation vector in the window Multiply by its corresponding attenuation factor , and then accumulate these weighted vectors to get the weighted total translation vector , the calculated weighted total translation vector is , in meters, in order to obtain the normalized translation parameter representing the direction, calculate the modulus of the vector: rice; Perform normalization: ; This normalized vector It is the normalized translation parameter corresponding to the center point of the first window, which represents the weighted main movement direction of the user's perspective within the 0.5 second window. As the window slides, the system continuously calculates the corresponding normalized translation parameter for each window center point. The following table shows the translation vector within a window and the calculated weighted vector: Table 2 Example of translation vector and weighted calculation within the window (window 1: time points 1-10) ; See Table 2, which lists the 9 translation vectors recorded in a sliding window and the weighted vector calculated according to the time decay factor, and finally accumulates to obtain the weighted total translation vector , which is used to calculate the normalized translation parameters.

[0031] S302: Call the BIM model to load the spatial block direction vector set in the block structure, based on the normalized translation parameter, using the formula: ; Calculate the block directional association strength, and generate a directional similarity set through the joint operation of the vector projection difference value and the spatial weight adjustment factor; in, Representative The window and The block in Directional association strength value under the quasi-dynamic factor, Representative Window The standard deviation of the translation vector components at multiple time points, Represents the inverse of the cosine value of the angle between the block j direction vector and the normalized translation parameter, Represents the ratio of the volume of block j to the square root of the user's viewing angle height, Representative Window The product of the standard deviation of the components of the inner translation vector and the time decay factor, Represents the window The translation vector component at each time point, Represents the total number of time points in the window; Load the block structure of the BIM model and obtain all the space blocks defined therein and their preset direction vectors. A block may define one or more direction vectors due to its geometric shape or the main direction of its internal components. Select the first Block "Block_A" (merged from S103) mainly extends along the positive direction of the X axis, and its main direction vector is set to At the same time, obtain the latest time window calculated in step S301 (For example, the 10th window) corresponds to the normalized translation parameter , calculate the directional correlation strength between the window and the block (Since k in the formula does not specify multiple types of dynamic factors, it is assumed here that k=1), it is necessary to calculate the various parameters in the formula: Representative Window The standard deviation of the internal translation vector (considering the X, Y two-dimensional plane movement and ignoring the Z axis) is first calculated by the 9 vectors in the window The average vector , then calculate: ; According to the data in Table 2 (only looking at the x and y components), we can calculate Meters / 0.05 seconds (note that this is the standard deviation of each 0.05 second interval, which needs to be converted into speed units, but the formula seems to use this value directly). To maintain consistency in calculations, all parameters involving speed or displacement are based on a time interval of 0.05 seconds. Representing blocks Direction vector With the normalized translation parameter The reciprocal of the cosine of the angle between the vectors, calculate the cosine of the angle ; but ; Representing blocks Volume The height of the user's current viewing angle The ratio of the square roots of , block "Block_A" contains two original subsets, calculate its total volume Cubic meters, the current user's viewing angle height (the height of the camera's Z coordinate relative to the ground) Meter, calculation ; The unit of this value is , Representative Window Standard deviation of the inner translation vector components (X,Y) The product of the arithmetic mean of the time attenuation factor in the window is used to calculate the 9 The average value ,but ; Represents the window The translation vector (X,Y) components at each time point , calculate the sum of their moduli ; According to the data in Table 2, we can calculate m, substitute these calculated values ​​into the formula: ,Notice , and The units are based on displacement (meters) at 0.05 second intervals, and The unit is , directly substitute into the calculation: ; This value is the window With chunking The main direction of the correlation strength, the system for the current window With all blocks and all its preset direction vectors, and continue to calculate for all sliding windows to generate a set of all window-block direction association strength values, namely, the direction similarity set. The formula is beneficial in that it combines the stability of user movement (through , small values ​​indicate stability), consistency between the moving direction and the orientation of the blocks (through , values ​​close to 1 indicate consistent directions), the size of the block itself (through adjusted inversely) and the volume and volatility of recent moves (via The user's movement trend and the possibility of entering a specific spatial block are comprehensively evaluated.

[0032] S303: Calculate a dynamic threshold based on the direction similarity set, filter the block direction association strength values ​​exceeding the threshold, integrate the corresponding block labels, and generate a BIM component preload list.

[0033] Direction similarity set, which contains each time window With each space block Directions The strength of association between , the system needs to set a dynamic threshold To select blocks with high enough correlation strength as the preload target, the dynamic threshold is calculated by counting the most recent M time windows (set M=8, i.e. the most recent seconds) calculated values, calculate the average of these values and standard deviation , and then set a coefficient based on the system's sensitivity to preloading (i.e., how many potential targets are expected to be preloaded) , the dynamic threshold calculation formula is: ,coefficient The value is adjusted based on performance feedback and increased if too much preloading causes resource constraints , if insufficient preloading causes lag, reduce , current setting , assuming that the most recent 8 windows have calculated The average value And standard deviation , then the current dynamic threshold , system traversal and latest time window The correlation strength values ​​of all block directions are related to each With dynamic threshold By comparison, for the main direction of block "Block_A", its correlation strength ,because , the value does not exceed the threshold, Block_A is not selected for this direction, and another block "Block_B" is considered. The correlation strength of a certain direction is calculated as ,because , exceeds the threshold, the label of "Block_B" is recorded, and then the block "Block_C" is considered, and its association strength , also exceeds the threshold, records the label "Block_C", and the system performs all After the values ​​are compared, all The block labels corresponding to the association strength values ​​are collected and deduplicated to obtain a non-repeated block label list, the list content is: ["Block_B", "Block_C"], this list is the currently generated BIM component preload list.

[0034] See also Figure 5 , the specific steps for obtaining the primitive level adjustment scheme are: S401: Obtain terminal rendering resource parameters, call the component element quantity and mapping mark in the BIM component preload list, and calculate the average visibility parameter using the formula: ; Calculate the component resource requirement measurement values ​​of multiple components and integrate them to form a component resource requirement set; in, Representative The resource requirement metric of each component, Representative The number of elements in a component, Representative The complexity of the mapping markup of each component, Represents the base scaling factor of texture complexity, Represents the visibility deviation influence coefficient, Representative The visibility parameters of each component, Represents the average visibility parameter of all associated components, Represents distance and critical weight factor, Representative The rendering distance of each component, Representative The scenario criticality coefficient of each component; First, the real-time rendering resource status of the terminal device is queried through the operating system API or graphics driver interface to obtain the current available video memory (VideoRAM) of 3584MB, the GPU (graphics processing unit) utilization of 68%, the CPU (central processing unit) utilization of 55%, and the average rendering frame rate (FPS) of the past second is 42 frames / second. Then, the system calls the BIM component preload list generated in step S303. The list content is ["Block_B", "Block_C"]. The system extracts the detailed information of all components contained in these two blocks and counts the total number of graphics elements of these components. triangles, and calculate their total texture marking complexity according to the quantization rules of S102 , and calculate the average visibility parameters of these preloaded components , visibility parameters Defined as the ratio of the number of pixels covered by the widget when rendered in the current viewport to the total number of pixels (in the range [0,1]), which is estimated by performing a fast visibility test (such as occlusion query or simplified rasterization) on all widgets in the list to calculate the average visibility parameter Then, the system processes the components in the preload list one by one and calculates their resource requirement metrics. , select a column component "C001-015" in Block_B and read its element quantity from the BIM data The material uses a high-resolution texture (PBR) and is quantized according to the S102 rule. , texture complexity base scaling factor The setting is based on the relationship between the texture memory usage and rendering time consumption relative to the number of vertices consumed in a large number of tests, and is set to , visibility deviation influence coefficient The setting is intended to amplify the resource requirements of components whose visibility is far above the average, and is set based on performance analysis. , calculate the visibility parameters of the column component , it is estimated , calculate the absolute value of visibility deviation , distance and critical weight factor The setting is used to balance the impact of distance and component importance on resource evaluation, according to the scenario design and performance goal setting , get the rendering distance of the column component , obtained by calculating the distance from its center point to the camera position m, read the scene criticality coefficient from the component attributes , the column is the main load-bearing structure, set its , all length units are unified as meters, and other parameters are dimensionless scalars. Substitute them into the resource demand metric calculation formula: ; Calculation of column components C001-015 : ; The system repeats this calculation process for all components in the preload list ["Block_B", "Block_C"], calculating its The formula is useful in that it can be used to calculate the resource requirements of a component by associating these values ​​with its component ID. and The basic complexity of the evaluation component is The item highlights the resource attention to particularly prominent (or particularly inconspicuous, depending on subsequent processing) components, through The item combines distance and importance to adjust resource evaluation, providing a comprehensive and configurable quantitative indicator of component rendering resource requirements.

[0035] S402: Based on the component resource requirement set, compare the resource requirement metric values ​​of multiple components with the preset resource upper limit value item by item, select the components whose resource requirement metric values ​​exceed the upper limit value, and generate an over-limit component identification set; The component resource requirement set, which contains each component in the preload list ["Block_B", "Block_C"] and its calculated resource requirement metric value , component "C001-015" , other components such as "W008-001" , component "D002-030" , the system requires a preset resource upper limit To determine which components have exceeded resource requirements, the upper limit is set dynamically and is calculated based on the real-time resource status of the terminal obtained in S401. The calculation rule is: ,in is a benchmark value, set according to the total resource requirements in a typical scenario. , MB, assuming total video memory MB, target frame rate FPS, current frame rate FPS, then ; This calculated It is the total resource budget cap for the entire preloaded list, but the original process describes the comparison of a single component. Here, it is adjusted to the resource requirement metric cap of a single component, which is also allocated based on the total cap and the number of preloaded components, or a fixed, experience-based single component resource threshold is used. The latter is used here to set the single component resource cap This value is obtained from a large number of component tests. The distribution and performance impact are determined, representing a medium-to-high complexity component resource occupancy metric. The system sets the component resource demand set for each component. With this single component cap For comparison, for component C001-015, ,because , its demand exceeds the upper limit, the system records the component ID "C001-015", for component W008-001, ,because , does not exceed the upper limit, ignore, for component D002-030, ,because , exceeds the upper limit, records its ID "D002-030", and the system completes this comparison for all components in the resource demand set. Component IDs with values ​​exceeding 100 are collected to form an over-limit component identification set, and the set content is: ["C001-015", "D002-030"].

[0036] S403: According to the over-limit component identification set, the primitive level of the identified component is gradually lowered until the resource demand metric value after the reduction meets the resource upper limit constraint, and a primitive level adjustment plan is generated.

[0037] The system performs a Level of Detail (LOD) downgrade operation on each component in the over-limit component identification set ["C001-015", "D002-030"] until its resource demand meets the upper limit constraint. The BIM model has prepared model representations of different levels of detail for components that support LOD, from high to low, they are LOD0, LOD1, and LOD2. The lower the LOD level, the fewer the number of primitive faces and the lower the material complexity. First, component C001-015 is processed. Its original LOD is LOD0. The calculated resource demand , the upper limit of 100 for a single component is exceeded, the system lowers its LOD level to LOD1, and queries the data of the LOD1 model. The number of its primitives (original 320), texture complexity (Original 3), other parameters (visibility , average visibility ,distance ,Criticality ) and the coefficients ( ) remains unchanged, and its resource requirement metric value at LOD1 is recalculated : ; The resource requirements will be reduced With upper limit Compare, because , the resource constraint is met, the system determines that component C001-015 will be loaded or rendered at LOD1 level, and then processes the next component D002-030 in the over-limit set, whose original LOD is LOD0, and the resource requirement , also exceeds 100, downgrade to LOD1, query its LOD1 data and recalculate resource requirements, and get ,because , the constraints are met, the system determines that component D002-030 is loaded at LOD1 level, and the system repeats this process for all components in the over-limit component identification set: check whether it is over-limited, if it is over-limited, lower the LOD by one level, recalculate the resource requirements, and compare again until the upper limit is met or the minimum LOD level is reached. After the processing is completed, the system records all components that need to adjust the LOD and their final LOD level, and forms a primitive level adjustment plan. The plan content is: {"C001-015":LOD1, "D002-030":LOD1}, and other components in the pre-loaded list that do not exceed the limit will be loaded with their default LOD (usually LOD0).

[0038] See also Figure 6 , the specific steps for obtaining the list of uninstallable components are: S501: calling the loaded component number in the primitive level adjustment scheme, reading the loading timestamp in the component registration information from the system memory, collecting the viewing angle stay time of the user's viewing angle, calculating the frame rate difference between the current frame rate and the preset reference frame rate, merging the three data into a unified format and verifying the integrity, and generating a component basic data set; The system accesses the list of components that have been loaded and are active in the current scene, and refers to the primitive level adjustment scheme generated in step S403 (although the scheme is for pre-loading, its logic can be applied to the management of loaded components), selects a currently loaded component, whose ID is "G015-002", and queries the internally maintained component registration information table to read the timestamp when the component is successfully loaded into memory and can be used for rendering , recorded as Seconds (the number of seconds counted since a fixed epoch). At the same time, the system starts the user gaze tracking module (if available) or the dwell time calculation module based on the center area of ​​the cone, analyzes the time the user observes the area containing component G015-002, and obtains the cumulative dwell time of the component in the user's effective field of view (for example, the center area of ​​the screen or near the eye tracking focus). , calculated seconds, then the system obtains the current instantaneous rendering frame rate from the performance monitoring module , the reading is 38FPS, and the target benchmark frame rate set by the system is obtained at the same time , which is set according to the application scenario and user preference. FPS, calculate the difference between the current frame rate and the benchmark frame rate FPS, the system will component ID "G015-002", loading timestamp , Viewing time seconds, and frame rate difference These four data are integrated into a structured record and integrity checked to ensure that all values ​​are valid. The system repeats this information collection, calculation and integration process for all currently loaded and active components (for example, in the visible range or recently rendered), and finally generates a collection containing multiple components and their corresponding basic data. This collection is called the component basic data set. Some data examples are as follows: Table 3 Example of component basic data set ; Table 3 lists the records of some components in the component basic data set, which contains the basic data required for calculating the uninstallation priority.

[0039] S502: Based on the component basic data set, the formula is used: ; Calculate the unloading priority coefficient, store the component numbers whose coefficients exceed the dynamic determination threshold into a temporary set, and generate a candidate unloading set; in, Represents the uninstall priority coefficient of the component, Represents the difference between the current actual frame rate and the preset reference frame rate. Represents the viewing time of a single component, Represents the arithmetic mean of the viewing time of all components, Represents the current system timestamp, Represents the loading timestamp of a single component, Represents an exception handling constant to avoid the denominator being zero; First, calculate the arithmetic mean of the viewing time of all components in the dataset , assuming that there are currently 120 active components in the dataset, their viewing time The sum is seconds, the average residence time seconds, then select the component "G015-002" in the data set for calculation, and its data is , , , extract the frame rate difference FPS, calculate the absolute value of the difference between its viewing angle dwell time and the average value Seconds, get the current system timestamp , recorded as Seconds, calculate the loading time of the component Seconds, set a very small positive constant To prevent the denominator from being zero when calculating square roots, set , substitute these values ​​into the uninstall priority coefficient calculation formula: ; Note that the formula numerator uses To indicate the degree of frame rate drop, make it a positive value (when the frame rate is lower than the benchmark), ,so , calculation component G015-002 : ; Next, set a dynamic decision threshold It is used to preliminarily screen candidate components for uninstallation. The calculation of this threshold is related to the current performance pressure: , set the basic threshold , scaling factor , then the current ; The calculated With dynamic threshold Compare, because , the uninstall priority coefficient of the component exceeds the threshold, and its ID "G015-002" is added to a temporary collection. The system repeats this for all components in the component basic data set. The calculation and threshold comparison process will The value exceeds the current dynamic threshold The component IDs of the components are stored in the temporary set, which is the candidate uninstall set. The formula is beneficial in that it takes the system performance pressure (through The greater the pressure, the greater the item), the user's attention to the component (through The greater the difference from the average attention, the higher the priority) and the time the component has been loaded (through It is reflected in the denominator, the longer the loading time, the lower the priority) and quantifies the priority of each component being unloaded.

[0040] S503: Traverse the candidate uninstallation set, sort them from high to low according to the uninstallation priority coefficient, calculate the difference between the system timestamp and the loading timestamp, if the difference is less than the dynamic loading cycle threshold, retain the component, if the difference is greater than or equal to the dynamic loading cycle threshold, intercept the first N items in order, and generate a list of uninstallable components.

[0041] Candidate uninstall set, which contains all uninstall priority coefficients Exceeding dynamic threshold The component ID and its corresponding The value set is: [{G015-002,6.618},{H008-011,8.950},{K020-005,5.820},{M101-001,7.105}]. The system first The values ​​are sorted in descending order, with the highest priority at the front. The sorted list is: [{H008-011,8.950},{M101-001,7.105},{G015-002,6.618},{K020-005,5.820}]. Next, the dynamic loading cycle threshold is introduced. The concept of , in order to avoid components being repeatedly loaded and unloaded in a short period of time, the threshold is set based on the average loading time of the component and a stability factor , the calculation formula is , obtained by statistical historical loading data Seconds, set to ensure stability ,but seconds, the system checks the components in the sorted list one by one and calculates their loading time , and compare that duration to seconds to compare, process the first component H008-011, and query its ,calculate seconds, because , the loading time of the component is less than one cycle, the system decides to temporarily retain the component, remove it from the list to be unloaded, and process the second component M101-001. ,calculate seconds, because , meet the loading cycle conditions, keep it in the list to be unloaded, and process the third component G015-002. seconds (from S502), because , does not meet the cycle conditions, remove, process the fourth component K020-005, ,calculate seconds, because , does not meet the cycle conditions, remove, after the loading cycle screening, the list to be uninstalled only contains: [{M101-001,7.105}], finally, the system determines the number of components to be uninstalled N based on the current resource requirements (for example, how much memory needs to be released or how much the frame rate needs to be increased), from the components that have been filtered by the cycle and are still in Select the first N items in the list to be uninstalled in descending order. In this example, if the system determines that one component needs to be uninstalled, the first item in the list is selected, and the final list of uninstallable components generated is: ["M101-001"].

[0042] A large-volume BIM model optimization system based on intelligent loading, the large-volume BIM model optimization system based on intelligent loading is used to execute the large-volume BIM model optimization method based on intelligent loading, and the system includes: The component hierarchical block module obtains the coordinates of the component center point and the bounding box boundary value, combines the type code for double classification, divides the complexity level according to the value of the element surface and the mapping mark status, and generates a BIM model loading block structure containing spatial distribution and hierarchical characteristics; The view screening and sorting module calls the bounding box coordinates of the BIM model loading block structure, calculates the distance between the component center point and the view cone boundary, screens components that meet the visible threshold, sorts them according to the cosine value of the angle between the viewpoint direction vector and the component vector, and generates the current view component loading sequence; The behavior prediction preloading module uses a sliding window to divide the behavior segments based on the user's perspective translation vector and Euler angle data, performs standard deviation calculation and weighted average normalization on the translation vector in the window, calls the BIM model to load the spatial block direction vector set of the block structure, calculates its cosine similarity with the normalized vector, and selects the block labels with similarity exceeding the threshold. Combined with the unloaded items in the current view component loading sequence, a BIM component preloading list is generated; The resource adaptation adjustment module obtains the terminal video memory capacity and texture unit occupancy value, calls the total number of component faces and texture resolution in the BIM component preload list, compares the video memory demand with the remaining value, performs texture resolution downgrade on the over-limit components, and generates a primitive level adjustment plan; The dynamic unloading determination module obtains the dwell time stamp and frame rate difference of the loaded components, calls the loading time parameter of the primitive level adjustment scheme, marks the components whose dwell time is less than the threshold and whose frame rate difference exceeds the limit, and generates a list of unloadable components.

[0043] The above are only preferred embodiments of the present invention and are not intended to limit the present invention in other forms. Any technician familiar with the profession may use the technical contents disclosed above to change or modify them into equivalent embodiments with equivalent changes and apply them to other fields. However, any simple modification, equivalent change and modification made to the above embodiments based on the technical essence of the present invention without departing from the technical solution of the present invention still falls within the protection scope of the technical solution of the present invention.

Claims

1. A large-scale BIM model optimization method based on intelligent loading, characterized in that: The following steps are involved: S1: Obtain the coordinates of the component center point, the bounding box boundary value and the type code, perform interval judgment between the component coordinates and the spatial index boundary, perform double classification processing in combination with the type code, and then perform complexity stratification on the number of element faces and mapping marks to generate a BIM model loading block structure; S2: calling the BIM model to load the coordinates of the bounding box of the component in the block structure, performing angle and distance judgment with the frustum boundary vector generated by the current viewing angle, screening the components and sorting them by the angle value, and generating a loading sequence of the current viewing area components; S3: Based on the user perspective translation vector and rotation Euler angle in a continuous time period, a sliding window is used to divide the local behavior segment, and weighted average normalization is performed on the translation vector. The set of spatial block direction vectors in the block structure of the BIM model loading is called, and the cosine similarity between unit vectors is calculated. The component labels of the same area are selected as preloading targets, and a BIM component preloading list is generated; S4: Obtain terminal rendering resource parameters, call the component element quantity and mapping mark in the BIM component pre-load list, compare resource requirements with resource upper limits, perform downward adjustment processing on some component element levels, and generate an element level adjustment plan.

2. The large-scale BIM model optimization method based on intelligent loading according to claim 1 is characterized in that: The BIM model loading block structure includes space block information, type classification information, and complexity level. The current view component loading sequence is specifically a loading sort list, a perspective priority identifier, and a distance filter item. The BIM component preloading list includes area labels, behavior pattern recognition, and preloading target identifiers. The graphic element level adjustment plan includes level mapping rules, resource matching standards, and adjustment strategies.

3. The large-scale BIM model optimization method based on intelligent loading according to claim 2 is characterized in that: The steps for obtaining the block structure of the BIM model loading are specifically as follows: S101: Obtain the coordinates of the component center point and the boundary value of the bounding box, compare the coordinates of the component center point with the spatial index boundary axis by axis, determine whether the coordinates are in a closed interval formed by the maximum and minimum values ​​of the boundary, and perform secondary classification on the components in the same interval in combination with the type code to generate a spatial index interval classification set; S102: Based on the spatial index interval classification set, the number of primitive faces and the mapping mark are extracted using the formula: ; Obtain the hierarchical complexity coefficient by calculation, and compare the value with the preset complexity threshold to generate the complexity hierarchical parameter; in, represents the layered complexity coefficient, Represents the number of faces of the primitive. Represents a sticker tag. , Respectively represent the maximum and minimum boundary values ​​of the bounding box in the corresponding axis. Calculate the absolute value of the bounding box side length; S103: calling the classification results in the spatial index interval classification set, combining the hierarchical values ​​in the complexity hierarchical parameters, performing dual-condition matching of spatial position and complexity on the components, merging the components with consistent matching results into the same block unit, and generating a BIM model loading block structure.

4. The large-scale BIM model optimization method based on intelligent loading according to claim 3 is characterized in that: The steps for obtaining the current view component loading sequence are specifically as follows: S201: calling the BIM model to load the bounding box vertex coordinates of each component in the block structure, based on the normal vectors of the six boundary surfaces of the frustum, using the formula: ; Calculate the angle between the bounding box of each component and the boundary surface of the frustum, and traverse all components to generate the bounding box-frustum angle; in, Representative The bounding box and The angle between the boundary surfaces of the frustum, Representative The coordinate vector of the center point of the bounding box of the component, Represents the viewing cone The normal vector of the boundary surface, Representative The center point of the bounding box and the The Euclidean distance between the boundary surfaces of the frustum; S202: Based on the angle between the bounding box and the view cone, components that meet the conditions are screened according to the angle value range, and components beyond a preset distance range are excluded in combination with the straight-line distance data between the center point of the component bounding box and the viewpoint coordinates, so as to generate a visible component identification set; S203: calling the bounding box-view cone angle value, traversing the component angle values ​​in the visible component identification set, establishing a loading priority queue arranged in ascending order of values, and generating a current view component loading sequence.

5. The large-scale BIM model optimization method based on intelligent loading according to claim 4 is characterized in that: The steps for obtaining the BIM component preload list are specifically as follows: S301: using a sliding window to divide the local behavior segment of the user's perspective translation vector, multiplying and accumulating the translation vector components at multiple time points in the window with the time attenuation factor, and calculating the normalized translation parameter corresponding to the center point of the window; S302: calling the BIM model to load a set of spatial block direction vectors in the block structure, based on the normalized translation parameter, using the formula: ; Calculate the block directional association strength, and generate a directional similarity set through the joint operation of the vector projection difference value and the spatial weight adjustment factor; in, Representative The window and The block in Directional association strength value under the quasi-dynamic factor, Representative Window The standard deviation of the translation vector components at multiple time points, Represents the inverse of the cosine value of the angle between the block j direction vector and the normalized translation parameter, Represents the ratio of the volume of block j to the square root of the user's viewing angle height, Representative Window The product of the standard deviation of the components of the inner translation vector and the time decay factor, Represents the window The translation vector component at each time point, Represents the total number of time points in the window; S303: Calculate a dynamic threshold based on the direction similarity set, filter the block direction association strength values ​​exceeding the threshold, integrate the corresponding block labels, and generate a BIM component preload list.

6. The large-scale BIM model optimization method based on intelligent loading according to claim 5 is characterized in that: The steps for obtaining the primitive level adjustment scheme are specifically as follows: S401: Obtain terminal rendering resource parameters, call the component element quantity and mapping mark in the BIM component preload list, and calculate the average visibility parameter using the formula: ; Calculate the component resource requirement measurement values ​​of multiple components and integrate them to form a component resource requirement set; in, Representative The resource requirement metric of each component, Representative The number of elements in a component, Representative The complexity of the mapping markup of each component, Represents the base scaling factor of texture complexity, Represents the visibility deviation influence coefficient, Representative The visibility parameters of each component, Represents the average visibility parameter of all associated components, Represents distance and critical weight factor, Representative The rendering distance of each component, Representative The scenario criticality coefficient of each component; S402: Based on the component resource requirement set, compare the resource requirement metric values ​​of multiple components with the preset resource upper limit value item by item, select the components whose resource requirement metric values ​​exceed the upper limit value, and generate an over-limit component identification set; S403: According to the over-limit component identification set, the primitive level of the identified component is gradually lowered until the resource demand metric value after the reduction meets the resource upper limit constraint, and a primitive level adjustment plan is generated.

7. The large-scale BIM model optimization method based on intelligent loading according to claim 6 is characterized in that: The method further comprises: S5: calling the loaded component number in the primitive level adjustment scheme, obtaining the loading timestamp, the viewing angle retention time and the frame rate difference, determining the component number that meets the low retention and frame rate drop conditions, and establishing a list of unloadable components; The list of uninstallable components specifically includes uninstall component identifiers, time matching information, and frame rate monitoring indicators.

8. The large-scale BIM model optimization method based on intelligent loading according to claim 7 is characterized in that: The steps for obtaining the list of uninstallable components are specifically as follows: S501: calling the loaded component number in the primitive level adjustment scheme, reading the loading timestamp in the component registration information from the system memory, collecting the viewing angle stay time of the user's viewing angle, calculating the frame rate difference between the current frame rate and the preset reference frame rate, merging the three data into a unified format and verifying the integrity, and generating a component basic data set; S502: Based on the component basic data set, the formula is used: ; Calculate the unloading priority coefficient, store the component numbers whose coefficients exceed the dynamic determination threshold into a temporary set, and generate a candidate unloading set; in, Represents the uninstall priority coefficient of the component, Represents the difference between the current actual frame rate and the preset reference frame rate. Represents the viewing time of a single component, Represents the arithmetic mean of the viewing time of all components, Represents the current system timestamp, Represents the loading timestamp of a single component, Represents an exception handling constant to avoid the denominator being zero; S503: Traverse the candidate uninstallation set, sort them from high to low according to the uninstallation priority coefficient, calculate the difference between the system timestamp and the loading timestamp, if the difference is less than the dynamic loading cycle threshold, retain the component, if the difference is greater than or equal to the dynamic loading cycle threshold, intercept the first N items in order, and generate a list of uninstallable components.

9. A large-scale BIM model optimization system based on intelligent loading, characterized in that: According to the large-scale BIM model optimization method based on intelligent loading according to any one of claims 1 to 8, the system comprises: The component hierarchical block module obtains the coordinates of the component center point and the bounding box boundary value, combines the type code for double classification, divides the complexity level according to the value of the element surface and the mapping mark status, and generates a BIM model loading block structure containing spatial distribution and hierarchical characteristics; The view screening and sorting module calls the bounding box coordinates of the BIM model loading block structure, calculates the distance value between the component center point and the view cone boundary, screens the components that meet the visible threshold, sorts them according to the cosine value of the angle between the viewpoint direction vector and the component vector, and generates the current view component loading sequence; The behavior prediction preloading module uses a sliding window to divide the behavior segments based on the user's perspective translation vector and Euler angle data, performs standard deviation calculation and weighted average normalization on the translation vector in the window, calls the BIM model to load the spatial block direction vector set of the block structure, calculates its cosine similarity with the normalized vector, screens the block labels with similarity exceeding the threshold, and combines the unloaded items in the current view component loading sequence to generate a BIM component preloading list; The resource adaptation adjustment module obtains the terminal video memory capacity and texture unit occupancy value, calls the total number of component faces and texture resolution of the BIM component preload list, compares the video memory demand with the remaining value, performs texture resolution downgrade on the over-limit components, and generates a primitive level adjustment plan; The dynamic unloading determination module obtains the dwell time stamp and frame rate difference of the loaded components, calls the loading time parameter of the primitive level adjustment scheme, marks the components whose dwell time is less than the threshold and whose frame rate difference exceeds the limit, and generates a list of unloadable components.

Citation Information

Patent Citations

  • Three-dimensional terrain model real-time smooth drawing method with combination of GPU technology

    CN105336003A

  • Multi-layer step-by-step optimized BIM model lightweight processing method and multi-layer step-by-step optimized BIM model lightweight processing system

    CN110362927A

  • Railway fixed facility BIM model lightweight loading method

    CN112906125A

  • 3D model loading method and device, terminal equipment, storage medium and program product

    CN116954746A

  • Massive true three-dimensional model loading optimization method

    CN117372599A

Cited By

  • BIM (Building Information Modeling) and simulation data fused visual three-dimensional engine system

    CN120472075A

  • A visual 3D engine system integrating BIM and simulation data

    CN120472075B

  • Electromechanical engineering resource allocation method and system based on spatial coupling degree

    CN120851559A

  • Building information model efficient rendering method for reducing loading delay

    CN121073751A

  • Digital twin experience interaction system and method based on lightweight container

    CN121883705A