A method for BIM model disassembly display

By establishing a relative coordinate system and dividing the model into grids in the BIM model, calculating the Manhattan distance and movement strategy, the problem of unclear component details in the disassembled display of the BIM model was solved, and the full unfolding and detailed display of the components were realized.

CN115393546BActive Publication Date: 2026-04-10GUANGZHOU CONSTR ENG DESIGNING INST +6
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GUANGZHOU CONSTR ENG DESIGNING INST
Filing Date
2022-07-27
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

Existing BIM model decomposition and display methods are not effective when unfolding component details, especially for components far from the center of the sphere, where the unfolding effect is not obvious and the component details cannot be fully displayed.

Method used

By establishing a relative coordinate system parallel to the actual coordinate system in the BIM system, dividing the grid in the relative coordinate system, calculating the Manhattan distance and component movement strategy, gradually moving the components to ensure that each component maintains sufficient distance from adjacent components, and finally determining the actual coordinate values ​​of the components in the actual coordinate system, the disassembly and display are completed.

Benefits of technology

This achieves better component unfolding in the BIM model, ensuring a comprehensive display of model details, especially the details of components far from the center of the sphere are clearly displayed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115393546B_ABST
    Figure CN115393546B_ABST
Patent Text Reader

Abstract

The application discloses a BIM model splitting and displaying method, which comprises the following steps: establishing a relative coordinate system and dividing a grid in the relative coordinate system; calculating the distance between each component in the grid containing at least two components and the center point of the grid according to a calculation strategy; taking the component with the minimum distance as a target component, taking other components as remaining components, determining the initial distance between each remaining component and the target component, and moving each target component according to the initial distance through a preset component moving strategy; repeating the above steps until the number of components contained in all grids is less than or equal to 1; and determining the actual coordinate value of each component in the actual coordinate system after moving according to the moving strategy, so as to complete the splitting and displaying of the model to be split and displayed. The application can keep the relative position relationship between components, make all components keep a sufficient distance from adjacent components after splitting, and has a good display effect on model details.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The application relates to a BIM model splitting display method and belongs to the field of building engineering information technology. BACKGROUND

[0002] In recent years, the construction industry is developing more and more rapidly, and the building information model (BIM) technology as a new information technology has been widely applied to various fields of construction projects, and is a new tool for architecture, engineering and civil engineering. The term building information model or building information modeling was coined by Autodesk. It is used to describe computer-aided design that is primarily three-dimensional, object-oriented and related to architecture. Initially, this concept was popularized by Jerry Laiserin to promote the technologies provided by Autodesk, Bentley Systems and Graphisoft to the public. Through the data integration and information integration of the three-dimensional model of the building, information sharing and transmission in the whole life cycle process of project planning, design, construction and operation are realized, and a basis for collaborative work of all construction subjects is provided, which plays an important role in improving production efficiency, saving cost and shortening construction period. In the process of BIM collaborative work, a lightweight BIM model suitable for browser loading is often used, but the display function of the lightweight BIM engine is relatively single. When the details of a component in the model need to be viewed, the component can only be enlarged in the whole model, and the details of the component cannot be fully displayed. For example, the application No. CN201810913254.0 and the application name of the invention are "a BIM display method", which takes the model center as the center of the sphere, and discloses a BIM display method. The related coordinates are obtained through the characteristics of the special model, and the new coordinates are calculated by using the formula to complete the explosion effect display. The Obj model and the stl model are imported into the webpage, the center coordinates of each part can be obtained through the Obj model, the center coordinates of the whole model can be obtained through the stl model, the center coordinates of the whole model are taken as the center point, the part explosion distance is set, the explosion direction is set, the coordinates of each part after explosion are obtained through the formula, the parts are moved to the specified coordinates through animation, and the explosion effect is completed. However, this method has good expansion effect, and the expansion effect of the parts far away from the center of the sphere is not obvious, so it is more suitable for BIM models with few components and simple structure, and the components of the model may be compact, resulting in many components in a certain area and affecting the expansion effect of the components. SUMMARY

[0003] In view of the above technical problems, the application provides a BIM model splitting display method which can improve the expansion effect of components in a BIM model.

[0004] A method for BIM model disassembly display, comprising the following steps:

[0005] A relative coordinate system parallel to the actual coordinate system in the BIM system is established with the minimum corner point of the circumscribed cuboid of the model to be disassembled and displayed as the origin, and a grid is divided in the relative coordinate system according to a preset grid division density;

[0006] A grid containing at least two components is determined as a target grid, and the Manhattan distance between each component in the target grid and the center point of the target grid is calculated according to a preset Manhattan distance calculation strategy;

[0007] The component with the smallest Manhattan distance is taken as a target component and arranged in the target grid;

[0008] The components other than the target component in the target grid are taken as remaining components, and the initial distance between each remaining component in the target grid and the target component is determined, so that each target component moves according to the initial distance through a preset component movement strategy;

[0009] The steps of determining a grid containing at least two components as a target grid, and determining the initial distance between each remaining component in the target grid and the target component, so that each target component moves according to the initial distance through a preset component movement strategy, are repeatedly executed until the number of components contained in all grids is less than or equal to 1;

[0010] According to the correspondence between the relative coordinate system and the actual coordinate system, the actual coordinate value of each component in the actual coordinate system after moving according to the component movement strategy is determined, so as to complete the disassembly and display of the model to be disassembled.

[0011] Further improvement of the above technical solution is that the calculation model for establishing a relative coordinate system parallel to the actual coordinate system in the BIM system with the minimum corner point of the circumscribed cuboid of the model to be disassembled and displayed as the origin is:

[0012]

