Roof equipment maintenance accessibility calibration method

By extracting the three-dimensional BIM model data of the roof and calibrating the grid node attributes, the problem of roof equipment maintenance accessibility assessment depends on manual and easy to miss is solved, and fast and automatic accessibility analysis and route design are achieved, reducing costs.

CN119648953APending Publication Date: 2025-03-18SHANGHAI CONSTRUCTION FOURTH CONSTRUCTION GROUP CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202411630620.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-15
Publication Date
2025-03-18

AI Technical Summary

Technical Problem

When evaluating the accessibility of roofing equipment maintenance, the prior art relies on manual field inspections or BIM model visual roaming, which consumes a lot of manpower and material resources, relies on experience and is easy to miss, resulting in increased costs in the later stage.

Method used

By extracting the three-dimensional BIM model data of the roof, converting it into triangular surface data, calibrating obstacles in the grid node diagram and node properties that can cross the component grid, determining the starting grid and calculating the accessibility of each grid, and drawing the accessibility grid plan.

Benefits of technology

It realizes rapid and automatic analysis of roof maintenance accessibility, marking through areas and obstacle areas, providing reference for subsequent adjustment plans, initially completing the maintenance route design, and reducing costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119648953A_ABST
    Figure CN119648953A_ABST
Patent Text Reader

Abstract

The invention provides a roof equipment maintenance accessibility calibration method comprising the following steps: calibrating node attributes of barrier grids in a grid node graph NBMap, the node attributes comprising node types and node weights; on the basis of the triangular patch set meshTriangles, node attributes of a spanning component grid are calibrated; based on the calibrated node attribute of the spanning component grid, calibrating the node attribute of the grid of the pipeline which cannot be spanned; based on the grid node graph NBMap and the initial grid, obtaining a grid node graph newBMap; based on the node weight of each grid in the grid node graph newBMap, the accessibility of each grid in the grid node graph newBMap is determined; and drawing the reachability grid plane graph in a three-dimensional space. According to the method, the reachability of roof maintenance is rapidly and automatically analyzed through an intelligent algorithm, the passing area and the obstacle area are marked, the reachable position and the unreachable position of the whole roof are given, reference is provided for subsequent scheme adjustment, maintenance route design is preliminarily completed, and cost is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to a method for calibrating accessibility of roof equipment maintenance. Background Art

[0002] In construction projects, the access conditions on the roof are usually complicated and there are many obstructions. In order to ensure that the maintenance route from the roof stairwell to the mechanical and electrical equipment is unobstructed, the traditional method mainly relies on the owner, property or general contractor to make judgments through field inspections, or conduct visual roaming inspections in the BIM model. However, these methods all have certain limitations, such as the need to consume a lot of manpower and material resources, the inspection results rely on experience, and are prone to omissions, resulting in the later addition of facilities such as horseways and bridges, which increases costs. Summary of the invention

[0003] The object of the present invention is to provide a method for calibrating the accessibility of roof equipment maintenance.

[0004] In order to solve the above problems, the present invention provides a method for calibrating accessibility of roof equipment maintenance, comprising:

[0005] Step 1: Extract the roof 3D BIM model data and convert it into triangular patch data meshTriangles;

[0006] Step 2: Extract the outline of the roof structure plate as the roof boundary and perform meshing to obtain a new mesh node map N_BMap;

[0007] Step 3: calibrate the node attributes of the obstacle grid in the grid node map N_BMap, wherein the node attributes include node type and node weight;

[0008] Step 4: Based on the triangle patch set meshTriangles, calibrate the node attributes that can span the component mesh;

[0009] Step 5: Based on the calibrated node attributes of the spannable component mesh, calibrate the node attributes of the non-spannable pipeline mesh;

[0010] Step 6: Determine the starting grid, and obtain the grid node graph newBMap based on the grid node graph N_BMap and the starting grid;

[0011] Step 7: Determine the reachability of each grid in the grid node graph newBMap based on the node weight of each grid in the grid node graph newBMap;

[0012] Step 8: Based on the reachability of each grid, draw the reachability grid plan in three-dimensional space.

[0013] Furthermore, in the above method, step 1: extracting the three-dimensional BIM model data of the roof and converting it into triangular face data meshTriangles, includes:

[0014] Step 1.1: Open the comprehensive roof RVT model file, extract the roof elements Elements, and obtain the geometric information of the roof elements, that is, the entity ElementSolids represented by BRep, traverse each face ElementFace in ElementSolids, and triangulate each face ElementFace into ElementMesh, where the triangle face in ElementMesh is ElementTriangle, and all the triangle face ElementTriangle are regarded as the roof triangle face set;

[0015] Step 1.2: Extract the linked model in the roof comprehensive RVT model file, where the linked model includes: roof building, structural model and wall hanger, convert the linked model into a model group and then ungroup it into component elements, obtain the geometric information of the normal component elements in the comprehensive RVT model, that is, the entity LinkedElementSolids represented by BRep, traverse each face LinkedElementFace in the entity LinkedElementSolids, and triangulate each face LinkedElementFace into LinkedElementMesh, where the triangle face is LinkedElementTriangle, and all the triangle faces are LinkedElementTriangle as the linked model triangle face set;

[0016] Step 1.3: Merge the roof triangle patch set and the linked model triangle patch set into meshTriangles.

[0017] Furthermore, in the above method, step 2: extracting the roof structure plate outline as the roof boundary and performing meshing processing to obtain a new mesh node map N_BMap includes:

[0018] Step 2.1: Get the roof structure board space bounding box FloorBoundingbox, get the diagonal vertices that enclose FloorBoundingbox in the horizontal plane, use the diagonal vertices as the diagonal vertices of the initial grid, and calculate the grid node graph Bmap with the diagonal vertices of the initial grid and the grid width W_Node, where the grid width W_Node and the human passage width circulationWidth are defined, and W_Node = circulationWidth / 3;

[0019] Step 2.2: Obtain the geometric information of the roof structure plate, and obtain the upper surface contour FloorFace of the entity corresponding to the geometric information of the roof structure plate;

[0020] Step 2.3: Traverse each mesh node in the mesh node map Bmap, calculate the coordinates of each mesh node, use the ray method to determine whether each mesh node is within the upper surface contour FloorFace of the roof structure board, and filter out the mesh nodes outside the upper surface contour FloorFace of the roof structure board from the mesh node map BMap to obtain a new mesh node map N_BMap.

[0021] Furthermore, in the above method, step 2.1 comprises:

