A method for automatically generating building walls based on dynamo and panoramic map
By combining panoramic images and DA2 models through the Dynamo platform, wall point clouds are generated and line segments are fitted, solving the problem of reverse engineering wall models from panoramic images and achieving low-cost, high-efficiency BIM reconstruction, which is suitable for multiple application scenarios.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-01-05
- Publication Date
- 2026-03-24
AI Technical Summary
Existing technologies lack a low-cost, efficient, and automated method to reverse engineer building wall models from panoramic images, especially for BIM reconstruction challenges where there are no drawings or the drawings do not match. Traditional methods are time-consuming, costly, and have low automation.
By using the Dynamo platform in conjunction with panoramic images, wall point cloud data is generated through the DA2 model. The wall and non-wall parts are separated using a multimodal model, and line segments are fitted using the RANSAC algorithm to generate wall instances, thus realizing automated modeling of BIM walls from panoramic images.
It achieves low-cost, high-efficiency automatic wall modeling, improving modeling efficiency by 95%. The generated BIM wall model is accurate and parametrically driven, meeting the needs of engineering applications and suitable for owner self-decoration, rapid quotation and large-scale project surveying.
Smart Images

Figure CN121437778B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of building modeling, and particularly relates to a method for automatically generating a building wall based on Dynamo and a panoramic map. BACKGROUND
[0002] With the deepening of the concepts of urban renewal, building reconstruction and operation, and digital twin, it has become an urgent need in the industry to quickly and low-costly rebuild BIM for existing buildings. However, a large number of stock buildings are facing the dilemma of missing drawings or inconsistency with the current situation. Traditional BIM reconstruction relies on manual field measurement and manual modeling, which has the disadvantages of long time-consuming, high cost, and easy to make mistakes, and is difficult to support large-scale digital projects.
[0003] After searching, the patent with publication number CN118690467B provides a building masonry arrangement scheme optimization method based on Dynamo, which generates a wall layout scheme through a pre-set parameterized family library, solving the problem of masonry deepening design. The patent with publication number CN116427712B discloses a method for pouring auxiliary components of masonry infill walls with the main body based on BIM technology, which automatically generates wall piers, lintels and other auxiliary components using Dynamo program. Although the above two technologies use Dynamo to realize automation in specific links and improve design efficiency, they both belong to the category of forward design, that is, relying on pre-set parameters, rules or existing wall models for secondary generation or optimization. The core limitation is the lack of the ability to reversely construct wall geometry from actual field data, which cannot solve the problem of automatic modeling of existing buildings without drawings or with inconsistent drawings.
[0004] In the field of building reverse modeling, the current mainstream technical means is three-dimensional laser scanning and photogrammetry. For example, Jinyusheng proposes an indoor automatic BIM reconstruction method based on laser point cloud (Master's thesis of Wuhan University of Technology in 2023), which applies to generate high-precision three-dimensional point cloud by shooting a large number of overlapping photos or using a laser scanner, and then reconstructing the model. These technologies can obtain high-precision three-dimensional data, but also have obvious defects: laser scanning equipment is expensive, complex to operate, and has a long data processing cycle, which conflicts with the goal of low-cost application; and the photogrammetry method needs to shoot hundreds of photos and relies heavily on complex algorithms. More importantly, the original results produced by these two technologies are discrete point clouds, and from the point clouds to the structured and parameterized BIM wall model (such as the wall component in Revit), a large amount of manual interaction and semi-automatic "point cloud registration" and "model fitting" work are still needed, which has low automation degree and fails to realize seamless connection with the work flow of mainstream BIM platforms (such as Revit).
[0005] In summary, there is a lack of technical means and methods in the prior art system that can directly utilize low-cost and easily accessible panoramic image data and efficiently and automatically generate building wall models in reverse to improve design and operation efficiency.
[0006] Compared with ordinary photos or point clouds, the use of panoramic images to automatically generate walls faces unique and complex technical challenges, which is also the reason why this technology has not been effectively broken through for a long time:
[0007] (1) Geometric distortion and spatial understanding challenge: Panoramic images usually use spherical or cylindrical projection, which causes straight lines in the image (such as wall corner lines, intersection lines of ceiling and wall) to be curved on the two-dimensional plane. The algorithm must first perform accurate geometric correction to calculate the image from the projection plane back to the three-dimensional coordinate system. The calibration accuracy of camera parameters (such as focal length, sensor size) is extremely high, and any small error will cause a large deviation in the position and angle of the wall;
[0008] (2) Lack of scale information: A single panoramic image is essentially a two-dimensional image, lacking depth and size information in the real world; the actual length of a wall in the image may be 3 meters or 6 meters. How to recover the real physical size of the wall from the pixel information without any known size reference is a pathological problem that requires the introduction of additional constraints or prior knowledge (such as assuming that the wall is vertical and the floor is horizontal) to solve, which limits its applicability in non-standard spaces;
[0009] (3) Interference of occlusion and noise: Indoor environments are usually filled with furniture, decorations, doors, windows, lamps, and other objects, which can break the continuity of the wall and make it difficult for the algorithm to identify the complete wall boundary; at the same time, the complex texture of the wall (such as wallpaper, wood grain), light changes, reflections, and other visual noise can interfere with the accurate extraction of the real geometric edge (such as the corner of the wall), and the texture can be mistaken for a structural line;
[0010] (4) Complexity of topological structure inference: It is extremely difficult to accurately identify all walls from a two-dimensional image and construct the correct spatial topological relationship (i.e., which wall is connected to which wall, forming which room); the algorithm needs to accurately identify doorways, window openings, and correctly judge the connection relationship of the wall, especially in the presence of non-orthogonal walls, curved walls, or complex spatial layouts, the difficulty and error rate of topological inference will increase dramatically.
[0011] Therefore, there is a huge market demand for BIM reconstruction of existing buildings, but existing technical solutions have obvious shortcomings: forward automated design based on Dynamo cannot solve the problem of reverse modeling from scratch; while high-precision reverse engineering technologies, represented by laser scanning and photogrammetry, suffer from high costs, complex processes, and low automation (especially in the point cloud to BIM stage). Directly using panoramic images for automatic wall generation has the potential for low cost and high efficiency, but it faces multiple technical challenges such as geometric distortion, scale loss, occlusion interference, and topology inference.
[0012] Patent application CN111612911A proposes an automated point cloud BIM modeling method based on Dynamo. This method automates the conversion of point clouds into solid models through slicing, projection, and lofting, and is suitable for single solid models. However, this method struggles to accurately reconstruct several specific components, such as walls, beams, and columns. For components like walls with clear geometric features and specific semantics, this method is not specifically optimized. It requires a complete slicing and lofting process, and may not be able to directly and efficiently extract key parameters such as the wall's centerline, thickness, and height. The modeling process is relatively cumbersome, and its efficiency is low when dealing with a large number of regular walls.
[0013] Patent application CN120070742A proposes a method and system for instance segmentation and model reconstruction based on deep learning and synthetic point clouds. First, a large number of synthetic point clouds are generated from a BIM model to train an instance segmentation network. Then, the trained model is used to identify components such as walls in the real point cloud. While this method aims to achieve component-level recognition, its core technology and barriers are entirely concentrated in the data synthesis and model training stages, lacking a concrete modeling implementation process. Therefore, there is a significant technological gap between its technical solution and practical application. Specifically, it did not disclose the specific geometric processing logic, such as how to accurately extract the core geometric parameters that determine the wall shape from discrete wall point clouds that may contain noise. It also did not disclose the parametric modeling method, such as how to dynamically drive the instantiation of wall families in Revit through Dynamo nodes and logic, and ensure that the generated model is a BIM element with the correct category and attributes rather than an uneditable mass. Furthermore, it did not disclose the automated process design, such as how to build a stable and efficient Dynamo modeling process to achieve full automation from "wall point cloud" input to "BIM wall" generation, rather than a semi-automated operation that relies on manual intervention.
[0014] Therefore, there is an urgent need in this field for a new technical solution that can overcome the above difficulties and realize the automated and intelligent reconstruction from panoramic images to point clouds and then to structured BIM walls, thereby filling the technical gap in low-cost and high-efficiency building reverse modeling. Summary of the Invention
[0015] This invention aims to utilize the Dynamo platform combined with indoor panoramic images to achieve low-cost, high-efficiency automatic wall modeling without the need for laser scanning equipment, thereby solving technical problems such as long manual modeling time, low automation level, and disconnection from Revit workflow in the BIM reconstruction of existing buildings.
[0016] To achieve the above objectives, the present invention adopts the following technical solution.
[0017] A method for automatically generating building walls based on Dynamo and panoramic images includes the following steps:
[0018] S1: Capture a panoramic image of the building walls, import the resulting panoramic image into Dynamo, and use DA... 2 The model generates point cloud data of the wall structure;
[0019] S2: Generate an initial point cluster list based on the wall point cloud data obtained in S1;
[0020] S3: Generate multiple surfaces corresponding to the building walls, floors, and ceilings based on the initial point group list obtained in S2, and then generate an initial surface list based on the multiple surfaces;
[0021] S4: Filter out the surfaces corresponding to the floor slab and ceiling from the initial surface list obtained in S3 to obtain the filtered surface list;
[0022] S5: Obtain the coordinate midpoints of each surface in the filtered surface list obtained in S4 to form a filtered surface midpoint list; then generate the initial positioning line based on the filtered surface midpoint list; obtain the midpoint of the initial positioning line to form the initial positioning midpoint;
[0023] S6: Use the initial positioning line obtained in S5 as the initial normal; generate the initial positioning plane based on the initial normal and the initial positioning midpoint;
[0024] S7: Obtain the distance from each point in the initial point group list obtained in S2 to the initial positioning plane, forming a point group distance list; then sort the initial point group in ascending order according to the corresponding distance values in the point group distance list to obtain a sorted point group list;
[0025] S8: Select several points with smaller distance values from the sorted point group list obtained in S7 to form a filtered point group list; then project each point in the filtered point group list onto the initial positioning plane obtained in S6 to obtain the projected point group list.
[0026] S9: Perform multi-line fitting on the list of projected points obtained in S8 to obtain a list of fitted line segments.
[0027] S10: Generate the smallest cube model that can completely enclose the initial point group based on the initial point group list obtained in S2, and obtain the geometric midpoint of the cube model; obtain the point closest to the geometric midpoint of each line segment in the fitted line segment list obtained in S9, and obtain the list of closest points.
[0028] S11: Connect the geometric midpoint obtained in S10 with each point in the nearest point list to obtain multiple vectors starting from the geometric midpoint, and generate a list of geometric vectors.
[0029] S12: Using the initial positioning midpoint obtained in S5 as the starting point, generate a vector with half of the initial positioning line to obtain the height offset vector; offset each line segment in the fitted line segment list obtained in S9 along the height offset vector to obtain the offset line segment list.
[0030] S13: Determine the height and thickness of the wall; then obtain the length of the initial positioning line obtained in S5, and then divide the wall height by the obtained line length to get the scaling factor;
[0031] S14: Scale the offset line segment list obtained in S12 according to the scaling factor obtained in S13 to obtain a scaled line segment list; offset each line segment in the scaled line segment list along the corresponding vector direction in the geometric vector list obtained in S11, with an offset distance of half the wall thickness, to obtain a scaled offset line segment list.
[0032] S15: Using the line segments in the scaled and offset line segment list obtained in S14 as the center line of the bottom surface of each wall along its length, generate wall instances based on the wall height, wall thickness, and wall type.
[0033] It should be noted that in S1, the use of DA 2 The model generates wall point cloud data, including the following steps:
[0034] Using DA 2 The model extracts a depth information map from the panoramic image;
[0035] Based on the obtained depth information map, a multimodal model is used to separate the wall portion and the non-wall portion in the panoramic image to obtain a wall masking map.
[0036] Based on the wall masking map, the wall portion is extracted from the panoramic image using DA (Data Acoustics). 2 The model generates point cloud data of the wall.
[0037] It should be noted that the multimodal model adopted is the Qwen3-VL-8B-Instruct model.
[0038] It should be noted that step S2 further includes the following steps:
[0039] The acquired wall point cloud data is converted into a three-level list of geometric text.
[0040] Convert a geometric text three-level list into a geometric numerical three-level list;
[0041] Obtain the first, middle, and last items of each second-level list in the geometric numerical third-level list, and use them as the X, Y, and Z axis coordinates of the corresponding points to generate an initial point group.
[0042] It should be noted that step S4 further includes the following steps:
[0043] Obtain the Z-coordinate values of the normal vectors at the midpoints of each surface in the initial surface list, and obtain a list of Z values;
[0044] Determine whether the absolute value of each Z value in the Z-value list is greater than or equal to a threshold to obtain the Z-value judgment list; the threshold is generally 0.4-0.8, preferably 0.5;
[0045] Based on the Z-value judgment list, surfaces with an absolute Z-value greater than or equal to a threshold are separated from the initial surface list, resulting in a filtered surface list.
[0046] It should be noted that in S8, the number of point groups in the filtered point group list is 2000-4000.
[0047] It should be noted that in step S9, an optimization algorithm based on RANSAC is used to fit the point groups in the projected point group list.
[0048] It should be noted that in S9, the number of fitted line segments is the same as the number of walls.
[0049] It should be noted that in S13, the height and thickness of the wall are obtained by recognizing the wall in the panoramic image using a multimodal model, or by manually measuring the actual wall and then inputting the information.
[0050] It should be noted that in S14, when scaling the offset list of line segments, the scaling center is the center of the coordinate circle of the coordinate system in which the initial point group list is imported into Dynamo.
[0051] Compared with the prior art, the present invention has the following beneficial technical effects:
[0052] (1) A revolution in low-cost and high-efficiency data acquisition has been achieved: by using inexpensive, portable panoramic cameras to replace expensive professional laser scanners, and combining them with AI models (DA) 2The model efficiently converts panoramic images into point clouds. This invention not only reduces hardware investment costs by more than 90%, but also shortens on-site data collection time from several hours to several minutes, clearing obstacles for the widespread application of BIM technology in a wider range of fields.
[0053] (2) An end-to-end fully automated intelligent modeling process has been constructed: This invention creates a complete technical closed loop of 'panoramic image → AI point cloud → Dynamo parametric wall'. Users only need to provide an initial panoramic image to automatically obtain a high-quality BIM wall model, which completely eliminates the cumbersome links of manual intervention, data format conversion and deep learning model training in the traditional process, and improves the overall modeling efficiency by more than 95%.
[0054] (3) It ensures the high quality and practicality of the final BIM results: Although the source data comes from the panoramic view, it is processed through DA 2 The professional AI conversion model and subsequent targeted Dynamo wall extraction algorithm ultimately generate pure, parameterized Revit wall elements with accurate positioning, thickness, and height information, and built-in BIM attributes, fully meeting the needs of professional-grade engineering applications and analysis.
[0055] (4) It has opened up new scenarios for BIM applications that are unprecedented: The low threshold, high efficiency and low cost of this invention make it have great application potential in areas such as owner self-decoration, contractor quick quotation, parallel survey of large projects and digital archiving of historical buildings, which helps to promote the transformation of BIM technology from a 'high-end professional' tool to a 'universal' infrastructure. Attached Figure Description
[0056] Figure 1 This is a flowchart of a method for automatically generating building walls based on Dynamo and panoramic images.
[0057] Figure 2 Screenshot of part of the Dynamo program in step S10.
[0058] Figure 3 Example 1 of the panoramic image to be processed.
[0059] Figure 4 This is a wall masking image obtained based on Example 1 of the panoramic image to be processed.
[0060] Figure 5 This is a depth information map obtained based on Example 1 of the panoramic image to be processed.
[0061] Figure 6 The following are comparison images of point clouds obtained based on Example 1 of the panoramic image to be processed; wherein, Figure (a) is the point cloud model generated based on the panoramic image, and Figure (b) is the point cloud model generated after masking processing.
[0062] Figure 7 This is a cloud model of the wall view obtained from Example 1 of the panoramic image to be processed.
[0063] Figure 8 This is a schematic diagram of the point group obtained from Example 1 of the panoramic image to be processed.
[0064] Figure 9 This is a schematic diagram of a wall instance obtained from Example 1 of the panoramic image to be processed.
[0065] Figure 10 Example 2 of the panoramic image to be processed.
[0066] Figure 11 This is a wall masking image obtained based on Example 2 of the panoramic image to be processed.
[0067] Figure 12 This is a depth information map obtained based on Example 2 of the panoramic image to be processed.
[0068] Figure 13 The following are comparison images of point clouds obtained based on Example 2 of the panoramic image to be processed; wherein, Figure (a) is the point cloud model generated based on the panoramic image, and Figure (b) is the point cloud model generated after masking processing.
[0069] Figure 14 This is a panoramic cloud model of the wall obtained from Example 2 of the panoramic image to be processed.
[0070] Figure 15 This is a schematic diagram of the point group and line segments obtained based on Example 2 of the panoramic image to be processed.
[0071] Figure 16 This is a schematic diagram of a wall instance obtained from Example 2 of the panoramic image to be processed.
[0072] Figure 17 Example 3 of the panoramic image to be processed.
[0073] Figure 18 This is a wall masking image obtained based on Example 3 of the panoramic image to be processed.
[0074] Figure 19 This is a depth information map obtained based on Example 3 of the panoramic image to be processed.
[0075] Figure 20 The following are comparison images of point clouds obtained based on Example 3 of the panoramic image to be processed; where Figure (a) is the point cloud model generated based on the panoramic image, and Figure (b) is the point cloud model generated after masking processing.
[0076] Figure 21 This is a cloud model of the wall view obtained from Example 3 of the panoramic image to be processed.
[0077] Figure 22 This is a schematic diagram of the point group obtained from Example 3 of the panoramic image to be processed.
[0078] Figure 23 This is a schematic diagram of a wall instance obtained from Example 3 of the panoramic image to be processed. Detailed Implementation
[0079] The technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention.
[0080] Please see Figures 1-2 This embodiment provides a method for automatically generating building walls based on Dynamo and panoramic images, including the following steps.
[0081] S1: Capture a panoramic image of the building walls, select the desired panoramic image for processing using the File Path node in Dynamo, and then combine it with the Depth Anything in Any Direction model (DA) using the Python Script node. 2 The model obtains the depth information map from the panoramic image. Then, using the Qwen3-VL-8B-Instruct model (a type of multimodal model), the panoramic image and the depth information map are combined to separate the wall and non-wall parts in the panoramic image, resulting in a wall mask map. Based on the wall mask map, the wall parts are extracted from the panoramic image using Python Script nodes, employing the Depth Anything in Any Direction (DA) model. 2 The model converts the wall portion into wall point cloud data in XYZ format.
[0082] It should be noted that in the panoramic image captured, the ceiling is usually located at the top, the floor (or slab) at the bottom, and the walls are usually in the center. If the panoramic image is not oriented correctly when imported, it can be rotated to the correct orientation beforehand.
[0083] S2: The wall point cloud data obtained in S1 is converted into a three-level list of geometric text using the File From Path node, FileSystem.ReadText node and String.Split node in Dynamo. Then, the three-level list of geometric text is converted into a three-level list of geometric values using the String.ToNumber node. The first, middle and last items of each second-level list in the three-level list of geometric values are obtained as the X, Y and Z coordinates of the corresponding points using the List.GetItemAtIndex node. Then, the initial point group list is generated using the Point.ByCoordinates node.
[0084] For example: Define a three-level list as [[A,B,C],[D,E,F],[G,H,I]], and three second-level lists as [A,B,C], [D,E,F], and [G,H,I]. The first items of these three second-level lists are A, D, and G, which are used as the X-axis coordinates of points 1#, 2#, and 3#, respectively. The middle items of these three second-level lists are B, E, and H, which are used as the Y-axis coordinates of points 1#, 2#, and 3#, respectively. The last items of these three second-level lists are C, F, and I, which are used as the Z-axis coordinates of points 1#, 2#, and 3#, respectively.
[0085] S3: Based on the initial point group list obtained in S2, the initial point group is transformed into multiple surfaces corresponding to the building walls, floors, and ceilings through the BoundingBox.ByGeometry node and the BoundingBox.ToPolySurface node. Then, the multiple surfaces are transformed into an initial surface list through the PolySurface.Surfaces node.
[0086] S4: Then, obtain the Z-coordinate values of the normal vectors of the midpoints of each surface in the initial surface list obtained from S3 through the Surface.NormalAtParameter node and Vector.Z node to obtain the Z-value list; then, use the greater than logic node to determine whether each Z-value in the Z-value list is greater than or equal to 0.5 (the threshold is generally 0.4-0.8, and 0.5 is used in this implementation) to obtain the Z-value judgment list; use the List.FilterByBoolMask node to separate the surfaces with Z-values greater than or equal to 0.5 (corresponding to the ceiling and floor) from the initial surface list according to the Z-value judgment list to obtain the filtered surface list.
[0087] S5: Obtain the coordinate midpoints of each surface in the filtered surface list obtained in S4 through the Surface.PointAtParameter node to form a filtered surface midpoint list; then generate the initial positioning line from the filtered surface midpoint list through the Line.ByBestFitThroughPoints node; obtain the midpoint of the initial positioning line through the Curve.PointAtParameter node to form the initial positioning midpoint.
[0088] S6: Use the initial positioning line obtained in S5 as the initial normal; then generate the initial positioning plane through the Plane.ByOriginNormal node based on the initial normal and the initial positioning midpoint.
[0089] S7: Obtain the distance from each point in the initial point group list obtained in S2 to the initial positioning plane through the Geometry.DistanceTo node, forming a point group distance list; then sort the initial point group in ascending order according to the corresponding distance values in the point group distance list through the List.SortByKey node to obtain the sorted point group list.
[0090] S8: Select several points with smaller distance values from the sorted point group list obtained in S7 using the List.Chop node, List.FirstItem node, List.Flatten node, and List.Join node to form a filtered point group list; then project each point in the filtered point group list onto the initial positioning plane obtained in S6 using Point.Project to obtain the projected point group list.
[0091] If the number of points in the initial point group is too large, reaching hundreds of thousands, projecting all points onto the initial positioning plane would result in excessive computation, which could easily cause the program to freeze or crash. To avoid this situation, this embodiment selects several thousand points for projection, which ensures the accuracy of the subsequent fitted line segments while reducing the amount of computation.
[0092] This invention uses DA 2 The model undergoes point cloud processing. The number of point clusters in the filtered list should ideally be between 2000 and 4000, and the point cloud should be generated from a single complete panoramic image. However, for cases involving the fusion of multiple partial panoramic images, a different number of point clusters is required. The ultimate goal is to achieve high accuracy in the generated line segments while minimizing computational overhead. Those skilled in the art can select the appropriate number of point clusters based on the specific circumstances.
[0093] S9: An optimization algorithm based on RANSAC, which uses Python Script nodes to perform multi-line fitting on the projected list of points obtained in S8, and obtains a list of fitted line segments.
[0094] The number of lines described in this embodiment is typically matched to the number of walls. Each line segment represents a projection line of the inner surface of the wall, or the intersection line of the inner surface of the wall and the initial positioning plane.
[0095] S10: Based on the initial point group list obtained in S2, use the BoundingBox.ByGeometry node and the BoundingBox.ToCuboid node to generate the smallest cube model that can completely enclose the initial point group. Then, use the Solid.Centroid node to obtain the geometric midpoint of the cube model. Finally, use the Geometry.ClosestPointTo node to obtain the nearest point to the geometric midpoint for each line segment in the fitted line segment list, and obtain the nearest point list.
[0096] S11: Connect the geometric midpoint obtained in S10 to each point in the nearest point list through the Vector.ByTwoPoints node to obtain multiple vectors starting from the geometric midpoint, thus obtaining a list of geometric vectors.
[0097] S12: Starting from the initial positioning midpoint obtained in S5, generate a vector along half of the initial positioning line to obtain the height offset vector; finally, use the Geometry.Translate node to offset each line segment in the fitted line segment list obtained in S9 along the height offset vector to obtain the offset line segment list.
[0098] S13: Identify the height and thickness of the walls in the panoramic image using the Python Script node combined with the Qwen3-VL-8B-Instruct model to obtain the wall height and thickness (which can also be manually input); then obtain the length of the initial positioning line obtained in S5 using the Curve.Length node, and then divide the wall height by the obtained line length to get the scaling factor.
[0099] S14: Scale the offset line segment list obtained in S12 using the Geometry.Scale node according to the scaling factor obtained in S13 to obtain a scaled line segment list; then offset each line segment in the scaled line segment list along the corresponding vector direction in the geometric vector list obtained in S11 using the Geometry.Translate node, with the offset distance being half the wall thickness, to obtain a scaled and offset line segment list.
[0100] S15: Using the line segments in the scaled and offset line segment list obtained in S14 as the center line of the bottom surface of each wall along its length, the Wall.ByCurveAndHeight node is used to combine the line segments in the scaled and offset line segment list with the wall height, wall thickness, and wall type to generate the final wall instance.
[0101] Based on the generated wall instances, after picking the outer contours of the bottom and top surfaces of the four walls, the upper surface of the floor slab and the lower surface of the ceiling can be automatically generated. Then, based on the thickness of the floor slab and ceiling, a complete architectural space can be generated. Architectural spaces on the same floor can be built using the aforementioned method, and then multiple spaces can be stitched together according to the architectural layout of the same floor. When a building has multiple spaces, the modeling method is the same, with the ceiling of the lower space serving as the floor slab of the upper space. Thus, the entire building can be generated relatively easily. Clutter within the space has a certain height and often obscures the walls. Without masking, clutter can affect the accuracy of the wall depth information map, leading to inaccurate final modeling. After masking, even if clutter exists, its depth information will not be included when generating the wall point cloud data. Therefore, clutter will not affect reverse modeling, thus saving users a lot of relocation or cleaning work when shooting panoramic images.
[0102] The geometric modeling process of this invention is as follows: S1 uses DA 2 The model generates wall point cloud data based on the panoramic view of the building interior. Then, S2 generates an initial point group list (the initial point group corresponds to the position of the inner surface of the building wall). S3 generates an initial surface (including the inner surface of the wall and the inner surface of the floor slab and ceiling) based on the initial point group. S4 filters out the filter surfaces corresponding to the floor slab and ceiling. S5 and S6 generate the intermediate plane (initial positioning plane) between the two filter surfaces. S7 and S8 project the point group that is closer to the initial positioning plane in the initial point group onto the initial positioning plane as the positioning basis of the inner surface of the wall. S9 fits to obtain the positioning line of the inner surface of the wall. S10-S11 generate the offset vector of the positioning line of the inner surface of the wall in the horizontal plane. S12 offsets the positioning line of the inner surface of the wall vertically to the top or bottom surface of the wall. S13 determines the scaling size of the positioning line of the inner surface of the wall relative to the actual inner surface size of the wall. S14 obtains the actual inner contour line of the bottom of the wall and obtains the center line of the bottom surface of the wall through the offset in the horizontal plane. S15 generates a wall instance on the center line according to the thickness, width and type. During the modeling process, doors and windows are considered as part of the wall.
[0103] The technical principles and advantages of this invention are as follows: First, it utilizes DA 2 The depth map generated by the model and the image recognition model (which can be considered an optimized algorithm, a combination of algorithms) are used to filter non-wall components to obtain a wall masking map (white areas represent walls, black areas represent others). Then, the wall masking map and the panoramic image are used in the DA (Data Access) algorithm. 2The model is converted into a point cloud file, which is then used to generate the corresponding wall model. The entire process uses only panoramic views as input, with only a few instances requiring manual input of wall height and thickness (which takes very little time). All other operations are automated within the Dynamo program, achieving low-cost, high-efficiency automated wall modeling. This solves the technical problems of long manual modeling times, low automation, and disconnect from Revit workflows in existing building BIM reconstruction. Based on this method, those skilled in the art can write corresponding software programs to achieve automated modeling.
[0104] In addition, the present invention can generate corresponding wall sub-models from multiple panoramic images, then find the overlapping parts in different wall sub-models, and merge the walls of different wall sub-models into a wall master model based on the overlapping parts, thereby obtaining a complete wall instance of the building space. Specific Implementation Example 1;
[0106] Please see Figures 3-9 , Figure 3 Example 1 of the panoramic image to be processed. Figure 4 This is a wall masking diagram. Figure 5 For depth information map, Figure 6 This is a point cloud comparison image. Figure 7 This is a cloud model of the entire view of the wall. Figure 8 This is a diagram of a point group. Figure 9 This is a schematic diagram of a wall example.
[0107] Figure 3 In the panoramic image, four walls, a floor, and a ceiling are included. The floor and ceiling contain clutter, which can generate a messy point cloud and affect subsequent automated modeling. Therefore, this example uses masking to mask the floor and ceiling, resulting in the image shown below. Figure 4 The masking diagram shows that black represents floors and ceilings, and white represents wall areas. Small black areas within the white area (door locations) are considered white areas (walls). In Revit, door and window components need to be placed based on walls, so doors and windows can be considered as walls. Figure 5 As can be seen from this, DA 2 The model is very good at recognizing different walls; the same color represents the same depth, which can be easily distinguished from the image. Figures 6-7 As can be seen, after masking, debris has no impact on the generation of wall point clouds. Figure 8 Only the filtered points on the inner surface of the wall are shown. After projecting these points onto the initial positioning plane, the positioning line (S9) on the inner surface of the wall can be obtained. Based on this positioning line, the wall can be automatically generated. Figure 9 .from Figure 9As can be seen, except for the walls corresponding to the passageway, the other walls are generated well. After measuring the position and size of windows and door frames within the original building space, the corresponding windows and door frames can be generated in the wall model. The presence of windows and doors in the panoramic view does not affect the overall wall modeling. Walls invisible in the panoramic view cannot be automatically generated by this method and need to be generated by other means. Specific Implementation Example 2;
[0109] Please see Figures 10-16 , Figure 10 Example 2 of the panoramic image to be processed. Figure 11 This is a wall masking diagram. Figure 12 For depth information map, Figure 13 This is a point cloud comparison image. Figure 14 This is a cloud model of the entire view of the wall. Figure 15 This is a diagram of a point group. Figure 16 This is a schematic diagram of a wall example.
[0110] Figure 11 In the diagram, black represents the floor slab and ceiling, white represents the wall area, and a small part of the black area within the white area (the door location) is considered as the white area (wall). Figure 11 As can be seen from this, DA 2 The model performs well in recognizing different types of walls, with windows and door frames being particularly noticeable. Figure 15 Only the filtered point group is shown. After projecting this point group onto the initial positioning plane, the positioning line (S9) on the inner surface of the wall can be obtained. Based on this positioning line, the wall can be automatically generated. Figure 16 .from Figure 16 As can be seen, except for the wall sections corresponding to the passageway, the other walls were generated well. Specific Implementation Example 3;
[0112] Please see Figures 17-23 , Figure 17 Example 3 of the panoramic image to be processed. Figure 18 This is a wall masking diagram. Figure 19 For depth information map, Figure 20 This is a point cloud comparison image. Figure 21 This is a cloud model of the entire view of the wall. Figure 22 This is a diagram of a point group. Figure 23 This is a schematic diagram of a wall example.
[0113] Figure 17 In the panoramic view, there are four walls, floors, and ceilings. The floors contain debris, which can affect automated modeling. Figure 18 In the diagram, black represents the floor slab and ceiling, white represents the wall area, and a small part of the black area within the white area (the door location) is considered as the white area (wall). Figure 19As can be seen from this, DA 2 The model performs well in recognizing different walls, but windows and door frames are not clearly visible within the walls. Figures 20-21 As can be seen, after masking, debris has no impact on the generation of wall point clouds. Figure 22 Only the filtered point group is shown. After projecting this point group onto the initial positioning plane, a positioning line corresponding to the inner surface of the wall can be obtained. Based on this positioning line, the wall can be automatically generated. Figure 23 .from Figure 23 As can be seen, the wall generation effect is good. Based on the outer contours of the bottom and top surfaces of the walls, the ceiling, floor, and floor slab top surfaces are generated, and then the complete architectural space is generated according to the thickness of the ceiling and floor slabs.
[0114] The above description is only used to illustrate the technical solution of the present invention and is not intended to limit it. Any modifications or substitutions made by other people skilled in the art to the technical solution, as long as they do not depart from the connotation of the technical solution of the present invention, should be covered within the scope of the claims of the present invention.
Claims
1. A method for automatically generating building walls based on Dynamo and panoramic images, characterized in that: Includes the following steps: S1: Capture a panoramic image of the building walls, import the resulting panoramic image into Dynamo, and use DA... 2 The model generates point cloud data of the wall structure; S2: Generate an initial point cluster list based on the wall point cloud data obtained in S1; S3: Generate multiple surfaces corresponding to the building walls, floors, and ceilings based on the initial point group list obtained in S2, and then generate an initial surface list based on the multiple surfaces; S4: Filter out the surfaces corresponding to the floor slab and ceiling from the initial surface list obtained in S3 to obtain the filtered surface list; S5: Obtain the midpoints of each surface in the filtered surface list obtained in S4 to form a filtered surface midpoint list; then generate the initial positioning line based on the filtered surface midpoint list; obtain the midpoint of the initial positioning line to form the initial positioning midpoint; S6: Use the initial positioning line obtained in S5 as the initial normal; generate the initial positioning plane based on the initial normal and the initial positioning midpoint; S7: Obtain the distance from each point in the initial point group list obtained in S2 to the initial positioning plane, forming a point group distance list; then sort the initial point group in ascending order according to the corresponding distance values in the point group distance list to obtain a sorted point group list; S8: Select several points with smaller distance values from the sorted point group list obtained in S7 to form a filtered point group list; then project each point in the filtered point group list onto the initial positioning plane obtained in S6 to obtain the projected point group list. S9: Perform multi-line fitting on the list of projected points obtained in S8 to obtain a list of fitted line segments. S10: Generate the smallest cube model that can completely enclose the initial point group based on the initial point group list obtained in S2, and obtain the geometric midpoint of the cube model; obtain the point closest to the geometric midpoint of each line segment in the fitted line segment list obtained in S9, and obtain the list of closest points. S11: Connect the geometric midpoint obtained in S10 with each point in the nearest point list to obtain multiple vectors starting from the geometric midpoint, and generate a list of geometric vectors. S12: Using the initial positioning midpoint obtained in S5 as the starting point, generate a vector with half of the initial positioning line to obtain the height offset vector; offset each line segment in the fitted line segment list obtained in S9 along the height offset vector to obtain the offset line segment list. S13: Determine the height and thickness of the wall; then obtain the length of the initial positioning line obtained in S5, and then divide the wall height by the obtained line length to get the scaling factor; S14: Scale the offset line segment list obtained in S12 according to the scaling factor obtained in S13 to obtain a scaled line segment list; offset each line segment in the scaled line segment list along the corresponding vector direction in the geometric vector list obtained in S11, with an offset distance of half the wall thickness, to obtain a scaled offset line segment list. S15: Using the line segments in the scaled and offset line segment list obtained in S14 as the center line of the bottom surface of each wall along its length, generate wall instances based on the wall height, wall thickness, and wall type.
2. The method for automatically generating building walls based on Dynamo and panoramic images according to claim 1, characterized in that: In S1, the adoption of DA 2 The model generates wall point cloud data, including the following steps: Using DA 2 The model extracts a depth information map from the panoramic image; Based on the obtained depth information map, a multimodal model is used to separate the wall portion and the non-wall portion in the panoramic image to obtain a wall masking map. Based on the wall masking map, the wall portion is extracted from the panoramic image using DA (Data Acoustics). 2 The model generates point cloud data of the wall.
3. The method for automatically generating building walls based on Dynamo and panoramic images according to claim 2, characterized in that: The multimodal model adopts the Qwen3-VL-8B-Instruct model.
4. The method for automatically generating building walls based on Dynamo and panoramic images according to claim 1, characterized in that: S2 further includes the following steps: The acquired wall point cloud data is converted into a three-level list of geometric text. Convert a geometric text three-level list into a geometric numerical three-level list; Obtain the first, middle, and last items of each second-level list in the geometric numerical third-level list, and use them as the X, Y, and Z axis coordinates of the corresponding points to generate an initial point group.
5. The method for automatically generating building walls based on Dynamo and panoramic images according to claim 1, characterized in that: S4 further includes the following steps: Obtain the Z-coordinate values of the normal vectors at the midpoints of each surface in the initial surface list, and obtain a list of Z values; Determine whether the absolute value of each Z value in the Z value list is greater than or equal to the threshold to obtain the Z value judgment list; The threshold is 0.4-0.8; Based on the Z-value judgment list, surfaces with an absolute Z-value greater than or equal to a threshold are separated from the initial surface list, resulting in a filtered surface list.
6. The method for automatically generating building walls based on Dynamo and panoramic images according to claim 1, characterized in that: In step S8, the number of point groups in the filtered point group list is 2000-4000.
7. The method for automatically generating building walls based on Dynamo and panoramic images according to claim 1, characterized in that: In step S9, an optimization algorithm based on RANSAC is used to fit the point groups in the projected point group list.
8. The method for automatically generating building walls based on Dynamo and panoramic images according to claim 1, characterized in that: The number of fitted line segments is the same as the number of walls.
9. The method for automatically generating building walls based on Dynamo and panoramic images according to claim 1, characterized in that: In step S13, the height and thickness of the wall are obtained by recognizing the wall in the panoramic image using a multimodal model, or by manually measuring the actual wall and then inputting the results.
10. The method for automatically generating building walls based on Dynamo and panoramic images according to claim 1, characterized in that: In step S14, when scaling the offset list of line segments, the scaling center is the center of the coordinate circle of the coordinate system in which the initial point group list is imported into Dynamo.
Citation Information
Patent Citations
Dynamo-based point cloud BIM automatic modeling method
CN111612911A
Method of pouring auxiliary components of masonry infill wall with main body based on BIM technology
CN116427712B
A method for optimizing building masonry layout scheme based on Dynamo
CN118690467B
Instance segmentation and model reconstruction method and system based on deep learning and synthetic point cloud
CN120070742A
Surface defect detection and three-dimensional modeling
CN109345523A