[0013] In the formula, is the component in the relative coordinate system axis coordinate; is the component in the relative coordinate system axis coordinate; is the component in the relative coordinate system axis coordinate; is the component in the actual coordinate system axis coordinate; is the component In the actual coordinate system Axis coordinates; For components In the actual coordinate system Axis coordinates; The minimum corner point of the circumscribed cuboid of the model to be disassembled in the actual coordinate system. Axis coordinates; The minimum corner point of the circumscribed cuboid of the model to be disassembled in the actual coordinate system. Axis coordinates; The minimum corner point of the circumscribed cuboid of the model to be disassembled in the actual coordinate system. Axis coordinates; This represents the total number of components in the model to be disassembled and displayed.

[0014] The length of the circumscribed cuboid of the model to be disassembled and displayed is used as... The axis is the width of the circumscribed cuboid of the model to be disassembled and displayed. The axis, the height of the circumscribed cuboid of the model to be disassembled and displayed, is used as... axis.

[0015] Furthermore, dividing the grid in the relative coordinate system according to the preset grid division density also includes the following sub-steps;

[0016] The mesh is divided in the relative coordinate system according to the preset mesh density, resulting in the mesh in the relative coordinate system. axis, shaft and The step size in the axial direction; its calculation model is as follows:

[0017]

[0018] In the formula, In a relative coordinate system Step size in the axial direction; In a relative coordinate system Step size in the axial direction; In a relative coordinate system Step size in the axial direction; The length of the circumscribed cuboid of the model to be disassembled and displayed; The width of the outer cuboid of the model to be split and displayed; The height of the circumscribed cuboid of the model to be disassembled and displayed; The preset grid density is used.

[0019] Furthermore, before determining the target mesh as a mesh containing at least two components and calculating the Manhattan distance between each component in the target mesh and the center point of the target mesh according to a preset Manhattan distance calculation strategy, the following steps are also included:

[0020] According to the relative coordinate system axis, axis and The step length of the axis direction, calculate the grid number of each component, its calculation model is:

[0021] , ,

[0022] In the formula, The component In the relative coordinate system The grid number in the axis direction; The component In the relative coordinate system The grid number in the axis direction; The component In the relative coordinate system The grid number in the axis direction; The component In the relative coordinate system The axis coordinate; The component In the relative coordinate system The axis coordinate; The component In the relative coordinate system The axis coordinate; In the relative coordinate system The step length of the axis direction; In the relative coordinate system The step length of the axis direction; In the relative coordinate system The step length of the axis direction.

[0023] Further, the preset Manhattan distance calculation strategy is:

[0024]

[0025] In the formula The component The Manhattan distance from the target grid center point, The component In the relative coordinate system The axis coordinate; The component In the relative coordinate system The axis coordinate; The component In the relative coordinate system The axis coordinate; The component In the relative coordinate system grid number in the axis direction; for the component In the relative coordinate system grid number in the axis direction; for the component In the relative coordinate system grid number in the axis direction; for the relative coordinate system step length in the axis direction; for the relative coordinate system step length in the axis direction; for the relative coordinate system step length in the axis direction.

[0026] Further, determining the initial distance between each remaining component and the target component in the target grid comprises the following sub-steps: calculating the distance between each remaining component and the target component in the target grid in the relative coordinate system axis, axis and axis direction, and the calculation model is:

[0027] , ,

[0028] In the formula, is the initial distance between the remaining component and the target component in the relative coordinate system axis direction; is the initial distance between the remaining component and the target component in the relative coordinate system axis direction; is the initial distance between the remaining component and the target component in the relative coordinate system axis direction; is the initial distance between the remaining component in the relative coordinate system axis coordinate; is the initial distance between the remaining component in the relative coordinate system axis coordinate; is the initial distance between the remaining component in the relative coordinate system axis coordinate; is the initial distance between the target component in the relative coordinate system axis coordinate; is the initial distance between the target component In the relative coordinate system axis coordinates; target member In the relative coordinate system axis coordinates.

[0029] Further, the preset member moving strategy is:

[0030] selecting the axis with the largest absolute value in the distance of each remaining member in the relative coordinate system axis, axis and axis direction as the moving direction to move; the calculation model is:

[0031] ,

[0032] In the formula, is the initial distance of each remaining member and the target member in the relative coordinate system axis direction; is the initial distance of the remaining member and the target member in the relative coordinate system axis direction; is the initial distance of the remaining member and the target member in the relative coordinate system axis direction; is the distance of the remaining member in the relative coordinate system axis, axis and axis direction , , with the largest absolute value; is the distance of the remaining member in the relative coordinate system axis direction;

[0033] If is greater than zero, move one grid in the positive direction of the axis, if is less than zero, move one grid in the negative direction of the axis, the calculation model is:

[0034]

[0035] is the initial distance of the remaining member in the relative coordinate system the grid number in the axis direction of the target component, the target component the grid number in the axis direction of the target component, the grid number in the axis direction of the target component, the remaining component the grid number in the axis direction of the target component, the distance in the axis direction of the target component, the sign function, when > 0, then = 1; when = 0, then = 0; when < 0, then < 0;

[0036] if there are other components in the grid where the remaining component is to be moved to, if the remaining component is moving in the positive direction of the axis, then all components with grid numbers greater than that of the remaining component in the axis direction are moved one grid in the positive direction of the axis, except for the remaining component; if the remaining component is moving in the negative direction of the axis, then all components with grid numbers greater than that of the remaining component in the axis direction are moved one grid in the positive direction of the axis, and the calculation model is:

[0037]

[0038]

[0039]

[0040] ​​​​​​​​​​​​​​​​​​​​​​​​​​​Furthermore, based on the correspondence between the relative coordinate system and the actual coordinate system, before determining the actual coordinate values ​​of each component in the actual coordinate system after moving according to the component movement strategy, the following steps are also included:

[0041] Calculate relative coordinate system The calculation model for the maximum number of grids and the relative size of the grids along the axial direction is as follows:

[0042]

[0043] In the formula, In a relative coordinate system Maximum number of grid cells in the axial direction For components In a relative coordinate system Grid numbering along the axis,

[0044]