[0022] Step 2.1.1, get the spatial bounding box FloorBoundingbox of the floor, and get the minimum point minPoint and maximum point maxPoint of the spatial bounding box, calculate the length length and width width of the spatial bounding box according to the x and y coordinates of the minimum point minPoint and the maximum point maxPoint, and calculate the number of grids in the x direction according to the integer multiple of one-third of the width of the moving line circulationWith Grid number in y direction And generate a grid node graph BMap.

[0023] Furthermore, in the above method, step 2.3 includes:

[0024] Step 2.3.1: Loop through the grid nodes in the grid node map BMap and obtain the center point of the grid;

[0025] Step 2.3.2: Traverse all edges of the upper surface contour FloorFace, and calculate the number of line segments crossings within the range of the line segment projection of the center point point of the mesh, that is, the number of intersections between the ray with the center point point of the mesh and the contour. If crossings is an odd number, the center point point is within the roof contour. Filter out the meshes whose center points are within the roof contour, and generate a new mesh node map N_BMap based on the sieved meshes.

[0026] Furthermore, in the above method, step 3: calibrating node attributes of the obstacle grid in the grid node map N_BMap includes:

[0027] Step 3.1: From the grid node map N_BMap, select building walls, structural columns, railings, electromechanical equipment and firefighting equipment as obstacle elements blockElements, calculate the second space bounding box bbox and the maximum point max and minimum point min of the obstacle elements blockElements, and calculate the grid coordinate set blockGrids occupied by the second space bounding box bbox on the plane based on the maximum point max and minimum point min of the second space bounding box bbox;

[0028] Step 3.2: Traverse the grids in the grid node map N_BMap. If the coordinates of the grid are in the obstacle set blockGrids, set the grid properties to: node type is obstacle BlockMissile, node weight is -2; if the coordinates of the grid are not in the obstacle set blockGrids, perform steps 4 to 5 until every grid node in the grid node map N_BMap is traversed and the weight of each grid node is updated, and then perform step 6.

[0029] Furthermore, in the above method, step 4: based on the triangle patch set meshTriangles, calibrating the node attributes that can span the component mesh includes:

[0030] Step 4.1: Define the height limit for human traffic circulationHeight according to the space occupancy, the crossable height pipeHeight, and take each grid node in the grid node map N_BMap;

[0031] Step 4.2: Create a spatial geometric entity NodeSolid1 with the square bottom shape of the grid that is currently traversed in the grid node map N_BMap and is not in the coordinates of the obstacle set blockGrids. The roof is the base elevation, the bottom elevation is 0, and the top elevation is pipeHeight. Then, follow step 1.1 to convert the spatial entity NodeSolid1 into a triangular face set meshTriangles1;

[0032] Step 4.3: Set the triangle number threshold in the octree space to 10;

[0033] Step 4.4: Get the first spatial bounding box Bound of the triangle patch set meshTriangles obtained in step 1, Bound.Center is the center of the spatial bounding box Bound, Bound.Extents is the distance from the center of the first spatial bounding box Bound to each side, divide the first spatial bounding box Bound into 8 subspaces, the length, width and height of each subspace are half of the parent space, and the coordinates of the centers of the 8 subspaces are respectively from Bound.Center to the eight directions distance;

[0034] Step 4.5: Traverse the eight subspaces and determine whether the subspace intersects with the triangle face set meshTriangles1. If only one subspace intersects with the triangle face set meshTriangles1, use the subspace as the new first spatial bounding box Bound, and repeat steps 4.3 to 4.5 until the number of triangle faces in the current first spatial bounding box Bound is less than the threshold, or there are two subspaces intersecting with the triangle face set meshTriangles1 at the same time, and the number of triangle faces is less than the triangle number threshold Threshold, or there are two subspaces intersecting with the triangle face set meshTriangles1 at the same time, and the corresponding current first spatial bounding box Bound is used as the final spatial bounding box Bound;

[0035] Step 4.6: Get the triangle patch set new_MeshTriangles in the final space bounding box Bound, and traverse the triangle patch newtriangle in the triangle patch set new_MeshTriangles to see if it intersects with any triangle patch triangle1 in the triangle patch set meshTriangles1;

[0036] Step 4.7: If there is a triangle patch newtriangle in the triangle patch set new_MeshTriangles that intersects with any triangle patch triangle1 in the triangle patch set meshTriangles1, then the properties of the currently traversed grid corresponding to the triangle patch triangle1 in the mesh node map N_BMap that is not in the coordinates of the obstacle set blockGrids are set to: the node type type is the crossable component grid LowElement, and the node weight is 20; if there is no intersection, then the properties of the grid corresponding to the triangle patch triangle1 in the mesh node map N_BMap are set to: the node type is the pedestrian ground Land that can be passed by people, and the node weight is 10.

[0037] Furthermore, in the above method, step 5: based on the calibrated node attributes of the spannable component grid, calibrating the node attributes of the non-spannable pipeline grid includes:

[0038] Step 5.1: Group all the grid nodes in the grid node map N_BMap according to the x coordinate and y coordinate, and obtain xGroup and yGroup respectively;

[0039] Step 5.2: Traverse the element xgroup in xGroup, sort the grids in xgroup by y coordinates to obtain xsortedGroup, loop through the grids in xsortedGroup, if three consecutive grids are the crossable component grids marked in step 4, store these three grid nodes in the temporary list blockList, repeat this step until all grids in xsortedGroup are traversed;

[0040] Step 5.3: Traverse the elements in yGroup to obtain ygroup, sort the grids in ygroup by y coordinate to obtain ysortedGroup, loop through the grids in ysortedGroup, if three consecutive grids are the crossable component grids marked in step 4, store these three grids in the temporary list blockList, repeat this step until all grids in ysortedGroup are traversed;

[0041] Step 5.4: Set the node properties of the grids in the temporary list blockList to: node type is obstacle BlockMissile, and node weight is -2.

[0042] Furthermore, in the above method, step 6: determining the starting grid, based on the grid node graph N_BMap and the starting grid, obtaining the grid node graph newBMap includes:

[0043] Read the door with the attribute "entrance and exit" in the BIM model as the starting point, and use the grid where the door is located as the starting grid StartNode;

[0044] Based on the grid node graph N_BMap and the starting grid StartNode, a grid node graph newBMap is finally formed, which contains the starting grid StartNode, the grid of the obstacle node type BlockMissile, the grid of the crossable component grid LowElemen node type, and the grid of the pedestrian ground node type Land.

[0045] Step 7: Based on the node weight of each grid in the grid node graph newBMap, determine the reachability of each grid in the grid node graph newBMap, including:

