A graphical fire hydrant protection distance detection method
The graphical method for detecting the protection distance of fire hydrants solves the problem of difficulty in verifying the design quality of fire hydrants, realizes accurate calculation and visualization of fire hydrant design, and improves design efficiency and quality.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHINA HAISUM ENG
- Filing Date
- 2023-04-23
- Publication Date
- 2026-07-24
AI Technical Summary
The difficulty in manually calculating the protection distance of fire hydrants makes it difficult to verify the design quality of fire hydrants, resulting in failure to meet fire protection standards.
The graphical method for detecting the protection distance of fire hydrants includes planar exterior wall contour detection, building floor plan grid generation, dynamic planning path analysis, and path data contour closure, generating graphical displays of the detection results.
It enables accurate calculation of the actual coverage area of fire hydrants, improves design efficiency and quality, reveals unreasonable and non-compliant situations in the design, and improves the design quality of designers.
Smart Images

Figure CN116523860B_ABST
Abstract
Description
Technical Field
[0001] This application relates to a graphical method for detecting the protection distance of fire hydrants, belonging to the field of digital design technology for building water supply and drainage. Background Technology
[0002] Fire hydrants are an important component of fire protection systems, especially in buildings. Safety designers need to arrange the locations of fire hydrants to meet fire safety standards. However, due to the presence of walls and doors within buildings, and the limitation of fire hydrant protection distance by fire hose length (fire hoses can only pass through doors and not walls), manually calculating the protection distance of fire hydrants is extremely difficult, making it impossible to manually verify the design quality. Summary of the Invention
[0003] The technical problem this application aims to solve is how to verify the design quality of fire hydrants within buildings.
[0004] To solve the above-mentioned technical problems, the technical solution of this application is to provide a graphical method for detecting the protection distance of fire hydrants, characterized by comprising:
[0005] Step 1: Planar exterior wall outline detection: The exterior wall outline is determined by performing arc-shaped line drawing on the wall lines in the building information model and searching clockwise or counterclockwise.
[0006] Step 2: Building floor plan grid generation and indexing: The building floor plan is divided into sections centered on fire hydrants using a virtual grid.
[0007] Step 3: Path analysis using dynamic programming: Calculate grid distances using dynamic programming and path backtracking;
[0008] Step 4: Path Data Contour Closure: By closing the path contour, the calculated data is integrated into one or more geometric shapes, and the detection results are displayed graphically.
[0009] Preferably, the specific steps of step one include:
[0010] Step 1.1 Select all wall lines in the building information model to be processed, and calculate the edge values X-Max, X-Min and Y-Max, Y-min of the wall line's location, which represent the maximum and minimum values in the X direction and the maximum and minimum values in the Y direction, respectively;
[0011] Step 1.2 Calculate the median value of the wall line in the X direction: X-Center = (X-Max + X-Min) / 2;
[0012] Step 1.3 From outside the wall line, emit a ray in the -Y direction and find the intersection point P(i) with the wall line that has the largest Y value;
[0013] Step 1.4 Starting from point P(i), draw an arc Crv counterclockwise or clockwise. The radius of the arc is smaller than the shortest wall in the wall line. Add the wall at the starting position to a non-repeating set Set(w).
[0014] Step 1.5 Calculate the intersection points of the arc Crv and all wall lines. Among the obtained intersection points, the first point in the counterclockwise or clockwise direction is the starting point for the next calculation. At the same time, add the intersecting wall lines to Set(w).
[0015] Step 1.6 Repeat steps 1.4-1.5 until duplicate wall lines are detected in Set(w), at which point the contour detection is complete;
[0016] The wall in step 1.7 Set(w) is the outline of the exterior wall.
[0017] Preferably, the starting coordinates of the -Y direction ray in step 1.3 are X-Cneter, Y-Max+100.
[0018] Preferably, in step 1.3, if multiple wall lines intersect simultaneously, the starting point is randomly shifted by a small value in the X direction, and the intersection point is calculated again after the shift until a point P(i) that meets the conditions is generated.
[0019] Preferably, the specific steps of step two include:
[0020] Step 2.1 Based on the size of the protection radius R and the minimum distance D1 for pedestrians to pass, take the smaller of R / 50 and D1 as the grid size Ms;
[0021] Step 2.2 Using the selected fire hydrant location coordinates as the center, generate Num = (R / Ms+1)^2 grids, with all grids arranged orthogonally;
[0022] Step 2.3 Each grid consists of a line segment RLine from the top left corner to the top right corner and a line segment DLine from the top left corner to the bottom left corner;
[0023] Step 2.4 Each grid is numbered according to its position (i, j) as index = 1000*i + j, where i represents the row number of the grid and j represents the column number of the grid.
[0024] Preferably, step three includes the following steps:
[0025] Step 3.1 Initial state: Set the value of all grid cells to Val = 0;
[0026] Step 3.2 Calculate the intersection of the RLine and DLine of each mesh with the wall lines of the model, and collect the colliding mesh lines into an UnPath set;
[0027] Step 3.3 Starting from the fire hydrant location grid Origin, calculate the connectivity of the four grids above, below, left, and right of Origin; if the connectivity value of the surrounding grids is greater than that of the current grid, increment the current grid's Val by 1; or if no value has been assigned, assign the value Val by 1.
[0028] Step 3.4 Find all objects M in the grid with a value of Val+1, and calculate the connectivity of the four grids above, below, left, and right of M. If the value of the surrounding connected grids is greater than that of the current grid, increment the current grid's Val by 1; or if no value has been assigned, assign the value Val+1.
[0029] Step 3.5 Repeat steps 3.3 and 3.4 until all grids have values;
[0030] Step 3.6 Begin the reverse regression calculation of the grid values;
[0031] Step 3.7 Starting from the grid with the largest value M(n) among all grids, find the grid M(n-1) with a value 1 smaller than M(n) from the surrounding grids; generate a line segment between M(n) and M(n-1), perform intersection checks on all walls, and save the collision results;
[0032] Step 3.8 Repeat step 3.7 until the generated line segments M(n) to M(nc) collide with the wall and the result is true; then add the previously generated non-intersecting line segments M(n) to M(n-c+1) to the path set Set(p); set M(n) to M(nc);
[0033] Step 3.9 Repeat step 3.8 until you return to the center;
[0034] Step 3.10 Summing the line segment lengths in Set(p) gives the path distance for the current grid.
[0035] Step 3.11 Repeat steps 3.7-3.10 to complete the calculation for all grids.
[0036] Preferably, step four includes the following specific steps:
[0037] Step 4.1 Filter out all meshes with values that are less than the protection radius R;
[0038] Step 4.2 Perform a boundary generation operation on the mesh filtered in Step 4.1 to generate four square boundary line segments: top, bottom, left, and right.
[0039] Step 4.3 Add all the line segments from Step 4.2 to a line segment list (List);
[0040] Step 4.4 Determine the position of all line segments in the List, counting line segments with the same position; the line segment that appears only once in the List is the boundary of the shape.
[0041] Step 4.5 processes the line segments from Step 4.4 into a closed contour BoundaryCurveArr with the beginning and end connected;
[0042] Step 4.6 Draw BoundaryCurveArr in Revit to generate a graphic and display the detection results.
[0043] Preferably, step four further includes:
[0044] Step 4.7 Perform boundary calculations on the overlapping meshes of two or more fire hydrants and generate graphics using different colors or chromaticities.
[0045] Preferably, the graphic is displayed on a grid on which the outer grid of the exterior wall outline has been removed.
[0046] The advantage of this application is that the graphical fire hydrant protection distance detection method provided by this application accurately calculates the actual coverage of each fire hydrant; finally, it performs contour calculation on the calculated data to generate graphics of different colors or chromaticities, which are then visualized on the designer's design platform; it shows the unreasonable and non-compliant situations in the fire hydrant design to the designers, greatly improving the efficiency and quality of the design.
[0047] This application provides a graphical method for detecting the protection distance of fire hydrants, which solves the problem that the design quality of fire hydrants could not be verified manually in the past. Attached Figure Description
[0048] Figure 1-1 and Figure 1-2 This is a schematic diagram showing the process and results of the planar exterior wall contour detection.
[0049] Figure 2 This is a gridded diagram of a building floor plan;
[0050] Figure 3 This is a schematic diagram of gridded path analysis;
[0051] Figure 4 A graphical representation of the detection results for the protection distance of a single fire hydrant;
[0052] Figure 5 A graphical representation of the detection results of protection distances for multiple fire hydrants;
[0053] Figure 6 A schematic diagram showing the graphical display of multiple fire hydrant protection distance detection results on a building floor plan;
[0054] Figure 7This is a schematic diagram of the detection method provided in this application. Detailed Implementation
[0055] To make this application more apparent and understandable, preferred embodiments are described in detail below with reference to the accompanying drawings.
[0056] Example
[0057] This embodiment provides a graphical method for detecting the protection distance of fire hydrants. The method includes: detection of the outline of the exterior wall in a plane, generation and indexing of the building floor plan grid, path analysis by dynamic programming, and closure of the path data outline. The method analyzes and judges the information of fire hydrants, walls and doors in the building information model.
[0058] See Figure 7 Specifically, it includes the following steps:
[0059] Step 1: Detection of the outline of the exterior wall
[0060] Defining the calculation area: By performing arc-shaped line drawing on the wall lines in the Building Information Model (BIM) and searching clockwise or counterclockwise, the outline of the exterior walls in complex building plans can be accurately determined. See also Figure 1-1 and Figure 1-2 , Figure 1-1 This is a demonstration of step one. Figure 1-2 This is the final judgment result.
[0061] The specific steps in Step One include:
[0062] Step 1.1 Select all wall lines in the building information model (building floor plan) to be processed, and calculate the edge values X-Max, X-Min and Y-Max, Y-min of the wall line's location, which represent the maximum and minimum values in the X direction and the maximum and minimum values in the Y direction, respectively;
[0063] Step 1.2 Calculate the median value of the wall line in the X direction: X-Center = (X-Max + X-Min) / 2;
[0064] Step 1.3 From outside the wall line, for example, at coordinates X-Cneter, Y-Max+100, emit a ray in the -Y direction to find the intersection point P(i) with the wall line with the largest Y value; if multiple wall lines intersect at the same time, make a random small value offset in the X direction, and continue to calculate the intersection point until a P(i) point that meets the conditions is generated.
[0065] Step 1.4 Starting from point P(i), draw an arc Crv counterclockwise or clockwise. The radius of the arc is smaller than the shortest wall in the wall line. Add the wall at the starting position to a non-repeating set Set(w).
[0066] Step 1.5 Calculate the intersection points of the arc Crv and all wall lines. Among the obtained intersection points, the first point in the counterclockwise (or clockwise, the direction needs to be kept consistent throughout the process) direction is the starting point for the next calculation. At the same time, add the intersecting wall lines to Set(w).
[0067] Step 1.6 Repeat steps 1.4-1.5 until duplicate wall lines (such as the starting wall) are detected in Set(w) and added, then the contour detection is complete;
[0068] The wall in step 1.7 Set(w) is the outline of the exterior wall.
[0069] Step 2: Architectural floor plan grid generation and indexing
[0070] The building plan is divided using a virtual grid centered on fire hydrants. The size and number of grid cells are dynamically adjusted. Combined with grid indexing, the method avoids redundant calculations during geometric determinations, significantly improving computational efficiency.
[0071] Step two includes the following steps:
[0072] Step 2.1 Based on the size of the protection radius R (the protection radius of the fire hydrant, which is generally determined by the length of the fire hose; in practice, the value of dividing the length of the fire hose by the safety factor is generally not used as the protection radius), and combined with the minimum distance for pedestrians to pass through D1 (in practice, it is generally taken as 0.8m, and the minimum is 0.5m), the smaller of R / 50 and D1 is taken as the grid size Ms;
[0073] Step 2.2 Using the selected fire hydrant location coordinates (X, Y) as the center, generate Num = (R / Ms + 1)^2 grids, with all grids arranged orthogonally, as shown below. Figure 2 As shown;
[0074] Step 2.3 Each grid consists of an RLine (the line segment from the top left corner to the top right corner) and a DLine (the line segment from the top left corner to the bottom left corner);
[0075] Step 2.4 Each grid is numbered according to its position (i, j) as index = 1000*i + j, where i represents the row number of the grid and j represents the column number of the grid.
[0076] Step 3: Perform path analysis using dynamic programming.
[0077] Dynamic programming and path backtracking are used to calculate grid distances. In the calculation data, each grid corresponds to a real path.
[0078] Step three includes the following specific steps:
[0079] Step 3.1 Initial state: Set the value of all grid cells to Val = 0;
[0080] Step 3.2 Perform intersection calculations on the RLine and DLine of each mesh with the wall lines of the model. Collect the colliding mesh lines into an UnPath set (the UnPath set is a set of unavailable paths);
[0081] Step 3.3 Starting from the fire hydrant location grid Origin (Val=0), calculate the connectivity of the four grids above, below, left, and right of Origin (if the RLine and DLine of the current grid are not included in the UnPath set, then it is considered connected); if the value of the surrounding connectable grids is greater than that of the current grid, Val+1 (current grid value+1) or if no value has been assigned, then Val+1 is assigned.
[0082] Step 3.4 Find all objects M in the grid with a value of Val+1, and calculate the connectivity of the four grids above, below, left, and right of M. If the value of the surrounding connectable grids is greater than the current grid's Val+1 (current grid value +1) or has not been assigned a value, then assign it the value of Val+1.
[0083] Step 3.5 Repeat steps 3.3 and 3.4 until all grids have values;
[0084] Step 3.6 Begin the reverse regression calculation of the grid values;
[0085] Step 3.7 Starting from the grid with the largest value M(n) among all grids, find the grid M(n-1) with a value 1 smaller than M(n) from the surrounding grids; generate a line segment between M(n) and M(n-1), perform intersection checks on all walls, and save the collision results;
[0086] Step 3.8 Repeat step 3.7 until the generated line segments M(n) to M(nc) collide with the wall and the result is true; then add the previously generated non-intersecting line segments M(n) to M(n-c+1) to the path set Set(p); set M(n) to M(nc);
[0087] Step 3.9 Repeat step 3.8 until you return to the center (fire hydrant position);
[0088] Step 3.10 Summing the line segment lengths in Set(p) gives the path distance for the current grid.
[0089] Step 3.11 Repeat steps 3.7-3.10 to complete the calculation for all grids.
[0090] Step 4: Closing the Path Data Profile
[0091] In step three, the path data in the calculation results is actually a scattered set of points, which cannot be visually displayed to designers. By closing the path outline, the calculated data is integrated into one or more geometric shapes. The resulting graphical interface is clear and concise, providing significant reference value for designers.
[0092] Step four includes the following specific steps:
[0093] Step 4.1 Filter out all meshes with values that are less than the protection radius R;
[0094] Step 4.2 Perform a boundary generation operation on the mesh filtered in Step 4.1 to generate four square boundary line segments: top, bottom, left, and right.
[0095] Step 4.3 Add all the line segments from Step 4.2 to a line segment list (List);
[0096] Step 4.4 Determine the position of all line segments in the List, counting line segments with the same position; the line segment that appears only once in the List is the boundary of the shape.
[0097] Step 4.5 processes the line segments from Step 4.4 into a closed contour BoundaryCurveArr with the beginning and end connected;
[0098] Step 4.6 Draw the BoundaryCurveArr graph to generate the desired shape, as shown below. Figure 4 As shown;
[0099] Additional:
[0100] Step 4.7 If boundary calculations are performed on overlapping meshes in two or more fire hydrants, and graphics are generated using different colors or chromaticities, the effect is as follows: Figure 5 As shown.
[0101] In a preferred embodiment, when processing the mesh, the mesh outside the outer wall outline in step one is deleted. The final graphic generated by this method is displayed on the mesh from which the outer wall outline was deleted, resulting in the following graphic effect: Figure 6 As shown.
[0102] Based on the above steps, the graphical fire hydrant protection distance detection method provided in this application accurately calculates the actual coverage area (simulating human walking distance) of each fire hydrant. Finally, contour calculations are performed on the calculated data to generate graphics of different colors or shades, which are then visualized on the designer's design platform. This method reveals any unreasonable or non-compliant aspects of fire hydrant design to designers, greatly improving design efficiency and quality. The graphical fire hydrant protection distance detection method provided in this application solves the problem that manual verification of fire hydrant design quality was previously impossible.
Claims
1. A graphical method for detecting the protection distance of fire hydrants, characterized in that, include: Step 1: Planar exterior wall outline detection: The exterior wall outline is determined by performing arc-shaped line drawing on the wall lines in the building information model and searching clockwise or counterclockwise. Step 2: Building floor plan grid generation and indexing: The building floor plan is divided into sections centered on fire hydrants using a virtual grid. Step 3: Path analysis using dynamic programming: Calculate grid distances using dynamic programming and path backtracking; The specific steps of step three include: Step 3.1 Initial state: Set the value of all grid cells to Val = 0; Step 3.2 Calculate the intersection of the RLine and DLine of each mesh with the wall lines of the model, and collect the colliding mesh lines into an UnPath set; Step 3.3 Starting from the fire hydrant location grid Origin, calculate the connectivity of the four grids above, below, left, and right of Origin; if the connectivity value of the surrounding grids is greater than that of the current grid, increment the current grid's Val by 1; or if no value has been assigned, assign the value Val by 1. Step 3.4 Find all objects M in the grid with a value of Val+1, and calculate the connectivity of the four grids above, below, left, and right of M. If the value of the surrounding connected grids is greater than that of the current grid, increment the current grid's Val by 1; or if no value has been assigned, assign it Val+1. Step 3.5 Repeat steps 3.3 and 3.4 until all grids have values; Step 3.6 Begin the reverse regression calculation of the grid values; Step 3.7 Starting from the grid with the largest value M(n) among all grids, find the grid M(n-1) with a value 1 smaller than M(n) from the surrounding grids; generate a line segment between M(n) and M(n-1), perform intersection checks on all walls, and save the collision results; Step 3.8 Repeat step 3.7 until the generated line segments M(n) to M(nc) collide with the wall and the result is true; then add the previously generated non-intersecting line segments M(n) to M(n-c+1) to the path set Set(p); set M(n) to M(nc); Step 3.9 Repeat step 3.8 until you return to the center; Step 3.10 Summing the lengths of line segments in Set(p) gives the path distance for the current grid. Step 3.11 Repeat steps 3.7-3.10 to complete the calculation for all grids; Step 4: Path Data Contour Closure: By closing the path contour, the calculated data is integrated into one or more geometric shapes, and the detection results are displayed graphically.
2. The graphical fire hydrant protection distance detection method as described in claim 1, characterized in that, The specific steps of step one include: Step 1.1 Select all wall lines in the building information model to be processed, and calculate the edge values X-Max, X-Min and Y-Max, Y-min of the wall line's location, which represent the maximum and minimum values in the X direction and the Y direction, respectively; Step 1.2 Calculate the median value of the wall line in the X direction: X-Center = (X-Max + X-Min) / 2; Step 1.3 From outside the wall line, emit a ray in the -Y direction and find the intersection point P(i) with the wall line that has the largest Y value; Step 1.4 Starting from point P(i), draw an arc Crv counterclockwise or clockwise, with the radius of the arc being smaller than the shortest wall in the wall line. Add the wall at the starting position to a non-repeating set Set(w). Step 1.5 Calculate the intersection points of the arc Crv with all wall lines. Among the obtained intersection points, the first point in the counterclockwise or clockwise direction is the starting point for the next calculation. At the same time, add the intersecting wall lines to Set(w). Step 1.6 Repeat steps 1.4-1.5 until duplicate wall lines are detected in Set(w), at which point the contour detection is complete; The wall in step 1.7 Set(w) is the outline of the exterior wall.
3. The graphical fire hydrant protection distance detection method as described in claim 2, characterized in that, In step 1.3, the starting coordinates of the Y-direction ray are X-Cneter, Y-Max+100.
4. The graphical fire hydrant protection distance detection method as described in claim 3, characterized in that, If multiple wall lines intersect simultaneously in step 1.3, the starting point is randomly shifted by a small value in the X direction. After the shift, the intersection point is calculated again until a point P(i) that meets the conditions is generated.
5. The graphical method for detecting the protection distance of a fire hydrant as described in claim 2, characterized in that, The specific steps of step two include: Step 2.1 Based on the size of the protection radius R and the minimum distance D1 for pedestrians to pass, take the smaller of R / 50 and D1 as the grid size Ms; Step 2.2 Using the selected fire hydrant location coordinates as the center, generate Num = (R / Ms + 1)^2 grids, with all grids arranged orthogonally; Step 2.3 Each grid consists of a line segment RLine from the top left corner to the top right corner and a line segment DLine from the top left corner to the bottom left corner; Step 2.4 Each grid cell is numbered index = 1000 based on its position (i, j). i + j, where i represents the row number of the grid and j represents the column number of the grid.
6. The graphical fire hydrant protection distance detection method as described in claim 1, characterized in that, The specific steps of step four include: Step 4.1 Filter out all meshes with values that are smaller than the protection radius R; Step 4.2 Perform a boundary generation operation on the mesh filtered in Step 4.1 to generate four square boundary line segments: top, bottom, left, and right. Step 4.3 Add all the line segments from Step 4.2 to a line segment list (List); Step 4.4 Determine the position of all line segments in the List, counting line segments with the same position; the line segment that appears only once in the List is the boundary of the shape. Step 4.5 Process the line segments in Step 4.4 into a closed contour BoundaryCurveArr where the beginning and end meet. Step 4.6 Draw BoundaryCurveArr in Revit to generate a graphic and display the detection results.
7. The graphical method for detecting the protection distance of a fire hydrant as described in claim 6, characterized in that, Step four also includes: Step 4.7 Perform boundary calculations for overlapping meshes of two or more fire hydrants and generate graphics using different colors or chromaticities.
8. A graphical method for detecting the protection distance of a fire hydrant as described in claim 6 or 7, characterized in that, The graphic is displayed on the grid where the outer grid of the exterior wall outline has been removed.