[0045] In the formula, in the formula, Let J be the relative dimension of the j-th layer of mesh along the x-axis in the relative coordinate system. Let be the set of lengths of all components in the j-th layer of the grid along the x-axis in the relative coordinate system. If the set is empty, it means that there are no components in the grid of that layer, and the relative length of the grid of that layer is 0. If the set is not empty, then the component with the longest length among all components in that layer is taken, and its length is taken as the relative length of the grid of this layer.

[0046] Furthermore, calculate the relative coordinate system. After determining the maximum number of grid cells along the axis and the relative size of the grid cells, the following steps are also included:

[0047] According to the relative coordinate system The maximum number of grid cells along the axis and the relative size of the grid cells are used to calculate the relative coordinate system of each grid cell. Relative coordinates in a relative coordinate system along the axial direction;

[0048]

[0049] In the formula, and These represent the coordinates and relative dimensions of the j-th layer of the grid along the x-axis in the relative coordinate system. This represents the maximum number of grid cells along the x-axis in the relative coordinate system.

[0050] Similarly, the coordinates of each grid in the relative coordinate system are calculated. shaft and Relative coordinates in a coordinate system relative to the axis direction;

[0051] According to the grid number of the component, the relative coordinates of the component in the relative coordinate system are determined.

[0052] Further, according to the correspondence between the relative coordinate system and the actual coordinate system, the actual coordinate values of each component in the actual coordinate system after moving according to the component moving strategy are determined, including the following sub-steps:

[0053] The relative coordinates of each component in the relative coordinate system after moving according to the component moving strategy are converted into the actual coordinate values of each component after moving according to the component moving strategy according to the correspondence between the relative coordinate system and the actual coordinate system, and the correspondence between the relative coordinate system and the actual coordinate system is

[0054]

[0055] In the formula, is the relative coordinate of the component in the actual coordinate system axis coordinate; is the relative coordinate of the component in the actual coordinate system axis coordinate; is the relative coordinate of the component in the actual coordinate system axis coordinate; is the relative coordinate of the component in the relative coordinate system axis coordinate; is the relative coordinate of the component in the relative coordinate system axis coordinate, is the relative coordinate of the component in the relative coordinate system axis coordinate.

[0056] The above technical solution can be known: the method for splitting and displaying the BIM model provided by the application controls the relative distance of the split components by establishing a relative coordinate system parallel to the actual coordinate system in the BIM system and dividing the grid in the relative coordinate system, so that all components maintain sufficient distance from adjacent components after splitting, and the details of the model to be split and displayed are better displayed.

[0057] The grid containing at least two components is determined as a target grid, the Manhattan distance between each component in the target grid and the center point of the target grid is calculated according to a preset Manhattan distance calculation strategy, the component with the smallest Manhattan distance is taken as a target component, the remaining components in the target grid except the target component are taken as remaining components, the initial distance between each remaining component in the target grid and the target component is determined, so that each target component moves according to the initial distance through a preset component movement strategy, and the steps of determining the target grid containing at least two components as the target grid to determining the initial distance between each remaining component in the target grid and the target component so that each target component moves according to the initial distance through the preset component movement strategy are repeatedly executed until the number of components contained in all grids is less than or equal to 1, so that the components are not too concentrated after splitting, and the actual coordinate value of each component in the actual coordinate system after moving according to the component movement strategy is determined according to the corresponding relationship between the relative coordinate system and the actual coordinate system, so as to complete the splitting and display of the to-be-split model. BRIEF DESCRIPTION OF DRAWINGS

[0058] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings needed to be used in the embodiments or the prior art description. Obviously, the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can also be obtained without creative labor on the basis of these drawings.

[0059] Figure 1 The flow chart of the method for BIM model splitting and display provided by the present application.

[0060] Figure 2 For Figure 1 The flow chart of the sub-step of step s101 in the method.

[0061] Figure 3 For Figure 1 The flow chart of the sub-step of step s104 in the method.

[0062] Figure 4 For Figure 1 The flow chart of the sub-step of step s106 in the method. DETAILED DESCRIPTION

[0063] The technical solutions in the embodiments of the present application will be described clearly and completely in the following with reference to the drawings in the present application. Obviously, the described embodiments are only some embodiments of the present application, but not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor are within the protection scope of the present application.

[0064] A method for splitting and displaying a BIM model, comprising the following steps:

[0065] Reference Figure 1 Step S101 establishes a relative coordinate system parallel to the actual coordinate system in the BIM system with the minimum corner point of the circumscribed cuboid of the model to be split and displayed as the origin, and divides a grid in the relative coordinate system according to a preset grid division density;

[0066] Reference Figure 2 Step S1011 imports a glTF model, i.e., the model to be split and displayed, into a webpage using ThreeJS, and obtains the center coordinates of each component of the model to be split and displayed and the bounding box of the entire model through ThreeJS.

[0067] Step S1012 obtains the minimum corner point of the circumscribed cuboid of the model to be split and displayed.

[0068] The computer program code thereof is as follows:

[0069] this.box = this.getBoundingBox(this.models); / / Obtain the bounding box, i.e., the circumscribed cuboid of the model

[0070] const boxInfo = THREEUtil.getBondingBoxInfo(this.box);

[0071] this.origin = boxInfo.min; / / Obtain the minimum corner point (x0, y0, z0) of the circumscribed cuboid of the model

[0072] Obtain the length, width and height of the circumscribed cuboid of the model to be split and displayed, and the computer program code thereof is as follows:

[0073] this.Lx = boxInfo.lx; / / Length Lx of the circumscribed cuboid

[0074] this.Ly = boxInfo.ly; / / Width Ly of the circumscribed cuboid

[0075] this.Lz = boxInfo.lz; / / Height Lz of the circumscribed cuboid

[0076] Obtain the total number of components of the model to be split and displayed, and the computer program code thereof is as follows:

[0077] this.modelCount = models.length; / / Obtain the total number N of components