[0046] Step 7.1: Construct the queue to be checked, the set of accessible nodes accessNodes, and the set of inaccessible nodes noAccessNodes. The queue is used to store the path nodes to be checked, which is initially the starting grid StartNode; the set of accessNodes is used to store accessible grids, which is initialized to empty; the set of noAccessNodes is used to store inaccessible grids, which is initialized to empty;

[0047] Step 7.2: Since the grid node width is W_Node, and the pass width is Width_Cross, which is three times the grid node width, that is, the actual pass grid is 9 grids of 3×3, each grid node in the grid node map N_Bmap is taken as the central grid node, and each grid node is expanded to a size of a grid range of 3x3. Subsequently, its central grid node is taken as the representative of the actual pass grid. The grid node described below means the central grid node. The grids stored in the passable node set accessNodes and the inaccessible node set noAccessNodes are also the central grid nodes of each grid range of 3x3. The 9 grid nodes at the starting point are all set to Land=10, and the 9 grid nodes at the end point are all set to Land=10;

[0048] Step 7.3: According to the first grid in the latest queue as the parent grid ParentNode, delete the node from the queue;

[0049] Step 7.4: Calculate the 8 child grids ChildNode within the 3x3 range around the parent node grid ParentNode (including grids where the edges and center grids overlap and grids where the vertices overlap with the center grid), traverse the child node grid ChildNode, if the 3x3 grid centered on the ChildNode grid contains a child grid whose node type is an obstacle BlockMissile, then the child grid childNode is an inaccessible grid, and the child grid ChildNode is stored in the inaccessible node set noAccessNodes; if the 3x3 grid centered on the ChildNode grid does not contain a child grid whose node type is an obstacle BlockMissile, then the child grid ChildNode is a traversable grid, and the nodes in the traversable grid that are not stored in the traversable node set accessNodes are filtered out, inserted into the queue queue, and then stored in the traversable node set accessNodes.

[0050] Repeat steps 7.3 to 7.4 until the queue is empty, and finally get the accessible grid set accessNodes and the inaccessible grid set noAccessNodes. Among them, the accessNodes list is all accessible nodes, and the noAccessNodes list is inaccessible nodes.

[0051] Furthermore, in the above method, step 7.2 includes:

[0052] Step 7.2.1, get the positions of all doors, set the grids they occupy as the starting grid node startNodes; expand the starting grid node startNodes to a size of a 3x3 grid range, and then use its central grid node as the representative of the actual passable grid; set the attributes of the 3x3 grid nodes around the starting grid node to: node type Land, which is a pedestrian-accessible ground, with a weight of 10;

[0053] Step 7.2.2, set the path radius to 2 grid nodes, that is, expand each of the remaining grid nodes in the grid node map N_Bmap to occupy a 3x3 grid range, and set the attributes of the 8 grids around the 3x3 grid of each remaining grid node to the same node attributes as the central grid node to which it belongs;

[0054] Step 8 includes:

[0055] Step 8.1: Get the center point nodePoint of each grid of the accessible grid set accessNodes and the inaccessible grid set noAccessNodes, and calculate the grid outline according to the coordinates of the center point nodePoint and the grid width circulationWith / 3;

[0056] Step 8.2: Draw a grid fill pattern in Revit based on the grid outline. If the grid is in the accessible grid set accessNodes, the grid fill pattern is green; if the grid is in the inaccessible grid set noAccessNodes, the grid fill pattern is red to form a visual accessibility diagram.

[0057] Compared with the prior art, the present invention extracts the three-dimensional BIM model data of the roof and converts it into triangular patch data meshTriangles; extracts the outline of the roof structure plate as the roof boundary and performs meshing processing to obtain a new mesh node graph N_BMap; calibrates the node attributes of the obstacle mesh in the mesh node graph N_BMap, wherein the node attributes include node type and node weight; based on the triangular patch set meshTriangles, calibrates the node attributes of the mesh of the crossable component; based on the calibrated node attributes of the mesh of the crossable component, calibrates the node attributes of the mesh of the non-crossable pipeline; determines the starting mesh and, based on the mesh node graph N_BMap and the starting mesh, obtains the mesh node graph newBMap; based on the node weight of each mesh in the mesh node graph newBMap, determines the reachability of each mesh in the mesh node graph newBMap; based on the reachability of each mesh, draws the reachability mesh plane graph in three-dimensional space. The present invention uses intelligent algorithms to quickly and automatically analyze the accessibility of roof maintenance, mark pass areas and obstacle areas, and provide accessible and inaccessible locations of the entire roof, providing a reference for subsequent adjustment plans, preliminarily completing the maintenance route design, and reducing costs. BRIEF DESCRIPTION OF THE DRAWINGS

[0058] Figure 1 This is a flow chart of a technical solution of an embodiment of the present invention;

[0059] Figure 2 A reachability calculation algorithm diagram according to an embodiment of the present invention;

[0060] Figure 3 FIG. 4 is a diagram of an algorithm for calculating an uncrossable pipeline according to an embodiment of the present invention. DETAILED DESCRIPTION

[0061] The present invention is further described in detail below in conjunction with the accompanying drawings.

[0062] In a typical configuration of the present application, the terminal, the device of the service network and the trusted party all include one or more processors (CPU), input / output interfaces, network interfaces and memories.

[0063] The memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.

[0064] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include non-transitory media such as modulated data signals and carrier waves.

[0065] like Figures 1 to 3 As shown, the present invention provides a method for calibrating accessibility of roof equipment maintenance, comprising:

[0066] Step 1: Extract the roof 3D BIM model data and convert it into triangular face data meshTriangles.

[0067] Step 1.1: Open the comprehensive roof RVT model file, extract the roof elements Elements (including the roof BIM model of the electromechanical pipelines, pipelines), and obtain the geometric information of the roof elements, that is, the entity ElementSolids represented by BRep, traverse each face ElementFace in ElementSolids, and triangulate each face ElementFace into ElementMesh, where the triangle face in ElementMesh is ElementTriangle, and all the triangle face ElementTriangle are regarded as the roof triangle face set;

[0068] Step 1.2: extract the linked model in the roof comprehensive RVT model file, wherein the linked model includes: roof building, structural model and wall hanger, convert the linked model into a model group and then ungroup it into normal component elements, obtain the geometric information of the normal component elements in the comprehensive RVT model, that is, the entity LinkedElementSolids represented by BRep, traverse each face LinkedElementFace in the entity LinkedElementSolids, and triangulate each face LinkedElementFace into LinkedElementMesh, wherein the triangle face is LinkedElementTriangle, and all the triangle faces are LinkedElementTriangle as the linked model triangle face set;

[0069] Step 1.3: Merge the roof triangle patch set and the linked model triangle patch set into meshTriangles;

[0070] Here, in steps 1.1 to 1.2, the two open the roof comprehensive mechanical and electrical model file MEP.rvt, convert the linked architectural model AR.rvt and structural model ST.rvt into a model group, and ungroup the model group into multiple components, that is, concentrate the roof components into the same model.

[0071] You can filter all the component elements except the bracket components in the roof 3D BIM model, traverse all the component elements, and obtain the geometric entities solid of all the component elements.

[0072] Get all faces of the geometric entity, and calculate the triangulated mesh of all faces, with the maximum edge length maxEdgeLength = 5feet = 1524mm. Traverse the mesh and separate each triangle into a vertex set List <point>Indicates that all triangles are converted to meshTriangles in the end, of type List <List<Point》。

[0073] Step 2: Extract the outline of the roof structure plate as the roof boundary and perform meshing to obtain a new mesh node map N_BMap.

[0074] Step 2.1: Get the roof structure board space bounding box FloorBoundingbox, get the diagonal vertices that enclose FloorBoundingbox in the horizontal plane, use the diagonal vertices as the diagonal vertices of the initial grid, and calculate the grid node graph Bmap with the diagonal vertices of the initial grid and the grid width W_Node, where the grid width W_Node and the human passage width circulationWidth are defined, and W_Node = circulationWidth / 3. Preferably, circulationWidth = 600mm, W_Node = 200mm;

[0075] Here, the user can click the function button and enter the traffic width circulationWidth = 600mm, traffic height circulationHeight = 2000mm, crossable pipeline width pipeWidth = 500mm, and crossable pipeline height pipeHeight = 300mm in the pop-up page.

[0076] Step 2.1.1, get the spatial bounding box FloorBoundingbox of the floor, and get the minimum point maxPoint and maximum point maxPoint of the spatial bounding box, calculate the length length and width width of the spatial bounding box according to the x and y coordinates of the minimum point maxPoint and the maximum point maxPoint, and calculate the number of grids in the x direction according to the integer multiple of one-third of the width of the moving line circulationWith Grid number in y direction And generate a grid node graph BMap.

[0077] Step 2.2: Obtain the geometric information of the roof structure plate, and obtain the upper surface contour FloorFace of the entity corresponding to the geometric information of the roof structure plate;

[0078] Here, the floor component floor selected by the user can be obtained;

[0079] Then, based on the user's selection of the floor component floor, the geometric entity solid of the floor floor is obtained, and its upper surface contour FloorFace is obtained.

[0080] Step 2.3: Traverse each mesh node in the mesh node map Bmap, calculate the coordinates of each mesh node, use the ray method to determine whether each mesh node is within the upper surface contour FloorFace of the roof structure board, and filter out the mesh nodes outside the upper surface contour FloorFace of the roof structure board from the mesh node map BMap to obtain a new mesh node map N_BMap.

[0081] Here, step 2.3.1: loop through the grid nodes in the grid node map BMap, get the center point of the grid, and ignore the Z coordinate;

[0082] Step 2.3.2: Traverse all edges of the upper surface contour FloorFace, and calculate the number of line segments crossings within the range of the line segment projection of the center point point of the mesh, that is, the number of intersections between the ray with the center point point of the mesh and the contour. If crossings is an odd number, the center point point is within the roof contour. Filter out the meshes whose center points are within the roof contour, and generate a new mesh node map N_BMap based on the sieved meshes.

[0083] Step 3: calibrate the node attributes of the obstacle grid in the grid node map N_BMap, wherein the node attributes include node type and node weight;

[0084] Step 3.1: From the grid node map N_BMap, select building walls, structural columns, railings, electromechanical equipment and firefighting equipment as obstacle elements blockElements, calculate the second space bounding box bbox and the maximum point max and minimum point min of the obstacle elements blockElements, and calculate the grid coordinate set blockGrids occupied by the second space bounding box bbox on the plane based on the maximum point max and minimum point min of the second space bounding box bbox;

[0085] Here, building walls, structural columns, railings, electromechanical equipment, and fire-fighting equipment can be screened out from the grid node map N_BMap as obstacle elements blockElements, and their spatial bounding boxes bbox, maximum points max, and minimum points min can be calculated, and the grid coordinate set blockGrids occupied by their spatial bounding boxes on the plane can be calculated.

[0086] Step 3.2: Traverse the grid nodes in the grid node map N_BMap. If the coordinates of the grid node are in the obstacle set blockGrids, set the properties of the grid to: node type type is obstacle blockMissile, node weight weight is -2; if the coordinates of the grid node are not in the obstacle set blockGrids, perform steps 4 to 5 until every grid node in the grid node map N_BMap is traversed and the weight of each grid node is updated, and then perform step 6;

[0087] Here, the obstacle BlockMissile node type includes: building wall obstacle grid node;

[0088] Step 4: Based on the triangle patch set meshTriangles, calibrate the node attributes of the LowElement that can span the component mesh, wherein the node attributes include: node type and node weight;.

[0089] Step 4.1: Define the height limit for human traffic circulationHeight according to the space occupancy, the crossable height pipeHeight, and take each grid node in the grid node map N_BMap;

[0090] Step 4.2: Create a spatial geometric entity NodeSolid1 with the square bottom shape of the grid that is currently traversed in the grid node map N_BMap and is not in the coordinates of the obstacle set blockGrids. The roof is the base elevation, the bottom elevation is 0, and the top elevation is pipeHeight. Then, follow step 1.1 to convert the spatial entity NodeSolid1 into a triangular face set meshTriangles1;

[0091] Here, based on the bottom surface of the currently traversed mesh node, stretch it from the relative elevation 0 to 300 mm (pipeHeight) to the spatial geometric entity NodeSolid1, and follow step 1.1 to convert the spatial entity NodeSolid1 into meshTraingles1;

[0092] Step 4.3: Set the triangle number threshold in the octree space to 10;

[0093] Step 4.4: Get the first spatial bounding box Bound of the triangle patch set meshTriangles obtained in step 1, Bound.Center is the center of the spatial bounding box Bound, Bound.Extents is the distance from the center of the first spatial bounding box Bound to each side, divide the first spatial bounding box Bound into 8 subspaces, the length, width and height of each subspace are half of the parent space, and the coordinates of the centers of the 8 subspaces are respectively from Bound.Center to the eight directions distance;

[0094] Here, we can set the triangle number threshold Threshold = 10 in the octree space, obtain the spatial bounding box meshBound of the triangle patch set meshTraingles, meshBound.Center is the center of the spatial bounding box meshBound.Center = (25.8313, 153.1337, 175.9513), meshBound.Extents is the distance from the center of the spatial bounding box to each side {dx = 97.6869feet, dy = 52.8215feet, dz = 4.4947feet}, divide the spatial bounding box into 8 subspaces, the length, width and height of the subspace are all half of the parent space, and the coordinates of the centers of the 8 subspaces are Bound.Center moving in eight directions. distance;