[0078] Step S1013: Establish a relative coordinate system parallel to the actual coordinate system in the BIM system, with the smallest corner point of the circumscribed cuboid of the model to be disassembled and displayed as the origin, and convert all components in the model to be disassembled and displayed from the actual coordinate system to the relative coordinate system.

[0079] Its calculation model is as follows:

[0080]

[0081] In the formula, For components In a relative coordinate system Axis coordinates; For components In a relative coordinate system Axis coordinates; For components In a relative coordinate system Axis coordinates; For components In the actual coordinate system Axis coordinates; For components In the actual coordinate system Axis coordinates; For components In the actual coordinate system Axis coordinates; The minimum corner point of the circumscribed cuboid of the model to be disassembled in the actual coordinate system. Axis coordinates; The minimum corner point of the circumscribed cuboid of the model to be disassembled in the actual coordinate system. Axis coordinates; The minimum corner point of the circumscribed cuboid of the model to be disassembled in the actual coordinate system. Axis coordinates; This represents the total number of components in the model to be disassembled and displayed.

[0082] The length of the circumscribed cuboid of the model to be disassembled and displayed is used as... The axis is the width of the circumscribed cuboid of the model to be disassembled and displayed. The axis, the height of the circumscribed cuboid of the model to be disassembled and displayed, is used as... axis;

[0083] Its computer program code is:

[0084] item.center = new THREE.Vector3(item.center.x - this.origin.x, item.center.y - this.origin.y, item.center.z - sorigin.z); / / Convert the center point coordinates of each component to relative coordinates

[0085] item.relativePosition = {

[0086] x: item.model.position.x - item.center.x,

[0087] y: item.model.position.y - item.center.y,

[0088] z: item.model.position.z - item.center.z,

[0089] };

[0090] Step S1014: Mesh the data in the relative coordinate system according to the preset mesh density, and obtain the mesh in the relative coordinate system. axis, shaft and Step size in the axial direction.

[0091] The calculation model is as follows:

[0092]

[0093] In the formula, In a relative coordinate system Step size in the axial direction; In a relative coordinate system Step size in the axial direction; In a relative coordinate system Step size in the axial direction; The length of the circumscribed cuboid of the model to be disassembled and displayed; The width of the outer cuboid of the model to be split and displayed; The height of the circumscribed cuboid of the model to be disassembled and displayed; The preset grid density is used.

[0094] In some other embodiments, the preset mesh density is 1000, and the computer program code for meshing in the relative coordinate system based on 1000 is as follows:

[0095] thisx = thiS.Lx / n;

[0096] this.sy = this.Ly / n;

[0097] this.sz = this.Lz / n;

[0098] Step S1015 calculates the grid number to which each component in the to-be-split display model belongs.

[0099] Its calculation model is:

[0100] , ,

[0101] In the formula, is the grid number in the axis direction of the component in the to-be-split display model in the relative coordinate system; is the grid number in the axis direction of the component in the to-be-split display model in the relative coordinate system; is the grid number in the axis direction of the component in the to-be-split display model in the relative coordinate system; is the grid number in the axis direction of the component in the to-be-split display model in the relative coordinate system; is the grid number in the axis direction of the component in the to-be-split display model in the relative coordinate system; is the axis coordinate of the component in the to-be-split display model in the relative coordinate system; is the axis coordinate of the component in the to-be-split display model in the relative coordinate system; is the axis coordinate of the component in the to-be-split display model in the relative coordinate system; is the axis coordinate of the component in the to-be-split display model in the relative coordinate system; is the step length of the axis direction in the relative coordinate system; is the step length of the axis direction in the relative coordinate system; is the step length of the axis direction in the relative coordinate system. Its computer program code is:

[0102]

[0103] item.mx = Math.floor(item.center.x / this.sx);

[0104] item.my = Math.floor(item.center.y / this.sy);

[0105] ​​​item.mz = Math.floor(item.center.z / this.sz);

[0106] const grid = this.createGrid(item.mx, item.my, item.mz);

[0107] Reference Figure 1 , step S102 determines a grid containing at least two components as a target grid, and calculates the Manhattan distance between each component in the target grid and the center point of the target grid according to a preset Manhattan distance calculation strategy.

[0108] The computer program code for determining a grid containing at least two components as a target grid is as follows:

[0109] this.elements.forEach((item) => {

[0110] const grid = this.getGrid(item.mx, item.my, item.mz);

[0111] if (grid.num> 1 &&!this.gridstatistical[item.mx + "-" + item.my +"-" + item.mz]) {

[0112] this.gridstatistical[item.mx + "-" + item.my + "-" + item.mz] = grid;

[0113] }

[0114] });

[0115] };

[0116] The preset Manhattan distance calculation strategy is as follows:

[0117]

[0118] In the formula, is the Manhattan distance of the component from the center point of the target grid, is the axis coordinate of the component in the relative coordinate system; is the axis coordinate of the component in the relative coordinate system; is the In the relative coordinate system Axis coordinates; For the component In the relative coordinate system Grid number in the axis direction; For the component In the relative coordinate system Grid number in the axis direction; For the component In the relative coordinate system Grid number in the axis direction; For the step length of the axis direction in the relative coordinate system For the step length of the axis direction in the relative coordinate system For the step length of the axis direction in the relative coordinate system For the step length of the axis direction in the relative coordinate system For the step length of the axis direction in the relative coordinate system For the step length of the axis direction in the relative coordinate system

[0119] The computer program code for calculating the Manhattan distance between each component in the target grid and the center point of the target grid is:

[0120] items.forEach((item) => {

[0121] const dx = Math.abs(item.center.x - item.mx - this.sx / 2);

[0122] constdy = Math.abs(item.center.y - item.my - this.sy / 2);

[0123] constdz = Math.abs(item.center.z - item.mz - this.sz / 2);

[0124] item.d = dx + dy + dz;

[0125] Referring to Figure 1 , step S103 selects the component with the smallest Manhattan distance as the target component and arranges it in the target grid. Specifically, the component with the smallest Manhattan distance is not moved.

[0126] The computer program code is:

[0127] igrid.items = [minItem];

[0128] Referring to Figure 1In step S104, the components other than the target component in the target mesh are taken as the remaining components, and the initial distance between each remaining component in the target mesh and the target component is determined, so that each target component moves according to the initial distance through a preset component movement strategy.

[0129] refer to Figure 3 Step S1041: Identify other components in the target mesh besides the target component, and treat them as the remaining components.

[0130] Step S1042 calculates the relative coordinates between each remaining component and the target component in the target mesh. axis, shaft and Distance along the axial direction. Its calculation. The calculation model for distance along the axial direction is as follows:

[0131] , ,

[0132] In the formula, For the remaining components With target component In a relative coordinate system Initial distance along the axis; For the remaining components With target component In a relative coordinate system Initial distance along the axis; For the remaining components With target component In a relative coordinate system Initial distance along the axis; For the remaining components In a relative coordinate system Axis coordinates; For the remaining components In a relative coordinate system Axis coordinates; For the remaining components In a relative coordinate system Axis coordinates; For target components In a relative coordinate system Axis coordinates; For target components In a relative coordinate system Axis coordinates; For target components In a relative coordinate system Axis coordinates.

[0133] calculate shaft and The principle of the calculation model for distance in the axial direction.

[0134] In its calculation, the relative coordinate system between each remaining component and the target component in the target mesh axis, shaft and The computer program code for the distance along the axis is:

[0135] item.dx = item.center.x - minItem.center.x;

[0136] item.dy = item.center.y - minItem.center.y;

[0137] item.dz = item.center.z - minItem.center.z;

[0138] Step S1043: Select each remaining component in the relative coordinate system. axis, shaft and Let the axis with the largest absolute value among the distances along the axial directions be denoted as . The axis is used as the direction of movement. Its calculation model is as follows:

[0139] ,

[0140] In the formula, For each remaining component With target component In a relative coordinate system Initial distance along the axis; For the remaining components With target component In a relative coordinate system Initial distance along the axis; For the remaining components With target component In a relative coordinate system Initial distance along the axis; The shaft is the remaining component. In a relative coordinate system axis, shaft and Distance along the axis , , The axis with the largest absolute value; For the remaining components In a relative coordinate system Distance in the axial direction.

[0141] The computer program code thereof is:

[0142] item.p = 1; / / x-axis moving direction

[0143] if (Math.sign(item.dx) == 1) {

[0144] item.mp = item.mx + 1 * Math.sign(item.dx);

[0145] } else {

[0146] item.mp = item.mx;

[0147] }

[0148] if (Math.abs(item.dy) >Math.abs(item.dx)) {

[0149] item.p = 2; / / y-axis moving direction

[0150] if (Math.sign(item.dy) == 1) {

[0151] item.mp = item.my + 1 * Math.sign(item.dy);

[0152] } else {

[0153] item.mp = item.my;

[0154] }

[0155] if (Math.abs(item.dz) >Math.abs(item.dy)) {

[0156] item.p = 3; / / z-axis moving direction

[0157] if (Math.sign(item.dz) == 1) {

[0158] item.mp = item.mz + 1 * Math.sign(item.dz);

[0159] } else {

[0160] item.mp = item.mz;

[0161] }

[0162] }

[0163] } else if (Math.abs(item.dz) >Math.abs(item.dx)) {

[0164] item.p = 3; / / z-axis movement direction

[0165] if (Math.sign(item.dz) == 1) {

[0166] item.mp = item.mz + 1 * Math.sign(item.dz);

[0167] } else {

[0168] item.mp = item.mz;

[0169] }

[0170] }

[0171] Step S1044, if If it is greater than zero, then to If the axis moves one grid in the positive direction, then If it is less than zero, then go to Move one grid in the negative axis direction. The computational model is as follows:

[0172]

[0173] For the remaining components In a relative coordinate system Grid numbering in the axial direction; For target components In a relative coordinate system Grid numbering in the axial direction For the remaining components In a relative coordinate system Distance along the axial direction; For a sign function, when When > 0, then =1; when When =0, then =0; when When <0, then <0;

[0174] Step S1045: If there are other components in the grid to which the remaining component is to be moved, if the remaining component... It is along If the axis moves in the positive direction, then, excluding the remaining components... In addition, for all The number in the axial direction is greater than The components are all oriented towards Move one grid in the positive direction of the axis; if the remaining components It is along Moving in the negative direction of the axis, for all The number in the axial direction is greater than The components are all oriented towards The axis moves one grid in the positive direction. Its computational model is as follows:

[0175] At that time, Make ,make

[0176] At that time, Make ,make

[0177] In the formula, For the remaining components In a relative coordinate system Distance along the axis, For components In a relative coordinate system Grid numbering in the axial direction For target components In a relative coordinate system Grid number in the axial direction.

[0178] Its computer program code is:

[0179] const grid = this.getGrid(item.mp, item.my, item.mz); / / Check if the grid to be moved contains any components.

[0180] if (!grid) {

[0181] / / If it does not exist, replace it directly.

[0182] this.setGrid(item.mp, item.my, item.mz, {

[0183] items: [item],

[0184] num: 1,

[0185] center: { x: item.mp, y: item.my, z: item.mz},

[0186] });

[0187] return;

[0188] }

[0189] / / exists, then move all related components

[0190] for (let kx = this.densityX - 1; kx>= item.mp; kx--) {

[0191] for (let ky = this.densityY - 1; ky>= 0; ky--) {

[0192] for (let kz = this.densityZ - 1; kz>= 0; kz--) {

[0193] const grid2 = this.getGrid(kx, ky, kz);

[0194] this.setGrid(kx + 1, ky, kz, grid2);

[0195]

[0196]

[0197] }

[0198] Reference Figure 1 , step S105 repeatedly performs the steps of determining a grid containing at least two components as a target grid, determining the initial distance between each remaining component and the target component in the target grid, and moving each target component according to the initial distance by a preset component movement strategy, until the number of components contained in all grids is less than or equal to 1.

[0199] Identify other components in the target grid except the target component as remaining components, and calculate the distance between each remaining component and the target component in the target grid in the directions of the x-axis, y-axis and z-axis of the relative coordinate system, and select the axis with the maximum absolute value among the distances of each remaining component in the directions of the x-axis, y-axis and z-axis of the relative coordinate system as the axis, axis and axis. ​​​​​The axis is used as the direction of movement. If it is greater than zero, then to If the axis moves one grid in the positive direction, then If it is less than zero, then go to Move one grid in the negative axis direction. If the remaining component is to be moved to a grid where other components already exist, then... It is along If the axis moves in the positive direction, then, excluding the remaining components... In addition, for all The number in the axial direction is greater than The components all tend towards Move one grid in the positive direction of the axis; if the remaining components It is along Moving in the negative direction of the axis, for all The number in the axial direction is greater than The components all tend towards Move one grid in the positive direction of the axis and repeat the above steps until all grids contain less than or equal to 1 component.

[0200] refer to Figure 1 Step S106 determines the actual coordinate values ​​of each component in the actual coordinate system after moving according to the component movement strategy, based on the correspondence between the relative coordinate system and the actual coordinate system, so as to complete the disassembly and display of the model to be disassembled.

[0201] refer to Figure 4 Step S1061, calculate the relative coordinate system The maximum number of grid cells and the relative size of the grid cells along the axial direction. Its computational model is as follows:

[0202]

[0203] In the formula, In a relative coordinate system Maximum number of grid cells in the axial direction, For components In a relative coordinate system Grid numbering along the axis

[0204]

[0205] In the formula, Let J be the relative dimension of the j-th layer of mesh along the x-axis in the relative coordinate system. Let be the set of lengths of all components in the j-th layer of the grid along the x-axis in the relative coordinate system. If the set is empty, it means that there are no components in the grid of that layer, and the relative length of the grid of that layer is 0. If the set is not empty, then the component with the longest length among all components in that layer is taken, and its length is taken as the relative length of the grid of this layer.

[0206] Step S1062, calculate the maximum grid number and the relative size of the grid in the relative coordinate system in the axis direction. The calculation model is

[0207]

[0208] In the formula, is the maximum grid number in the relative coordinate system in the axis direction, is the component grid number in the relative coordinate system in the axis direction,

[0209]

[0210] The computer program code is:

[0211] for (let kx = 0; kx<this.densityX; kx++) {

[0212] let maxLx = 0; / / This layer maximum distance

[0213] for (let ky = 0; ky<this.densityY; ky++) {

[0214] for (let kz = 0; kz<this.densityZ; kz++) {

[0215] const grid = this.getGrid(kx, ky, kz);

[0216] if (!grid) {

[0217] / / If the grid is empty

[0218] continue;

[0219] }

[0220] grid.lx = 0;

[0221] / / Sum up the component length under the grid

[0222] grid.items.forEach((item) => {

[0223] grid.lx += item.lx;

[0224] });

[0225] / / compare to get the max distance

[0226] maxLx = Math.max(maxLx, grid.lx);

[0227] }

[0228] }

[0229] / / set the distance of this layer

[0230] this.maxLxArr[kx] = maxLx;

[0231] nextXGrid.center["x"] = lastGridX + this.maxLxArr[kx] / 2 +(this.maxLxArr[kx + 1] == 0? 0 : this.myDistance + this.maxLxArr[kx + 1] / 2);

[0232] Step S1063, similarly, calculate the maximum grid number and the relative size of the grid in the direction of the axis and axis of the relative coordinate system.

[0233] Step S1064, according to the grid number of the component, its relative coordinates in the relative coordinate system.

[0234] The computer program code thereof is as follows:

[0235] for (let kx = 0; kx<this.densityX; kx++) {

[0236] for (let ky = 0; ky<this.densityY; ky++) {

[0237] for (let kz = 0; kz<this.densityZ; kz++) {

[0238] const grid = this.getGrid(kx, ky, kz);

[0239] if (!grid) {

[0240] continue;

[0241] }

[0242] Step S1065 moves the relative coordinates of each component in the relative coordinate system after the components are moved according to the component moving strategy, and converts the relative coordinates into actual coordinate values of each component after the components are moved according to the component moving strategy according to the correspondence between the relative coordinate system and the actual coordinate system. The correspondence between the relative coordinate system and the actual coordinate system is

[0243]

[0244] In the formula, is the component in the actual coordinate system axis coordinate; is the component in the actual coordinate system axis coordinate; is the component in the actual coordinate system axis coordinate; is the component in the sub-relative coordinate system axis coordinate; is the component in the relative coordinate system axis coordinate, is the component in the relative coordinate system axis coordinate.

[0245] The method for splitting and displaying a BIM model provided by the application controls the relative distance of the split components by establishing a relative coordinate system parallel to the actual coordinate system in the BIM system and dividing grids in the relative coordinate system, so that all components maintain sufficient distance from adjacent components after being split, and the details of the model to be split and displayed are better displayed.

[0246] The grid containing at least two components is determined as a target grid, Manhattan distances between each component in the target grid and a center point of the target grid are calculated according to a preset Manhattan distance calculation strategy, a component with the smallest Manhattan distance is taken as a target component, other components in the target grid except the target component are taken as remaining components, initial distances between each remaining component in the target grid and the target component are determined, so that each target component moves according to the initial distance through a preset component moving strategy, and the steps from determining the grid containing at least two components as the target grid to determining the initial distances between each remaining component in the target grid and the target component so that each target component moves according to the initial distance through the preset component moving strategy are repeatedly executed until the number of components contained in all grids is less than or equal to 1, so that the components are not too concentrated after being split, and actual coordinate values of each component in an actual coordinate system after moving according to the component moving strategy are determined according to a corresponding relationship between the relative coordinate system and the actual coordinate system, so as to complete splitting and display of the to-be-split model.

[0247] The embodiment of the present application provides a computer program product, the computer program product comprises a computer program stored on a non-transitory computer readable storage medium, the computer program comprises program instructions, when the program instructions are executed by a computer, the computer executes any one of the above running methods.

[0248] The present application is described with reference to flowcharts and / or block diagrams of the method, device (system), and computer program product according to the embodiments of the present application. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and the combination of the flows and / or blocks in the flowcharts and / or block diagrams can be realized by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing devices to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing devices generate a means for implementing the functions specified in the flowcharts and / or block diagrams. Figure 1 The functions specified in one flow or multiple flows and / or blocks Figure 1 The functions specified in one flow or multiple flows and / or blocks

[0249] These computer program instructions can also be stored in a computer readable storage medium, which can guide the computer or other programmable data processing devices to work in a specific way, so that the instructions stored in the computer readable storage medium produce a product including instruction means, which implements the functions specified in the flowcharts and / or block diagrams. Figure 1 The functions specified in one flow or multiple flows and / or blocks Figure 1 The functions specified in one flow or multiple flows and / or blocks

[0250] These computer program instructions can also be loaded into a computer or other programmable data processing devices, so that a series of operational steps are generated to realize the computer-implemented processes, and the instructions executed on the computer or other programmable devices provide a process for implementing the functions specified in the flowchart Figure 1 one flow or a plurality of flows and / or the functions specified in the block Figure 1 one block or a plurality of blocks.

[0251] The above further describes the present application with specific examples, but it should be understood that the specific description herein should not be construed as limiting the spirit and scope of the present application, and various modifications made by those skilled in the art after reading the specification are within the scope of the present application.

Claims

1. A method for disassembling and displaying a BIM model, characterized in that, Includes the following steps: A relative coordinate system parallel to the actual coordinate system in the BIM system is established with the smallest corner point of the circumscribed cuboid of the model to be disassembled and displayed as the origin. The grid is then divided in the relative coordinate system according to the preset grid division density. A grid containing at least two components is identified as the target grid. The Manhattan distance between each component in the target grid and the center point of the target grid is calculated according to a preset Manhattan distance calculation strategy. The component with the smallest Manhattan distance is selected as the target component and placed in the target grid; The remaining components in the target grid, excluding the target component, are taken as the remaining components. An initial distance is determined between each remaining component in the target grid and the target component, so that each target component moves according to the initial distance using a preset component movement strategy. Repeat the steps from determining the grid containing at least two of the components as the target grid to determining the initial distance between each of the remaining components in the target grid and the target component, so that each of the target components moves according to the initial distance using a preset component movement strategy, until the number of components contained in all grids is less than or equal to 1; Based on the correspondence between the relative coordinate system and the actual coordinate system, the actual coordinate values ​​of each component in the actual coordinate system after moving according to the component movement strategy are determined, so as to complete the splitting and display of the model to be split and displayed.

2. The method for disassembling and displaying a BIM model according to claim 1, characterized in that, The calculation model for establishing a relative coordinate system parallel to the actual coordinate system in the BIM system, with the smallest corner point of the circumscribed cuboid of the model to be disassembled and displayed as the origin, is as follows: ; In the formula, For the component In the relative coordinate system Axis coordinates; For the component In the relative coordinate system Axis coordinates; For the component In the relative coordinate system Axis coordinates; For the component In the actual coordinate system Axis coordinates; For the component In the actual coordinate system Axis coordinates; For the component In the actual coordinate system Axis coordinates; The minimum corner point of the circumscribed cuboid of the model to be disassembled in the actual coordinate system. Axis coordinates; The minimum corner point of the circumscribed cuboid of the model to be disassembled in the actual coordinate system. Axis coordinates; The minimum corner point of the circumscribed cuboid of the model to be disassembled in the actual coordinate system. Axis coordinates; The total number of components in the model to be split and displayed; The length of the circumscribed cuboid of the model to be disassembled is used as... The axis, the width of the circumscribed cuboid of the model to be disassembled and displayed is used as the axis. The axis, the height of the circumscribed cuboid of the model to be disassembled and displayed is used as the axis. axis.

3. The method for disassembling and displaying a BIM model according to claim 2, characterized in that, The process of dividing the grid in the relative coordinate system according to the preset grid division density also includes the following sub-steps; The relative coordinate system is divided into grids according to a preset grid density to obtain the grid in the relative coordinate system. axis, shaft and The step size in the axial direction; its calculation model is as follows: ; In the formula, In the relative coordinate system Step size in the axial direction; In the relative coordinate system Step size in the axial direction; In the relative coordinate system Step size in the axial direction; The length of the circumscribed cuboid of the model to be split and displayed; The width of the circumscribed cuboid of the model to be split and displayed; The height of the circumscribed cuboid of the model to be split and displayed; The preset grid density is used.

4. The method for disassembling and displaying a BIM model according to claim 3, characterized in that, Before determining the target mesh containing at least two of the components, and calculating the Manhattan distance between each component in the target mesh and the center point of the target mesh according to the preset Manhattan distance calculation strategy, the following steps are also included: According to the relative coordinate system axis, shaft and The step size in the axial direction is used to calculate the mesh number to which each component belongs. The calculation model is as follows: , , ; In the formula, For components In the relative coordinate system Grid numbering in the axial direction; For components In the relative coordinate system Grid numbering in the axial direction; For components In the relative coordinate system Grid numbering in the axial direction; For the component In the relative coordinate system Axis coordinates; For the component In the relative coordinate system Axis coordinates; For the component In the relative coordinate system Axis coordinates; In the relative coordinate system Step size in the axial direction; In the relative coordinate system Step size in the axial direction; In the relative coordinate system Step size in the axial direction.

5. The method for disassembling and displaying a BIM model according to claim 4, characterized in that, The preset Manhattan distance calculation strategy is as follows: ; In the formula For components Manhattan distance from the center point of the target grid For the component In the relative coordinate system Axis coordinates; For the component In the relative coordinate system Axis coordinates; For the component In the relative coordinate system Axis coordinates; For components In the relative coordinate system Grid numbering in the axial direction; For components In the relative coordinate system Grid numbering in the axial direction; For components In the relative coordinate system Grid numbering in the axial direction; In the relative coordinate system Step size in the axial direction; In the relative coordinate system Step size in the axial direction; In the relative coordinate system Step size in the axial direction.

6. The method for disassembling and displaying a BIM model according to claim 5, characterized in that, Determining the initial distance between each remaining component in the target mesh and the target component includes the following sub-steps: calculating the relative coordinates between each remaining component in the target mesh and the target component in the target mesh. axis, shaft and The distance along the axial direction is calculated using the following model: , , ; In the formula, For the remaining components With the target component In the relative coordinate system Initial distance along the axis; For the remaining components With the target component In the relative coordinate system Initial distance along the axis; For the remaining components With the target component In the relative coordinate system Initial distance along the axis; For the remaining components In the relative coordinate system Axis coordinates; For the remaining components In the relative coordinate system Axis coordinates; For the remaining components In the relative coordinate system Axis coordinates; For the target component In the relative coordinate system Axis coordinates; For the target component In the relative coordinate system Axis coordinates; For the target component In the relative coordinate system Axis coordinates.

7. The method for disassembling and displaying a BIM model according to claim 6, characterized in that, The preset component movement strategy is as follows: Select each of the remaining components in the relative coordinate system axis, shaft and The axis with the largest absolute value among the distances along the axes is used as the direction of movement; its calculation model is as follows: , ; In the formula, For each of the remaining components With the target component In the relative coordinate system Initial distance along the axis; For the remaining components With the target component In the relative coordinate system Initial distance along the axis; For the remaining components With the target component In the relative coordinate system Initial distance along the axis; The shaft is the remaining component In the relative coordinate system axis, shaft and Distance along the axis , , The axis with the largest absolute value; For the remaining components In the relative coordinate system Distance along the axial direction; like If it is greater than zero, then to If the axis moves one grid in the positive direction, then If it is less than zero, then go to The computational model for moving one grid in the negative axis direction is as follows: ; For the remaining components In the relative coordinate system Grid numbering in the axial direction; For the target component In the relative coordinate system Grid numbering in the axial direction For the remaining components In the relative coordinate system Distance along the axial direction; For a sign function, when When >0, then =1; when When =0, then =0; when When <0, then <0; If the remaining component is to be moved to a grid where other components already exist, if the remaining component It is along If the axis moves in the positive direction, then, apart from the remaining components... In addition, for all The number in the axial direction is greater than The aforementioned components are all oriented towards Move one grid in the positive direction of the axis; if the remaining components It is along Moving in the negative direction of the axis, for all The number in the axial direction is greater than The components all tend towards The computational model for moving one grid in the positive direction of the axis is as follows: At that time, Make ,make ; At that time, Make ,make ; In the formula, For the remaining components In the relative coordinate system Distance along the axis, For components In the relative coordinate system Grid numbering in the axial direction For the target component In the relative coordinate system Grid number in the axial direction.

8. The method for disassembling and displaying a BIM model according to claim 7, characterized in that, Based on the correspondence between the relative coordinate system and the actual coordinate system, before determining the actual coordinate value of each component in the actual coordinate system after moving according to the component movement strategy, the following steps are further included: Calculate the relative coordinate system The calculation model for the maximum number of grids and the relative size of the grids along the axial direction is as follows: ; In the formula, In the relative coordinate system Maximum number of grid cells in the axial direction, For components In the relative coordinate system Grid numbering along the axis ; In the formula, Let J be the relative dimension of the j-th layer of mesh along the x-axis in the relative coordinate system. Let be the set of lengths of all components in the j-th layer of the grid along the x-axis in the relative coordinate system. If the set is empty, it means that there are no components in the grid of that layer, and the relative length of the grid of that layer is 0. If the set is not empty, then the component with the longest length among all components in that layer is taken, and its length is taken as the relative length of the grid of this layer.

9. The method for disassembling and displaying a BIM model according to claim 8, characterized in that, Calculate the relative coordinate system Following the maximum number of grids and the relative size of the grids in the axial direction, the following steps are also included: According to the relative coordinate system The maximum number of grid cells along the axial direction and the relative size of the grid cells are used to calculate the position of each grid cell in the relative coordinate system. Relative coordinates in the relative coordinate system along the axial direction; ; In the formula, and These represent the coordinates and relative dimensions of the j-th layer of the grid along the x-axis in the relative coordinate system. This represents the maximum number of grid cells along the x-axis in the relative coordinate system. Similarly, the coordinates of each grid in the relative coordinate system are calculated. shaft and Relative coordinates in the relative coordinate system along the axial direction; The relative coordinates of a component in the relative coordinate system are determined by its grid number.

10. The method for disassembling and displaying a BIM model according to claim 9, characterized in that, Determining the actual coordinate value of each component in the actual coordinate system after moving according to the component movement strategy, based on the correspondence between the relative coordinate system and the actual coordinate system, includes the following sub-steps: After moving according to the component movement strategy, the relative coordinates of each component in the relative coordinate system are converted into the actual coordinate values ​​of each component after moving according to the correspondence between the relative coordinate system and the actual coordinate system. The correspondence between the relative coordinate system and the actual coordinate system is as follows: ; In the formula, For components In the actual coordinate system Axis coordinates; For components In the actual coordinate system Axis coordinates; For components In the actual coordinate system Axis coordinates; For components In the relative coordinate system Axis coordinates; For components In the relative coordinate system Axis coordinates For components In the relative coordinate system Axis coordinates.

Citation Information

Patent Citations

  • BIM display method

    CN110084888A

  • Building information model-based shell extraction method

    CN108460832A

  • Steel grid construction technology based on BIM lofting and three-dimensional scanning

    CN109184213A