[0095] Step 4.5: Traverse the eight subspaces and determine whether the subspace intersects with the triangle face set meshTriangles1. If only one subspace intersects with the triangle face set meshTriangles1, use the subspace as the new first spatial bounding box Bound, and repeat steps 4.3 to 4.5 until the number of triangle faces in the current first spatial bounding box Bound is less than the threshold, or there are two subspaces intersecting with the triangle face set meshTriangles1 at the same time, and the number of triangle faces is less than the triangle number threshold Threshold, or there are two subspaces intersecting with the triangle face set meshTriangles1 at the same time, and the corresponding current first spatial bounding box Bound is used as the final spatial bounding box Bound;

[0096] Here, we can traverse the eight subspaces to determine whether the subspace smallMeshBound intersects with meshTriangles1, that is, determine whether there are any triangle vertices in meshTriangles1 in smallMeshBound. If only one subspace intersects with the triangle face set NodeTriangles, then take the subspace as the spatial bounding box Bound and repeat step 4.5 until the number of triangle faces in the spatial bounding box Bound is less than the threshold Threshold = 10, or there are two subspaces that intersect with the triangle face set mashTriangles1 at the same time.

[0097] Step 4.6: Get the triangle patch set new_MeshTriangles in the final space bounding box Bound, and traverse the triangle patch newtriangle in the triangle patch set new_MeshTriangles to see if it intersects with any triangle patch triangle1 in the triangle patch set meshTriangles1;

[0098] Here, get the triangle patch set new_MeshTriangles in the final space bounding box Bound. Get any triangle newtriangle in new_MeshTriangles, get any triangle triangle1 in meshTriangles1, and determine whether there is an edge in triangle that intersects with triangle1;

[0099] Step 4.7: If there is a triangle patch newtriangle in the triangle patch set new_MeshTriangles that intersects with any triangle patch triangle1 in the triangle patch set meshTriangles1, then the properties of the currently traversed grid corresponding to the triangle patch triangle1 in the mesh node map N_BMap that is not in the coordinates of the obstacle set blockGrids are set to: the node type type is the crossable component grid LowElement, and the node weight weight is 20; if there is no intersection, then the properties of the grid corresponding to the triangle patch triangle1 in the mesh node map N_BMap are set to: the node type type is the pedestrian ground Land, and the node weight weight is 10;

[0100] Here, if there is an intersection, the grid weight attribute Terrain=LowElement=20; if there is no intersection, the grid weight attribute Terrain=Land=10.

[0101] Traverse all grid nodes in the grid node map N_BMap whose coordinates are not in the obstacle set blockGrids, and repeat steps 4.2 to 4.7.

[0102] like Figure 3 As shown, step 5: based on the already calibrated node attributes of the crossable component mesh LowElement, calibrate the node attributes of the mesh of the non-crossable pipeline.

[0103] Step 5.1: Group all the grid nodes in the grid node map N_BMap according to the x-coordinate and y-coordinate, and obtain xGroup and yGroup respectively;

[0104] Step 5.2: Traverse the element xgroup in xGroup, sort the grids in xgroup by y coordinates to obtain xsortedGroup, loop through the grids in xsortedGroup, if three consecutive grids are LowElement of the crossable component grid marked in step 4, store these three grid nodes in the temporary list blockList, repeat this step until all grids in xsortedGroup are traversed;

[0105] Step 5.3: Traverse the elements in yGroup to obtain ygroup, sort the grids in ygroup by y coordinate to obtain ysortedGroup, loop through the grids in ysortedGroup, if three consecutive grids are LowElement of the crossable component grid marked in step 4, store these three grids in the temporary list blockList, repeat this step until all grids in ysortedGroup are traversed;

[0106] Step 5.4: Set the node attributes of the grids in the temporary list blockList to: node type type is obstacle BlockMissile, node weight weight is -2.

[0107] Here, the obstacle BlockMissile node type includes: building wall obstacle grid nodes and uncrossable pipes;

[0108] The grid weight attribute involved in the temporary list blockList may be modified to Terrain=Obstacle BlockMissile=-2.

[0109] Step 6: Determine your starting grid.

[0110] Here, the door with the attribute "entrance and exit" in the BIM model can be read as the starting point, and the grid where the door is located is used as the starting grid node StartNode. Finally, a grid node map newBMap containing the starting grid, obstacles, components, and land is formed.

[0111] Specifically, the entrance and exit components doors (multiple selections are possible) in the model selected by the user can be obtained; based on the grid node graph N_BMap and the starting grid StartNode, a grid node graph newBMap containing the starting grid StartNode, a grid of the obstacle node type BlockMissile, a grid of the crossable component grid LowElemen node type, and a grid of the pedestrian ground node type Land is finally formed.

[0112] like Figure 2 As shown, step 7: based on the node weight of each grid in the grid node graph newBMap, determine the reachability of each grid in the grid node graph newBMap.

[0113] Here, we can use the breadth-first search algorithm (BFS) with collision volume to systematically expand and check all nodes in the graph to find the result. Define the queue to be checked.

[0114] Step 7.1: Construct the queue to be checked, the set of accessible nodes accessNodes, and the set of inaccessible nodes noAccessNodes. The queue is used to store the path nodes to be checked, which is initially the starting grid StartNode; the accessNodes set is used to store the accessible grids, which is initialized to empty; the noAccessNodes set is used to store the inaccessible grids, which is initialized to empty.

[0115] Here, the check queue and the passable grid set accessNodes and the impassable grid set noAccessNodes can be constructed, and the starting node startNode=N_BMap[door1.X=7,door1.Y=46] is stored in the queue, and closeList is empty.

[0116] Step 7.2: Since the grid node width is W_Node, and the pass width is Width_Cross, which is three times the grid node width, that is, the actual pass grid is 9 grids of 3×3, each grid node in the grid node map N_Bmap is taken as the central grid node, and each grid node is expanded to a size of a grid range of 3x3. Subsequently, its central grid node is taken as the representative of the actual pass grid. The grid node described below means the central grid node. The grids stored in the passable node set accessNodes and the inaccessible node set noAccessNodes are also the central grid nodes of each grid range of 3x3. The 9 grid nodes at the starting point are all set to Land=10, and the 9 grid nodes at the end point are all set to Land=10;

[0117] Here, each grid in the grid node map N_BMap is expanded (including the starting grid). Since the collision volume is considered in this paper, multiple grids are involved, so the central grid 3*3 is taken as the representative of the pass grid. The grid nodes described below are the central grid nodes, and the nodes stored in the accessNodes and noAccessNodes lists are also central grid nodes.

[0118] Step 7.2.1, get the positions of all doors, set the grids they occupy as the starting grid node startNodes; expand the starting grid node startNodes to a size that occupies a 3x3 grid range, and then use its central grid node as the representative of the actual passable grid; set the attributes of the 3x3 grid nodes around the starting grid node to: node type is Land, which is a pedestrian-accessible ground, with a weight of 10.

[0119] Step 7.2.2, set the path radius to 2 grid nodes, that is, expand each of the remaining grid nodes in the grid node map N_Bmap to occupy a 3x3 grid range, and set the attributes of the 8 grids around the 3x3 grid of each remaining grid node to the same node attributes as the central grid node to which it belongs;

[0120] Here, with the middle grid as the center and 2 grids as the radius, we get a 3x3 grid;

[0121] Here, you can get the positions of all the doors you clicked, set the grid occupied by the doors as the starting grid startNodes, and set the node attributes of the 3x3 grids around the starting grid to Terrain = Land = 10;

[0122] The path radius can be set to 2 grids, that is, each step occupies the size of a 3x3 grid; with the middle grid as the center and 2 grids as the radius, a 3x3 grid is obtained.

[0123] Taking the reachability from door1 as an example, all nodes in the grid node graph N_BMap can be expanded.

[0124] Step 7.3: According to the first grid in the latest queue as the parent grid ParentNode, delete the node from the queue;

[0125] Step 7.4: Calculate the 8 child grids ChildNode within the 3x3 range around the parent node grid ParentNode (including grids where the edges and center grids overlap and grids where the vertices overlap with the center grid), traverse the child node grid ChildNode, if the 3x3 grid centered on the ChildNode grid contains a child grid whose node type is an obstacle BlockMissile, then the child grid ChildNode is an inaccessible grid, and the child grid ChildNode is stored in the inaccessible node set noAccessNodes; if the 3x3 grid centered on the ChildNode grid does not contain a child grid whose node type is an obstacle BlockMissile, then the child grid ChildNode is a traversable grid, and the nodes in the traversable grid that are not stored in the traversable node set accessNodes are filtered out, inserted into the queue queue, and then stored in the traversable node set accessNodes.

[0126] Here, you can get the first grid ParentNode in the queue, and get the grid ChildNode within the 3x3 range around the ParentNode that does not exceed the roof boundary and is not an obstacle;

[0127] The ChildNode grid can be traversed. If the 3x3 grid centered on the ChildNode grid is passable and the grid is not stored in accessNodes, the ChildNode grid is inserted into the queue queue and stored in accessNodes; if the 3x3 grid centered on the ChildNode is not passable, the grid is stored in noAccessNodes.

[0128] Repeat steps 7.3 to 7.4 until the queue is empty, and finally get the accessible grid set accessNodes and the inaccessible grid set noAccessNodes. Among them, the accessNodes list is all accessible nodes, and the noAccessNodes list is inaccessible nodes;

[0129] Step 8: Based on the accessNodes set of accessible grids and the noAccessNodes set of inaccessible grids, draw the accessibility grid plan in three-dimensional space; and mark the accessible grids as green grids and the inaccessible grids as red nodes.

[0130] Here, step 8.1: obtain the center point nodePoint of each grid of the accessible grid set accessNodes and the inaccessible grid set noAccessNodes, and calculate the grid outline according to the coordinates of the center point nodePoint and the grid width circulationWith / 3;

[0131] Step 8.2: Draw a grid fill pattern in Revit based on the grid outline. If the grid is in the accessible grid set accessNodes, the grid fill pattern is green; if the grid is in the inaccessible grid set noAccessNodes, the grid fill pattern is red to form a visual accessibility diagram.

[0132] In summary, the present invention provides a method for calibrating the accessibility of roof equipment maintenance, which uses an intelligent algorithm to quickly and automatically analyze the accessibility of roof maintenance, mark the pass area and obstacle area, and give the accessible and inaccessible positions of the entire roof, providing a reference for subsequent adjustment plans, preliminarily completing the maintenance route design, and reducing costs.

[0133] The detailed contents of the device embodiments of the present invention can be found in the corresponding parts of the method embodiments, which will not be described in detail here.

[0134] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.

[0135] It should be noted that the present invention can be implemented in software and / or a combination of software and hardware, for example, can be implemented using an application specific integrated circuit (ASIC), a general purpose computer or any other similar hardware device. In one embodiment, the software program of the present invention can be executed by a processor to implement the steps or functions described above. Similarly, the software program of the present invention (including related data structures) can be stored in a computer readable recording medium, for example, a RAM memory, a magnetic or optical drive or a floppy disk and the like. In addition, some steps or functions of the present invention can be implemented using hardware, for example, as a circuit that cooperates with a processor to perform each step or function.

[0136] In addition, a part of the present invention may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present invention through the operation of the computer. The program instruction for calling the method of the present invention may be stored in a fixed or removable recording medium, and / or transmitted through a data stream in a broadcast or other signal-bearing medium, and / or stored in a working memory of a computer device that runs according to the program instruction. Here, according to an embodiment of the present invention, a device is included, the device including a memory for storing computer program instructions and a processor for executing program instructions, wherein, when the computer program instruction is executed by the processor, the device is triggered to run the method and / or technical solution based on the aforementioned multiple embodiments of the present invention.

[0137] It is obvious to those skilled in the art that the present invention is not limited to the details of the exemplary embodiments described above, and that the present invention can be implemented in other specific forms without departing from the spirit or essential features of the present invention. Therefore, from any point of view, the embodiments should be regarded as exemplary and non-restrictive, and the scope of the present invention is defined by the appended claims rather than the above description, and it is intended that all changes falling within the meaning and scope of the equivalent elements of the claims are included in the present invention. Any figure mark in the claims should not be regarded as limiting the claims involved. In addition, it is obvious that the word "comprising" does not exclude other units or steps, and the singular does not exclude the plural. Multiple units or devices stated in the device claim can also be implemented by one unit or device through software or hardware. The words first, second, etc. are used to indicate names, and do not indicate any particular order.< / point>

Claims

1. A method for calibrating accessibility of roof equipment maintenance, characterized in that: include: Step 1: Extract the roof 3D BIM model data and convert it into triangular patch data meshTriangles; Step 2: Extract the outline of the roof structure plate as the roof boundary and perform meshing to obtain a new mesh node map N_BMap; Step 3: calibrate the node attributes of the obstacle grid in the grid node map N_BMap, wherein the node attributes include node type and node weight; Step 4: Based on the triangle patch set meshTriangles, calibrate the node attributes that can span the component mesh; Step 5: Based on the calibrated node attributes of the spannable component mesh, calibrate the node attributes of the non-spannable pipeline mesh; Step 6: Determine the starting grid, and obtain the grid node graph newBMap based on the grid node graph N_BMap and the starting grid; Step 7: Determine the reachability of each grid in the grid node graph newBMap based on the node weight of each grid in the grid node graph newBMap; Step 8: Based on the reachability of each grid, draw the reachability grid plan in three-dimensional space.

2. The method for calibrating accessibility of roof equipment maintenance according to claim 1, characterized in that: Step 1: Extract the roof 3D BIM model data and convert it into triangular patch data meshTriangles, including: Step 1.1: Open the comprehensive roof RVT model file, extract the roof elements Elements, and obtain the geometric information of the roof elements, that is, the entity ElementSolids represented by BRep, traverse each face ElementFace in ElementSolids, and triangulate each face ElementFace into ElementMesh, where the triangle face in ElementMesh is ElementTriangle, and all the triangle face ElementTriangle are regarded as the roof triangle face set; Step 1.2: Extract the linked model in the roof comprehensive RVT model file, where the linked model includes: roof building, structural model and wall hanger, convert the linked model into a model group and then ungroup it into component elements, obtain the geometric information of the normal component elements in the comprehensive RVT model, that is, the entity LinkedElementSolids represented by BRep, traverse each face LinkedElementFace in the entity LinkedElementSolids, and triangulate each face LinkedElementFace into LinkedElementMesh, where the triangle face is LinkedElementTriangle, and all the triangle faces are LinkedElementTriangle as the linked model triangle face set; Step 1.3: Merge the roof triangle patch set and the linked model triangle patch set into meshTriangles.

3. The method for calibrating accessibility of roof equipment maintenance according to claim 2, characterized in that: Step 2: Extract the roof structure plate outline as the roof boundary and perform meshing to obtain a new mesh node map N_BMap, including: Step 2.1: Get the roof structure board space bounding box FloorBoundingbox, get the diagonal vertices that enclose FloorBoundingbox in the horizontal plane, use the diagonal vertices as the diagonal vertices of the initial grid, and calculate the grid node graph Bmap with the diagonal vertices of the initial grid and the grid width W_Node, where the grid width W_Node and the human passage width circulationWidth are defined, and W_Node = circulationWidth / 3; Step 2.2: Obtain the geometric information of the roof structure plate, and obtain the upper surface contour FloorFace of the entity corresponding to the geometric information of the roof structure plate; Step 2.3: Traverse each mesh node in the mesh node map Bmap, calculate the coordinates of each mesh node, use the ray method to determine whether each mesh node is within the upper surface contour FloorFace of the roof structure board, and filter out the mesh nodes outside the upper surface contour FloorFace of the roof structure board from the mesh node map BMap to obtain a new mesh node map N_BMap.

4. The method for calibrating accessibility of roof equipment maintenance according to claim 3, characterized in that: Step 2.1 includes: Step 2.1.1, get the spatial bounding box FloorBoundingbox of the floor, and get the minimum point minPoint and maximum point maxPoint of the spatial bounding box, calculate the length length and width width of the spatial bounding box according to the x and y coordinates of the minimum point minPoint and the maximum point maxPoint, and calculate the number of grids in the x direction according to the integer multiple of one-third of the width of the moving line circulationWith Grid number in y direction And generate a grid node map BMap.

5. The method for calibrating accessibility of roof equipment maintenance according to claim 1, characterized in that: Step 2.3 includes: Step 2.3.1: Loop through the grid nodes in the grid node map BMap and obtain the center point of the grid; Step 2.3.2: Traverse all edges of the upper surface contour FloorFace, and calculate the number of line segments crossings within the range of the line segment projection of the center point point of the mesh, that is, the number of intersections between the ray with the center point point of the mesh and the contour. If crossings is an odd number, the center point point is within the roof contour. Filter out the meshes whose center points are within the roof contour, and generate a new mesh node map N_BMap based on the sieved meshes.

6. The method for calibrating accessibility of roof equipment maintenance according to claim 1, characterized in that: Step 3: Calibrate the node attributes of the obstacle grid in the grid node map N_BMap, including: Step 3.1: From the grid node map N_BMap, select building walls, structural columns, railings, electromechanical equipment and firefighting equipment as obstacle elements blockElements, calculate the second space bounding box bbox and the maximum point max and minimum point min of the obstacle elements blockElements, and calculate the grid coordinate set blockGrids occupied by the second space bounding box bbox on the plane based on the maximum point max and minimum point min of the second space bounding box bbox; Step 3.2: Traverse the grids in the grid node map N_BMap. If the coordinates of the grid are in the obstacle set blockGrids, set the grid properties to: node type is obstacle BlockMissile, node weight is -2; if the coordinates of the grid are not in the obstacle set blockGrids, perform steps 4 to 5 until every grid node in the grid node map N_BMap is traversed and the weight of each grid node is updated, and then perform step 6.

7. The method for calibrating accessibility of roof equipment maintenance according to claim 6, characterized in that: Step 4: Based on the triangle patch set meshTriangles, calibrate the node attributes that can span the component mesh, including: Step 4.1: Define the height limit for human traffic circulationHeight according to the space occupancy, the crossable height pipeHeight, and take each grid node in the grid node map N_BMap; Step 4.2: Create a spatial geometric entity NodeSolid1 with the square bottom shape of the grid that is currently traversed in the grid node map N_BMap and is not in the coordinates of the obstacle set blockGrids. The roof is the base elevation, the bottom elevation is 0, and the top elevation is pipeHeight. Then, follow step 1.1 to convert the spatial entity NodeSolid1 into a triangular face set meshTriangles1; Step 4.3: Set the triangle number threshold in the octree space to 10; Step 4.4: Get the first spatial bounding box Bound of the triangle patch set meshTriangles obtained in step 1, Bound.Center is the center of the spatial bounding box Bound, Bound.Extents is the distance from the center of the first spatial bounding box Bound to each side, divide the first spatial bounding box Bound into 8 subspaces, the length, width and height of each subspace are half of the parent space, and the coordinates of the centers of the 8 subspaces are the distances of 0.5√2*Bound.Extents moved from Bound.Center to eight directions; Step 4.5: Traverse the eight subspaces and determine whether the subspace intersects with the triangle face set meshTriangles1. If only one subspace intersects with the triangle face set meshTriangles1, use the subspace as the new first spatial bounding box Bound, and repeat steps 4.3 to 4.5 until the number of triangle faces in the current first spatial bounding box Bound is less than the threshold, or there are two subspaces intersecting with the triangle face set meshTriangles1 at the same time, and the number of triangle faces is less than the triangle number threshold Threshold, or there are two subspaces intersecting with the triangle face set meshTriangles1 at the same time, and the corresponding current first spatial bounding box Bound is used as the final spatial bounding box Bound; Step 4.6: Get the triangle patch set new_MeshTriangles in the final space bounding box Bound, and traverse the triangle patch newtriangle in the triangle patch set new_MeshTriangles to see if it intersects with any triangle patch triangle1 in the triangle patch set meshTriangles1; Step 4.7: If there is a triangle patch newtriangle in the triangle patch set new_MeshTriangles that intersects with any triangle patch triangle1 in the triangle patch set meshTriangles1, then the properties of the currently traversed grid corresponding to the triangle patch triangle1 in the mesh node map N_BMap that is not in the coordinates of the obstacle set blockGrids are set to: the node type type is the crossable component grid LowElement, and the node weight is 20; if there is no intersection, then the properties of the grid corresponding to the triangle patch triangle1 in the mesh node map N_BMap are set to: the node type is the pedestrian ground Land that can be passed by people, and the node weight is 10.

8. The method for calibrating accessibility of roof equipment maintenance according to claim 1, characterized in that: Step 5: Based on the calibrated node attributes of the spannable component mesh, calibrate the node attributes of the non-spannable pipeline mesh, including: Step 5.1: Group all the grid nodes in the grid node map N_BMap according to the x coordinate and y coordinate, and obtain xGroup and yGroup respectively; Step 5.2: Traverse the element xgroup in xGroup, sort the grids in xgroup by y coordinates to obtain xsortedGroup, loop through the grids in xsortedGroup, if three consecutive grids are the crossable component grids marked in step 4, store these three grid nodes in the temporary list blockList, repeat this step until all grids in xsortedGroup are traversed; Step 5.3: Traverse the elements in yGroup to obtain ygroup, sort the grids in ygroup by y coordinate to obtain ysortedGroup, loop through the grids in ysotedGroup, if three consecutive grids are the crossable component grids marked in step 4, store these three grids in the temporary list blockList, repeat this step until all grids in ysortedGroup are traversed; Step 5.4: Set the node properties of the grids in the temporary list blockList to: node type is obstacle BlockMissile, and node weight is -2.

9. The method for calibrating accessibility of roof equipment maintenance according to claim 1, characterized in that: Step 6: Determine the starting grid, and obtain the grid node graph newBMap based on the grid node graph N_BMap and the starting grid, including: Read the door with "entrance and exit" in the BIM model as the starting point, and use the grid where the door is located as the starting grid StartNode; Based on the grid node graph N_BMap and the starting grid StartNode, a grid node graph newBMap is finally formed, which contains the starting grid StartNode, the grid of the obstacle node type BlockMissile, the grid of the crossable component grid LowElemen node type, and the grid of the pedestrian ground node type Land. Step 7: Based on the node weight of each grid in the grid node graph newBMap, determine the reachability of each grid in the grid node graph newBMap, including: Step 7.1: Construct the queue to be checked, the set of accessible nodes accessNodes, and the set of inaccessible nodes noAccessNodes. The queue is used to store the path nodes to be checked, which is initially the starting grid StartNode; the set of accessNodes is used to store accessible grids, which is initialized to empty; the set of noAccessNodes is used to store inaccessible grids, which is initialized to empty; Step 7.2: Since the grid node width is W_Node, and the pass width is Width_Cross, which is three times the grid node width, that is, the actual pass grid is 9 grids of 3×3, each grid in the grid node map N_Bmap is used as the central grid, and each grid node is expanded to a size of a grid range of 3x3. Subsequently, its central grid is used as the representative of the actual pass grid. The grid node described below means the central grid. The grids stored in the passable node set accessNodes and the inaccessible node set noAccessNodes are also the central grids of each grid range of 3x3. The 9 grids at the starting point are all set to Land=10, and the 9 grid nodes at the end point are all set to Land=10; Step 7.3: According to the first grid in the latest queue as the parent grid ParentBode, delete the node from the queue; Step 7.4: Calculate the 8 child grids ChildNode within the 3x3 range around the parent node grid ParentNode, traverse the child node grid ChildNode, if the 3x3 grid centered on the ChildNode grid contains a child grid with the node type of the obstacle BlockMissile, then the child grid ChildNode is an inaccessible grid, and the child grid ChildNode is stored in the inaccessible node set noAccessNodes; if the 3x3 grid centered on the ChildNode grid does not contain a child grid with the node type of the obstacle BlockMissile, then the child grid ChildNode is a traversable grid, and the nodes in the traversable grid that are not stored in the traversable node set accessNodes are filtered out, inserted into the queue queue, and then stored in the traversable node set accessNodes. Repeat steps 7.3 to 7.4 until the queue is empty, and finally obtain the accessible grid set accessNodes and the inaccessible grid set noAccessNodes. The accessNodes list contains all accessible nodes, and the noAccessNodes list contains all inaccessible nodes.

10. The method for calibrating accessibility of roof equipment maintenance according to claim 1, characterized in that: Step 7.2 includes: Step 7.2.1, get the positions of all doors, set the grids they occupy as the starting grid node startNodes; expand the starting grid node startNodes to a size of a 3x3 grid range, and then use its central grid node as the representative of the actual passable grid; set the attributes of the 3x3 grid nodes around the starting grid node to: node type Land, which is a pedestrian-accessible ground, with a weight of 10; Step 7.2.2, set the path radius to 2 grid nodes, that is, expand each of the remaining grid nodes in the grid node map N_Bmap to occupy a 3x3 grid range, and set the attributes of the 8 grids around the 3x3 grid of each remaining grid node to the same node attributes as the central grid node to which it belongs; Step 8 includes: Step 8.1: Get the center point nodePoint of each grid of the accessible grid set accessNodes and the inaccessible grid set noAccessNodes, and calculate the grid outline according to the coordinates of the center point nodePoint and the grid width circulationWith / 3; Step 8.2: Draw a grid fill pattern in Revit based on the grid outline. If the grid is in the accessible grid set accessNodes, the grid fill pattern is green; if the grid is in the inaccessible grid set noAccessNodes, the grid fill pattern is red to form a visual accessibility diagram.

Citation Information

Cited By

  • Detection method and system for bridge maintenance space

    CN122435164A

  • A method and system for detecting a bridge maintenance space

    CN122435164B