Method for automatically generating wall, column and beam components in Revit based on 3D scanning point cloud data
Patent Information
- Application Number
- CN202611053417.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-15
- Publication Date
- 2026-08-18
AI Technical Summary
点云数据直接导入Revit后无法自动转化为可编辑的建筑构件(如墙体、门窗、梁柱等),需要依靠技术人员进行大量人工手动描边翻模,不仅效率低下,而且精度难以保证
⑴效率大幅提升:实现了从点云数据到Revit模型的自动化生成,替代了传统人工手动描边翻模的建模方式,建模效率提升80%以上,显著缩短了既有建筑BIM建模的项目周期。
Smart Images

Figure CN122595451A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of building engineering information technology, specifically involving a method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data, which is applicable to scenarios such as renovation of old buildings and digitization of existing buildings. Background Technology
[0002] In engineering practices such as renovation of old buildings and operation and maintenance management of existing buildings, there are often situations where the original construction drawings are missing or the actual structure of the building does not match the drawings. It is necessary to accurately obtain the three-dimensional geometric information of the current building and convert it into an editable BIM model (such as a Revit model) to support subsequent design, construction and operation and maintenance management.
[0003] Traditional 3D scanning technologies (such as laser scanning) can quickly acquire massive amounts of point cloud data of building facades or interior spaces. However, point cloud data has inherent problems such as large data volume, high noise levels, and implicit geometric features. Point cloud data cannot be automatically converted into editable building components (such as walls, doors, windows, beams, and columns) after being directly imported into Revit. This requires extensive manual outlining and modeling by technicians, which is not only inefficient but also makes it difficult to guarantee accuracy.
[0004] In existing technologies, point cloud processing software (such as CloudCompare and PolyWorks) can perform basic processing functions such as point cloud denoising and segmentation, but their data interactivity with Revit software is poor, and they cannot automatically map the data to Revit components. Revit software's own point cloud import function only supports visual browsing and auxiliary reference of point cloud data, lacking the ability to intelligently identify and automatically generate building components from point clouds. Although the "Method for Automatically Generating BIM Models Based on Point Cloud Data" (Publication No. CN119131262A) applied for by China Construction Eighth Engineering Bureau involves the automatic generation of BIM models from point clouds, it still has shortcomings in component recognition accuracy and Revit platform compatibility.
[0005] Therefore, there is an urgent need in this field for a method that can automate and intelligently convert point cloud data into Revit models, in order to solve the technical gap between 3D data acquisition and BIM modeling, and significantly improve the efficiency and accuracy of BIM modeling of existing buildings. Summary of the Invention
[0006] To address the shortcomings of existing technologies, this invention provides a method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data. Through efficient preprocessing of point cloud data, deep learning-driven feature recognition and component classification, and plug-in-based automatic mapping based on the Revit API, the method achieves efficient and automatic conversion of point cloud data to Revit building information models, significantly improving the efficiency and accuracy of existing building BIM modeling.
[0007] The technical solution of this invention is a method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data, characterized by the following steps: Step S1, point cloud data acquisition and preprocessing: acquire the original 3D point cloud data of the building surface, perform noise reduction processing on the original 3D point cloud data to remove isolated noise points, perform simplification processing to reduce the amount of data while retaining the shape of the main building, and perform alignment and registration of multiple sets of point clouds to form a complete building point cloud model. Specifically, this involves acquiring a large number of 3D coordinate points (referred to as a "point cloud") on the building surface. The original point cloud contains a large number of cluttered interference points (such as trees, pedestrians, equipment noise, etc.), requiring the following preprocessing: (1) Denoising: Isolated points far from the subject are automatically identified and deleted using statistical methods. Specifically, a statistical filtering method is used: For each point in the point cloud, the average distance between it and its K nearest neighbors is calculated. If the average distance is greater than N times the sum of the global average distance and the standard deviation, the point is identified as an outlier and is removed. (2) Simplification: While retaining the main shape of the building, the point cloud that is too dense is appropriately thinned to reduce the amount of data; specifically, the voxel grid downsampling method is adopted, and the point cloud space is divided into three-dimensional grids by setting the voxel grid size. A representative point (such as the centroid of all points in the grid) is retained in each grid to replace all points in the grid. (3) Alignment: Multiple sets of point clouds obtained from scanning from different angles are stitched together into the same coordinate system to form a complete building point cloud model. Specifically, the Iterative Closest Point (ICP) algorithm is used to achieve accurate positioning and stitching of multiple sets of point clouds by minimizing the sum of squared distances between corresponding points in two sets of point clouds. The objective function is: ;
[0008] In the formula, For rotation matrix, It is a translation vector. For points in the source point cloud, In the target point cloud The corresponding points. Solving through iterative optimization. and , making The minimum value is obtained, thereby achieving precise registration of the point cloud; Step S2, Point Cloud Feature Extraction and Component Classification: The preprocessed point cloud is segmented into units with similar geometric features, and adjacent points with similar features are merged to form geometric units; the geometric units are identified by a deep learning model and classified into at least one component type among walls, floors, beams, and columns; attribute parameters are assigned to the identified components. Specifically, it includes: (1) Geometric feature extraction and point cloud segmentation: the preprocessed point cloud is segmented into units with similar geometric features, and adjacent points with similar features are merged to form geometric units such as walls, floors, beams, and columns; the region growing algorithm is used for segmentation: the normal vector and curvature of each point in the point cloud are calculated; the point with the smallest curvature is selected as the seed point; starting from the seed point, the neighboring points with a normal vector direction angle less than the first preset threshold and a curvature less than the second preset threshold are included in the same region; the above process is repeated until all points are divided into the corresponding regions to form several regional units with similar geometric features; (2) Component Type Recognition: A deep learning model is trained to classify geometric units and identify component types such as walls, doors and windows, beams, and columns, achieving automatic classification. The deep learning model is a point cloud semantic segmentation network based on the PointNet++ architecture. This network captures the local geometric features and global context information of the point cloud through a multi-level feature extraction structure, and outputs the component category label for each point. The training data for the deep learning model is a dataset of architectural point cloud samples labeled with component category labels.
[0009] Specifically, component type identification includes: Wall recognition: Based on the planar region formed after point cloud segmentation, extract the planar normal vector, planar dimensions and thickness information of the region. If the normal vector of the region is perpendicular to the horizontal plane and the thickness is within the preset wall thickness range, it is recognized as a wall. Column recognition: Based on the columnar regions formed after point cloud segmentation, extract the cross-sectional shape and size information of the region. If the cross-section is rectangular or circular and the aspect ratio is greater than a preset threshold, it is identified as a column. Beam recognition: Based on the strip-shaped region formed after point cloud segmentation, the extension direction and cross-sectional dimensions of the region are extracted. If the region extends horizontally and the cross-sectional height is greater than the cross-sectional width, it is identified as a beam. (3) Attribute Assignment: Assign attributes to the identified components, such as wall thickness, door and window dimensions, and material type. Specifically, this includes: calculating component size parameters based on point cloud density distribution; determining component material type based on point cloud color information or reflection intensity information; and supplementing and correcting automatically identified attributes through manual annotation. Step S3, Revit Component Mapping and Model Generation: Import the processed point cloud data into the Revit software through the Revit plugin; set component mapping rules in the Revit plugin; the Revit plugin automatically creates the corresponding building components in Revit according to the mapping rules, and sets the position, size and material parameters; the Revit plugin has a built-in library of commonly used building component families and supports custom family library paths; Specifically, this includes: developing a dedicated Revit plugin, which is based on the Revit API and uses an external command interface to build a Revit secondary development program framework; (1) Import point cloud: Import the processed point cloud data into the Revit software through the Revit plugin.
[0010] (2) Set mapping rules: Set component mapping rules in the Revit add-in, including: Point cloud regions identified as walls are mapped to basic wall components in Revit. Point cloud regions identified as columns are mapped to structural column components in Revit; Point cloud regions identified as beams are mapped to structural frame beam members in Revit; The point cloud regions identified as floor slabs are mapped to floor slab components in Revit; Point cloud regions identified as doors and windows are mapped to door or window components in Revit; (3) Automatic generation: The Revit plugin automatically creates the corresponding building components in Revit according to the mapping rules, and sets the parameters such as position, size, and material, without the need for manual drawing one by one; (4) Family library adaptation: The Revit plugin has built-in common building component families, such as basic walls, structural columns, structural frame beams, etc., and also supports users to specify the file path of custom family libraries through the Revit plugin interface. When generating components, the Revit plugin will first match the family types in the custom family library. If the corresponding type does not exist in the custom family library, it will call the built-in family library to ensure that the generated components are compatible with the project family library. Step S4, Model Verification and Optimization: The deviation between the generated Revit model and the original point cloud data is automatically calculated using the Revit plugin, and areas where the deviation exceeds a preset threshold are identified; the deviation areas are manually adjusted and corrected in Revit; and the corrected Revit model is then lightweighted. Specifically, it includes: (1) Deviation detection: The Revit plugin uses point cloud data as a reference to calculate the distance from the surface of each component in the generated Revit model to the nearest point cloud point, generates a deviation distribution map, highlights areas with absolute deviation values greater than a preset threshold (preferably 5cm) in the Revit view, and generates a deviation detection report. (2) Manual correction: Manually adjust the deviation area in Revit, including moving the position of the components in the deviation area, modifying the size, and replacing the family type; the Revit plugin records the operation log of manual correction and feeds the corrected parameters back to the mapping rule base to optimize the accuracy of subsequent automatic generation; (3) Lightweight Model: Lightweight processing is performed on the generated Revit model, including removing redundant geometric details in the Revit model, simplifying the subdivision of component meshes, and merging adjacent components with the same material, in order to reduce the size of the model file and improve the efficiency of model browsing and collaboration.
[0011] Preferably, the denoising process in step S1 employs a statistical filtering method, specifically: for each point in the point cloud, the average distance between it and its K nearest neighbors is calculated. If this average distance is greater than N times the sum of the global average distance and the standard deviation, the point is identified as an outlier and removed. The simplification process uses a voxel grid downsampling method, dividing the point cloud space into a three-dimensional grid by setting the voxel grid size, and retaining a representative point in each grid to replace all points in that grid. The alignment and registration uses an iterative nearest-point algorithm, achieving accurate positioning and stitching of multiple point clouds by minimizing the sum of squared distances between corresponding points in two sets of point clouds. The objective function is: ; In the formula, For rotation matrix, It is a translation vector. For points in the source point cloud, In the target point cloud The corresponding point.
[0012] As a preferred option: The point cloud segmentation in step 2 uses a region growing algorithm, which includes: calculating the normal vector and curvature of each point in the point cloud; selecting the point with the smallest curvature as the seed point; starting from the seed point, including neighboring points whose normal vector direction angle is less than a first preset threshold and whose curvature is less than a second preset threshold into the same region; repeating the process until all points are divided into the corresponding regions, forming several regional units with similar geometric features. The method for calculating the normal vector and curvature is as follows: for any point in the point cloud... Take it The nearest neighbors form the covariance matrix: ;
[0013] In the formula, This represents the number of nearest neighbors (i.e., the neighborhood size). This represents the three-dimensional coordinate vector of the i-th point within the local neighborhood. Indicates transpose. The centroid of the neighborhood points is represented by the covariance matrix. Eigenvalue decomposition is performed; the eigenvector corresponding to the smallest eigenvalue is the normal vector at that point. The curvature is determined by... The calculation shows that, among which , , Covariance matrix eigenvalues, and The deep learning model in step S2 is a point cloud semantic segmentation network based on the PointNet++ architecture. This network captures the local geometric features and global context information of the point cloud through a multi-level feature extraction structure and outputs the component category label for each point. The training data of the deep learning model is a building point cloud sample dataset labeled with component category labels. The component type identification in step S2 includes wall identification, column identification, and beam identification, wherein: Wall recognition: Based on the planar region formed after point cloud segmentation, extract the planar normal vector, planar dimensions and thickness information of the region. If the normal vector of the region is perpendicular to the horizontal plane and the thickness is within the preset wall thickness range, it is recognized as a wall. Column recognition: Based on the columnar regions formed after point cloud segmentation, extract the cross-sectional shape and size information of the region. If the cross-section is rectangular or circular and the aspect ratio is greater than a preset threshold, it is identified as a column. Beam recognition: Based on the strip-shaped region formed after point cloud segmentation, the extension direction and cross-sectional dimensions of the region are extracted. If the region extends horizontally and the cross-sectional height is greater than the cross-sectional width, it is identified as a beam. The attribute assignment in step S2 includes: calculating component size parameters based on point cloud density distribution; determining component material type based on point cloud color information or reflection intensity information; and supplementing and correcting automatically identified attributes through manual annotation.
[0014] Preferably, the component mapping rules in step S3 include: Point cloud regions identified as walls are mapped to basic wall components in Revit. Point cloud regions identified as columns are mapped to structural column components in Revit; Point cloud regions identified as beams are mapped to structural frame beam members in Revit; The point cloud regions identified as floor slabs are mapped to floor slab components in Revit; Point cloud regions identified as doors and windows are mapped to door or window components in Revit; The Revit plugin in step S3 is developed based on the Revit API. It builds a Revit secondary development program framework through an external command interface to realize the functions of importing point cloud data, setting and storing mapping rules, batch automatic generation of building components, and real-time preview of the generated results. The family library adaptation in step S3 specifically involves the following: the Revit plugin has built-in common building component families that conform to the Revit project standard, including basic wall families, structural column families, and structural frame beam families; users can specify the file path of a custom family library through the Revit plugin interface; when generating components, the Revit plugin prioritizes matching the family types in the custom family library; if the corresponding type does not exist in the custom family library, it calls the built-in family library.
[0015] As a preferred embodiment, the deviation detection in step S4 specifically involves the Revit plugin using point cloud data as a reference to calculate the distance from the surface of each component in the generated Revit model to the nearest point cloud point, generating a deviation distribution map, highlighting areas with absolute deviation values greater than a preset threshold in the Revit view, and generating a deviation detection report. The manual adjustment and correction in step S4 includes: performing at least one operation in Revit, such as moving the position, modifying the size, or replacing the family type of the components in the deviation area; the Revit plugin records the operation log of the manual correction and feeds the corrected parameters back to the mapping rule base to optimize the accuracy of subsequent automatic generation; The model lightweighting process in step S4 includes at least one of the following methods: removing redundant geometric details in the Revit model, simplifying the mesh subdivision of components, and merging adjacent components with the same material, in order to reduce the model file size and improve model browsing and collaboration efficiency.
[0016] Preferably, the preset threshold is 5cm, and the model accuracy is controlled within ±2cm.
[0017] As a preferred option: when there is no family type in the standard family library that matches the identified component type, the automated modeling plugin automatically generates a new Revit family file based on the geometric contour of the corresponding point cloud cluster. This includes: extracting the contour lines of the point cloud cluster on multiple sections, generating the corresponding geometric shape in the family editor through lofting or extrusion operations, and automatically setting the corresponding family parameters.
[0018] Preferably, the training dataset of the 3D point cloud semantic segmentation deep learning network includes a "non-structured object" category, which includes at least furniture, equipment and pipelines; the deep learning network excludes point cloud clusters identified as "non-structured objects" from the Revit component generation process.
[0019] Compared with the prior art, the beneficial effects of the present invention are as follows: (1) Significantly improved efficiency: It realizes the automated generation of point cloud data into Revit models, replacing the traditional manual modeling method of outlining and converting models. The modeling efficiency is improved by more than 80%, and the project cycle of existing building BIM modeling is significantly shortened.
[0020] (2) Accuracy is controllable and reliable: Through systematic point cloud preprocessing, deep learning-driven accurate recognition, automated component mapping generation, and deviation detection and manual correction mechanisms, the model accuracy can reach ±2cm, which fully meets the accuracy requirements of existing building renovation design.
[0021] (3) High level of intelligence: The deep learning model based on the PointNet++ architecture is used for point cloud semantic segmentation and component type recognition. Combined with parameterized mapping rules, it realizes automatic classification and modeling of building components, which greatly reduces manual intervention.
[0022] (4) Strong platform compatibility: The plugin is developed based on the Revit API, and the generated model is a standard Revit parametric component model, which can be directly used in the entire lifecycle of Revit applications, such as subsequent design refinement, construction simulation, and operation and maintenance management. Both the mapping rule library and the family library support user-defined extensions, and have good scalability and adaptability.
[0023] (5) Model accuracy is controllable and guaranteed: Statistical filtering and voxel simplification during point cloud preprocessing ensure the quality of input data; automatic deviation detection and manual correction mechanisms ensure that the final Revit model achieves an accuracy of ±2cm, fully meeting the accuracy requirements of the architectural renovation design stage. The deviation detection threshold can be flexibly set according to project needs, achieving on-demand control of accuracy. Attached Figure Description
[0024] Figure 1 This is an overall flowchart of the method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data according to the present invention. Detailed Implementation
[0025] The technical solution of the present invention will be described in detail below with reference to the accompanying drawings and specific embodiments.
[0026] Example 1: Point cloud data acquisition and preprocessing.
[0027] This embodiment uses the facade renovation project of an old residential building as an example to illustrate the acquisition and preprocessing process of point cloud data.
[0028] First, a multi-station scan of the target building is performed using a terrestrial 3D laser scanner (such as the FARO Focus series or Leica BLK series). The arrangement of the scanning stations should ensure at least 30% overlap between adjacent stations to guarantee the accuracy of subsequent point cloud registration. The scanning resolution of each station is set to 1 / 4 (i.e., the point spacing is approximately 6mm at a distance of 100 meters), and the quality is set to 4× (i.e., each point is measured four times and the average is taken) to control the data volume while ensuring accuracy.
[0029] After scanning, the raw point cloud data acquired by each station is imported into the point cloud preprocessing module. Noise reduction is performed using a statistical filtering method, with K=50 (meaning each point considers its 50 nearest neighbors) and N=2.0 (meaning points whose average distance exceeds the global average distance plus twice the standard deviation are considered noise). This processing effectively removes flying points, isolated points, and noise caused by temporary obstructions such as pedestrians and vehicles generated during the scanning process.
[0030] The simplification process employs a voxel grid downsampling method, with the voxel grid size set to 0.02m × 0.02m × 0.02m. All points within each voxel grid are replaced by the centroid of that grid.
[0031] After simplification, the amount of point cloud data can be reduced by about 70% to 80%, while preserving the geometric features of the building's main shape.
[0032] Alignment and registration employ the ICP algorithm. First, coarse registration is performed by manually selecting 3-4 pairs of corresponding points or utilizing the normal vector features of the point cloud for initial alignment. Then, fine registration is performed by iteratively optimizing the rotation matrix. Translation vector , so that the objective function The minimum value is obtained. The iteration termination condition is set to the change in mean square error being less than... The iteration count may exceed 100. After registration, multiple point clouds are precisely stitched together in the same coordinate system to form a complete building point cloud model.
[0033] Example 2: Point cloud feature extraction and component classification.
[0034] This embodiment continues from embodiment 1, performing feature extraction and component classification on the preprocessed complete building point cloud model.
[0035] Point cloud segmentation employs a region growing algorithm; firstly, Principal Component Analysis (PCA) is used to calculate the normal vector and curvature of each point. For any point in the point cloud... Take its K nearest neighbors to form the covariance matrix: ;
[0036] In the formula, This represents the number of nearest neighbors (i.e., the neighborhood size). Represents the centroid of the neighborhood points. Represents the first in the local neighborhood. The three-dimensional coordinate vector of a point, Indicates the transpose, for the covariance matrix Eigenvalue decomposition is performed; the eigenvector corresponding to the smallest eigenvalue is the normal vector at that point. The curvature is determined by... The calculations show that the normal vector angle threshold is set to 15° (approximately 0.26 radians), and the curvature threshold is set to 0.05. The point with the smallest curvature is selected as the seed point. Region growing is then performed starting from the seed point, incorporating neighboring points that satisfy both a normal vector angle less than 15° and a curvature less than 0.05 into the same region. This process is repeated until all points have been divided.
[0037] For each segmented region, its geometric feature parameters are extracted. For planar regions, the RANSAC (Random Sample Consensus) algorithm is used to fit the plane equation. , In the formula, It is a constant parameter. Represents the X-axis, Y-axis, and Z-axis; Extracting plane normal vectors Planar dimensions (length and width) and region thickness (calculated by projecting points within the region along the direction of the normal vector).
[0038] The deep learning model employs the PointNet++ architecture for component type recognition. The PointNet++ network extracts local features from the point cloud layer by layer through the SetAbstraction module. Each layer includes three sub-modules: Sampling, Grouping, and Feature Extraction (PointNet). The network input consists of the XYZ coordinates and normal vector features of the point cloud (6 dimensions in total). After multi-layer feature extraction, a fully connected layer outputs the category score for each point. After normalization using the Softmax function, the probability of each point belonging to each component category is obtained. The network is trained on a building point cloud dataset labeled with categories such as walls, columns, beams, floors, doors, and windows. Training uses the cross-entropy loss function and the Adam optimizer, with an initial learning rate of 0.001, a batch size of 32, and 200 training epochs.
[0039] During the specific identification process: For regions classified as planar, the direction of the normal vector is extracted. If the angle between the normal vector and the vertical direction (i.e., the Z-axis) is less than 10°, and the region thickness is within the range of 0.10m to 0.40m, it is identified as a wall.
[0040] For units classified as columnar regions, extract the cross-section. If the cross-section is rectangular (length-to-width ratio between 1 and 2) or circular, and the ratio of the region height to the equivalent diameter of the cross-section is greater than 3, it is identified as a column.
[0041] For a unit classified as a strip region, if it extends horizontally and the ratio of its cross-sectional height to its cross-sectional width is greater than 1.5, it is identified as a beam.
[0042] For attribute assignment, wall thickness is calculated using the distribution width of the point cloud along the normal vector direction within the region; column cross-sectional dimensions are calculated using the envelope rectangle or circle of the cross-sectional point cloud; beam cross-sectional height and width are calculated using the cross-sectional point cloud perpendicular to the beam's extension direction. Material type is initially determined using the color information (RGB values) and reflection intensity information of the point cloud. For example, concrete surfaces typically appear gray (RGB values close to 128,128,128) and have moderate reflection intensity, while brick wall surfaces appear reddish-brown and have low reflection intensity. For components where the automatic determination result is uncertain, supplementary confirmation is achieved through manual annotation.
[0043] Example 3: Revit component mapping and model generation; This embodiment continues from embodiment 2, illustrating the specific implementation method of component mapping and model generation through the Revit plugin.
[0044] Revit plugins are developed based on the Revit API (Application Programming Interface), using the C# programming language and relying on the .NET Framework. They establish a Revit secondary development program framework through the ExternalCommand interface. Revit plugins are packaged as .exe executable files or .dll dynamic link libraries and are loaded and run through the Revit "External Tools" menu.
[0045] After the Revit plugin runs, a data import interface pops up first, allowing the user to select a processed point cloud data file (supporting common point cloud formats such as .xyz, .las, and .pts). The Revit plugin then calls the PointCloudFileUtils class in the Revit API to import the point cloud data into the current Revit project document. The point cloud is displayed in the Revit view as a PointCloudInstance.
[0046] Subsequently, the Revit add-in displays the mapping rule settings interface. This interface shows the correspondence between component types and Revit family types in a table format. The default mapping rules are shown in the table below:
[0047] Users can modify mapping relationships in this interface, such as mapping walls to a custom "Masonry Wall" family type, or mapping columns to a "Steel Column" family type. Users can also specify a custom family library (.rfa file or folder path) via the "Browse" button, and the Revit plugin will prioritize matching family types in the custom family library when generating components.
[0048] After the mapping rules are set, the user clicks the "Generate Model" button, and the Revit plugin begins to automatically generate Revit components. The generation process is as follows: (1) The Revit plugin traverses all the component units identified in step two. Each unit contains a set of point cloud coordinates, a component type label, and attribute parameters.
[0049] (2) For each component element, the Revit plugin looks up the corresponding Revit family type based on its component type label. If a matching family type exists in the custom family library, the custom family is used; otherwise, the default family built into the Revit plugin is used.
[0050] (3) The Revit plugin calls the component creation methods in the Revit API. For walls, the `Wall.Create()` method is called, passing in the wall's bottom positioning line (fitted from the bottom boundary points of the point cloud), top height (determined by the Z-coordinate of the highest point in the point cloud), and thickness parameters (determined during the attribute assignment phase). For columns, the `FamilyInstance.Create()` method is called, passing in the column's position (determined by the column center position in the point cloud), cross-sectional dimensions, and height parameters. For beams, the `FamilyInstance.Create()` method is called, passing in the beam's positioning line (fitted from the extension direction of the point cloud), cross-sectional dimensions, and length parameters.
[0051] (4) The Revit plugin sets material parameters for the generated components based on the material type determined during the property assignment phase. For example, components identified as concrete are set to the "Concrete C30" material, and components identified as brick walls are set to the "Brick, Ordinary Brick" material.
[0052] (5) After all components are generated, the Revit plugin automatically adjusts the view display range so that all generated components are fully visible in the Revit view, and pops up a generation report summarizing the number of various types of components generated.
[0053] Example 4: Model Validation and Optimization.
[0054] This embodiment follows embodiment 3 and describes the specific implementation methods for model verification and optimization.
[0055] Once the model is generated, the Revit plugin automatically initiates the deviation detection function. The specific process for deviation detection is as follows: (1) The Revit plugin uses the original point cloud data as a reference and generates sampling points on the surface of each component in the generated Revit model at a sampling interval of 0.1m.
[0056] (2) For each sampling point, the Revit plugin uses the KDTree data structure to search for the nearest neighbor in the original point cloud and calculates the Euclidean distance from the sampling point to the nearest point in the point cloud as the deviation value at that location.
[0057] (3) The Revit plugin performs statistical analysis on the deviation values of all sampling points and calculates the maximum deviation, minimum deviation, average deviation and standard deviation.
[0058] (4) The Revit plugin highlights areas with an absolute deviation greater than 5cm in red in the Revit view, areas with a deviation between 2cm and 5cm in yellow, and areas with a deviation less than 2cm in green, generating a deviation distribution chromatogram.
[0059] (5) The Revit plugin generates a deviation detection report (.html format), which includes a deviation statistics summary table, a deviation distribution histogram, and deviation details for each component.
[0060] During the manual correction phase, technicians view the highlighted areas of deviation in Revit and adjust components with deviations exceeding the limits. Correction operations include: Position movement: For components that are offset overall, use Revit's "Move" tool to adjust the component to the correct position; Size modification: For components with dimensional deviations, modify the thickness, width, height and other dimensional parameters in the component properties panel; Family type replacement: For components with mismatched family types, replace them with the correct family type in the component properties panel.
[0061] The Revit plugin records all manual corrections in the background, including the component ID, correction type, and parameter values before and after the correction, forming a correction log. The parameter correction values in the log are fed back to the mapping rule base as an optimization basis for subsequent automatic generation. For example, if a certain type of wall consistently shows excessive thickness deviations in multiple automatic generation iterations, the system automatically adjusts the thickness mapping parameters for that type of wall.
[0062] Model lightweighting is performed after manual corrections are completed; lightweighting includes: Remove redundant geometric details from the Revit model, such as structural subdivision details in walls; Simplify the mesh subdivision level of components by adjusting the mesh subdivision level of curved surface components from "fine" to "medium"; Merge adjacent components with the same material to reduce the number of independent primitives in the model.
[0063] After lightweighting, the model file size can be reduced by approximately 40% to 60%, significantly improving the smoothness of browsing the model in Revit and the efficiency of team collaboration.
[0064] Example 5: Overall Implementation Process.
[0065] like Figure 1 As shown, the method of the present invention includes four core steps, in order: point cloud data acquisition and preprocessing (step 1), point cloud feature extraction and component classification (step 2), Revit component mapping and automatic model generation (step 3), and model verification and optimization (step 4).
[0066] Taking a typical renovation project of an existing office building as an example, the building was constructed in the 1990s, and the original design drawings have been lost. It is necessary to obtain the current geometric information of the building through 3D scanning and to create a Revit model for renovation design. The building is a five-story frame structure with a building area of approximately 5,000 square meters.
[0067] Detailed implementation of step 1: First, a terrestrial 3D laser scanner (such as the FARO Focus series or Leica BLK series) is used to perform multi-station scanning of the interior spaces and exterior facades of each floor of the building. Six to eight scanning stations are set up per floor to ensure coverage of all walls, columns, beams, and other building components. The overlap rate between adjacent stations is no less than 30% to ensure the accuracy of subsequent registration. The raw point cloud data acquired during the scan contains a large number of noisy points—such as accidentally captured interior furniture, temporarily stacked items, dynamic point clouds generated by personnel activities, and outliers caused by equipment noise and ambient light interference.
[0068] Perform statistical filtering denoising on the original point cloud. Assume the number of neighboring points k = 50 for each point and the confidence coefficient α = 3.0. For each point in the point cloud... Calculate the average distance to its 50 nearest neighbors. The calculation formula is: ; In the formula, Point To its neighboring area The average distance between the nearest neighbors; Indicates the number currently being processed. One point, Point The The nearest neighbor; Calculate the global mean μ and standard deviation σ of the average distance between all points; this will satisfy... Points with a value greater than μ+3.0σ are identified as outlier noise points and removed. After denoising, voxel mesh simplification was performed. The voxel side length was set to L = 0.02m (2cm), dividing the point cloud space into a 3D voxel mesh with a side length of 2cm. For each non-empty voxel mesh, the centroid coordinates of all points within it were calculated, and the centroid points replaced all original points within that mesh. After voxel simplification, the number of points in the point cloud was reduced from approximately 8 million to approximately 1.2 million, a reduction of about 85%, while the main geometric features of the building (walls, columns, beam bottoms, etc.) were completely preserved.
[0069] For multiple sets of point cloud data acquired through multi-station scanning, FPFH feature descriptors are used for coarse registration. FPFH features are extracted for each set of point clouds, and the initial correspondence between the sets is found through feature matching to estimate the initial transformation matrix. Then, the ICP algorithm is used for fine registration. The ICP algorithm minimizes the registration error between the two sets of point clouds through iterative optimization. The objective function is: ;
[0070] In the formula, R is the rotation matrix, t is the translation vector, and N is the number of corresponding point pairs. Represents the first point in the source point cloud. One point, Indicates the target point cloud and The corresponding number One point, This indicates that the points in the source point cloud Apply rotation matrix Translation vector The resulting transformed coordinates; the goal of ICP is to find the optimal... and This ensures that the transformed source point cloud and target point cloud overlap as much as possible. This represents the square of the Euclidean distance between corresponding point pairs, i.e., the square of the distance between the transformed source and target points. The current registration error is obtained by summing the squared distances of all corresponding point pairs and taking the average. The iteration termination condition is set to a root mean square error of less than 0.005m or an iteration count of 100. After fine registration, the point cloud data of all stations are unified into the same world coordinate system to form a complete building point cloud model.
[0071] Detailed implementation of step 2: Geometric features are extracted from the preprocessed point cloud of the building. For each point p i Within its local neighborhood (with a neighborhood radius of 0.1m), construct the covariance matrix. : ; In the formula, This represents the number of nearest neighbors within the local neighborhood. For the neighboring region The three-dimensional spatial coordinate vector of each point (for) (column vector) Let be the mean vector (centroid) of all points in the neighborhood. For the covariance matrix... (for Perform eigenvalue decomposition on a real symmetric matrix to obtain eigenvalues. The corresponding eigenvector is the direction of the normal vector at that point; rate The approximate calculation is as follows: ;
[0072] Based on the aforementioned geometric features, a region growing algorithm is used for point cloud segmentation. The algorithm selects the point with the smallest curvature from the point cloud as the initial seed point. Using the seed point as the center, it checks its neighboring points: if the angle between the normal vector of a neighboring point and the normal vector of the seed point is less than a preset angle threshold (set to 15°), and the curvature is less than a preset curvature threshold (set to 0.1), then the neighboring point is assigned to the current region and used as a new seed point for further growth. This process iterates until no new points can be assigned to the current region, and then a new seed point is selected from the unassigned points to begin growing the next region. After segmentation, the entire building point cloud is divided into several connected regions with similar geometric features.
[0073] Next, a pre-trained 3D point cloud semantic segmentation deep learning network is used to classify each point cloud cluster. This embodiment employs a deep learning network based on an improved RandLANet architecture. This network enhances its ability to extract geometric features of building components by adding coordinate attention and channel attention mechanisms to the local spatial encoding module. The dataset used for network training contains labeled data from over 500 building point cloud scenes, with labeled categories including walls, structural columns, structural beams, floor slabs, and door / window openings. A focus loss function is used during training to address the class imbalance problem in the building point cloud scenes.
[0074] For each segmented point cloud cluster, a voting system is used to count the predicted labels of the points within the cluster, and the label with the most votes is taken as the overall component type of the cluster. For example, if 80% of the points in a point cloud cluster are predicted as "walls", then the cluster is identified as a wall component.
[0075] After component type identification is completed, attribute values are assigned to each component. Taking a wall as an example: for a point cloud cluster identified as a wall, the thickness distribution of its point cloud in the normal direction is calculated, and the median of the thickness distribution is taken as the wall thickness value; the length and height of the wall are determined by the projection profile of the point cloud cluster on the horizontal plane. Taking a structural column as an example: for a point cloud cluster identified as a structural column, point cloud cross-sections are extracted at multiple height layers, and the outer rectangular or circular contour of each cross-section is fitted. The average value of each cross-section dimension is taken as the column's cross-sectional dimension. Attribute parameters can also be combined with point cloud color information (such as RGB values) obtained during scanning to help determine the material type.
[0076] Detailed implementation of step 3: Dedicated automated modeling plugins are developed based on the Revit API. These Revit plugins are registered as independent tabs within the Revit environment, providing a user interface.
[0077] The Revit plugin has an internal mapping rule library between predefined component types and Revit family types. The mapping rules are as follows:
[0078] The mapping rule base is stored in XML format in the Revit plugin configuration directory, and users can add, delete, and modify rules through the Revit plugin interface.
[0079] Users import the component classification result data generated in step two (in JSON or CSV format, containing the ID of each point cloud cluster, component type label, geometric attribute parameters, and spatial coordinate information) through the Revit plugin interface. After parsing the data, the Revit plugin performs the following operations in sequence: (1) For each point cloud cluster, look up the corresponding Revit family type in the mapping rule base according to its component type label.
[0080] (2) Call the FamilyInstance placement method of the Revit API to create a component instance at the corresponding spatial location in the current Revit document. The position of the component is determined by the center coordinates of the bounding box of the point cloud cluster; for walls, the positioning line of the wall is determined by the projection line of the point cloud cluster on the horizontal plane; for columns, the insertion point of the column is determined by the vertical projection center of the point cloud cluster.
[0081] (3) Assign the geometric attribute parameters calculated in step two to the generated component instance—for walls, set the thickness, height, and length parameters; for columns, set the cross-section width, cross-section depth, or diameter parameters; for beams, set the cross-section width and cross-section height parameters.
[0082] (4) The Revit plugin has a built-in library of commonly used building component families (built based on the default Revit family library). When generating components, it prioritizes matching the built-in family types. If the project has special requirements, the user can specify the path of a custom family library folder in the Revit plugin settings. The Revit plugin will scan all family files (.rfa) in that folder and match them according to the family category and family name. If no matching item is found in the custom family library, it will fall back to using the built-in family library.
[0083] Detailed implementation of step 4: After the model is automatically generated, deviation detection is performed. The Revit plugin initiates the deviation analysis process in the Revit background: for each generated Revit component, a set of sampling points R={r1,r2,…,rM} is generated on its surface at intervals of 0.1m. For each sampling point r... j Search for its nearest neighbor pnearest in the original point cloud data P3 (using KDtree to accelerate the search) and calculate the spatial distance: ; In the formula, Indicates the first The deviation value of the sample point represents the spatial distance deviation between the generated Revit model surface at that location and the original point cloud data; Indicates the first Sampling points are three-dimensional spatial points obtained by uniformly sampling the surface of the generated Revit component at intervals of 0.1m. Indicates the distance from the sampling point in the original point cloud. The nearest point; Indicates sampling point With the nearest point cloud points The Euclidean distance between them is the straight-line distance in three-dimensional space:
[0084] ;
[0085] Calculate the mean deviation μ of all sampling points. e and standard deviation σ e The area containing sampling points with deviation values greater than a preset threshold (0.05m, or 5cm in this embodiment) is marked as an out-of-tolerance area.
[0086] The Revit plugin generates a deviation cloud in the Revit view and creates a "Deviation Report" view in the Project Browser, listing the IDs, percentages of the area out of tolerance, and maximum deviation values of all out-of-tolerance components.
[0087] For areas exceeding tolerances, users can manually correct them within the Revit native environment. Correction operations include, but are not limited to: using the "Move" command to adjust component positions, modifying component dimension parameters in the Properties panel, and using the "Replace Family" function to change the family type. After each correction, users can rerun the deviation check to verify the correction effect. Repeat the above process until the deviation values in all areas are less than 5cm.
[0088] After model validation, lightweight processing is performed. The Revit plugin utilizes the Revit API's optimization features to remove invisible internal geometric details from the model (such as faces completely obscured by other components), merge adjacent components of the same material (such as multiple sections of walls of the same material on the same floor), and simplify the mesh subdivision level of complex geometries. After lightweight processing, the model file size can typically be reduced by 30% to 50%, significantly improving the smoothness of model browsing in Revit and the efficiency of multi-disciplinary collaboration.
[0089] Through the above four steps, a complete Revit building information model (including core structural components such as walls, columns, and beams) is automatically generated without the need for manual drawing of each component. Verified in actual projects, the modeling time for a 5000-square-meter building was reduced from approximately four weeks using traditional methods to approximately three days, improving efficiency by about 85%. On-site sampling verified the model's accuracy, showing that the dimensional deviations of key components (load-bearing columns and main beams) were all controlled within ±2cm, meeting the requirements for use during the renovation design phase.
[0090] Example 6: Optimal configuration of algorithm parameters.
[0091] This embodiment provides the preferred configuration range of key algorithm parameters in each step of the present invention to achieve the best processing effect.
[0092] Statistical filtering denoising parameters: The preferred range for the number of neighborhood points k is 20–80, more preferably 40–60; the preferred range for the confidence coefficient α is 2.0–3.5, more preferably 2.5–3.0. When the value of k is too small, the neighborhood statistical information is insufficient, and the denoising effect is not ideal; when the value of k is too large, the computational load increases significantly and boundary points may be misclassified as noise. When the value of α is too small, too many normal points will be misclassified as noise; when the value of α is too large, some noise points cannot be effectively removed.
[0093] Voxel mesh simplification parameters: The preferred range for voxel side length L is 0.01m to 0.05m, and more preferably 0.015m to 0.025m. The selection of L value needs to comprehensively consider the original point cloud density and the required modeling accuracy: For scenarios with high accuracy requirements (such as modeling precision components), a smaller value for L (0.01m to 0.015m) is appropriate; for conventional building modeling, a value of L of 0.02m to 0.025m can achieve a good balance between data volume and accuracy.
[0094] ICP registration parameters: The preferred range for the upper limit of the number of iterations is 50 to 200, and more preferably 80 to 120; the preferred range for the root mean square error convergence threshold is 0.001m to 0.01m, and more preferably 0.003m to 0.005m.
[0095] Region growth segmentation parameters: The preferred range for the normal vector angle threshold is 10° to 25°, and more preferably 12° to 18°; the preferred range for the curvature threshold is 0.05 to 0.20, and more preferably 0.08 to 0.12.
[0096] Deviation detection threshold: The preferred range for the preset deviation threshold is 0.02m to 0.10m, and more preferably 0.03m to 0.05m. For the modification design stage, a threshold of 0.05m can meet the needs of most projects; for scenarios with higher precision requirements (such as the installation of precision equipment), it can be set to 0.02m to 0.03m.
[0097] Example 7: Adaptive implementation for special scenarios.
[0098] This embodiment illustrates adaptive implementations of the present invention in several special architectural scenarios.
[0099] Scenario 1: Point cloud data containing a large number of unstructured objects; In existing building scanning, point cloud data inevitably includes non-structural objects such as indoor furniture, temporary storage items, and equipment pipelines. These objects may have similar geometric features to structural building components (walls, columns, beams), which can easily lead to misclassification.
[0100] To address this scenario, in the deep learning network training phase of step 2, this invention specifically adds a "non-structural object" category (including furniture, equipment, pipelines, etc.) and incorporates a large amount of architectural point cloud scene annotation data containing non-structural objects into the training dataset. The trained deep learning network can effectively distinguish between structural components and non-structural objects, identifying non-structural objects as the "other" category and excluding them from the subsequent Revit component generation process.
[0101] Scenario 2: Point cloud data has large areas of missing data (holes); During the scanning process, due to occlusion or reflection limitations, point cloud data may be missing in some areas (such as the bottom of beams and the back side of columns).
[0102] To address this scenario, the present invention adds a point cloud hole detection and repair step to the preprocessing in step 1: by analyzing the spatial distribution density of the point cloud, regions with significantly lower density than their neighbors are identified as hole regions; point cloud supplementation is performed on the hole regions using an interpolation method based on radial basis functions or a surface filling method based on Poisson reconstruction. The repaired point cloud data is then used for subsequent feature extraction and component identification to ensure the integrity of the component's geometric information.
[0103] Scenario 3: Irregularly shaped or non-standard cross-section components; For non-standard components such as irregularly shaped columns and variable cross-section beams, standard family types cannot be directly adapted.
[0104] To address this scenario, the present invention adds "custom family generation" to the family library adaptation step three. Function: When a matching family type does not exist in the standard family library, the Revit plugin automatically generates a new family file (.rfa) based on the geometric outline of the point cloud cluster. Specifically, the Revit plugin extracts the outline of the point cloud cluster on multiple sections, generates the corresponding geometry in the family editor through lofting or extrusion operations, and automatically sets the corresponding family parameters to achieve automatic family creation and instantiation of non-standard components.
[0105] Creative explanation of the overall technical solution: The overall technical solution of this invention has outstanding substantive features and significant progress compared with the prior art, and the specific inventive step is described as follows: This solved a long-standing technical problem in the field: In the field of existing building BIM modeling, the automatic conversion from massive, disordered point cloud data with implicit geometric features to structured, parametric Revit building information models has long been a technical challenge that has remained unresolved. Traditional methods rely on manual outlining and model conversion of each component, which is not only extremely inefficient (a medium-sized building project often requires weeks to months of manual modeling time), but also highly dependent on the experience of technicians, resulting in uncontrollable errors. This invention, through a systematic four-step process, achieves end-to-end automated conversion from point cloud input to Revit model output for the first time, effectively solving this long-standing technical bottleneck.
[0106] Non-obvious process integration and technology collaboration: The technical solution of this invention is not a simple superposition of existing technologies, but rather a creative integration and synergistic optimization of multiple technical aspects. Specifically: First, in the point cloud preprocessing step, the parameter linkage settings of denoising (statistical filtering), simplification (voxel grid downsampling) and alignment (ICP algorithm) (such as the coordinated optimization of denoising threshold, voxel size, and ICP iteration termination conditions) are not conventional choices in this field. Instead, they are the preferred parameter combinations determined through a large number of experiments for the special characteristics of building point cloud data, which can maximize the accuracy of subsequent recognition without losing the key geometric features of the building.
[0107] Second, the cascaded architecture of point cloud segmentation (region growing algorithm) and deep learning classification (PointNet++ network) is non-obvious. In existing technologies, point cloud semantic segmentation usually directly adopts end-to-end deep learning models, but for architectural scenes with large scale differences and severe mutual occlusion of components, the recognition accuracy of pure deep learning methods is limited. This invention adopts a cascaded strategy of "segmentation first, classification later"—first forming region units with consistent geometric features through geometric segmentation, and then classifying the region units through deep learning—this design fully considers the geometric prior knowledge of architectural components (walls are planar, columns are cylindrical, beams are strip-shaped, etc.), significantly improving recognition accuracy.
[0108] Third, the mapping rule engine and family library adaptation mechanism in the Revit plugin are innovative. Existing Revit secondary development solutions are usually developed for a single component type, while this invention realizes unified mapping and batch generation of multiple types of components such as walls, columns, beams, floors, doors and windows, and supports dynamic adaptation of custom family libraries. This has a non-obvious complexity in the field of Revit API development.
[0109] Unexpected technical results were achieved: The technical solution of the present invention achieves technical effects that exceed the expectations of those skilled in the art: First, in terms of modeling efficiency, the present invention achieves an efficiency improvement of more than 80%, which means that manual modeling work that originally required several weeks can be completed automatically in a few days. This level of efficiency leap cannot be explained by simply "automation replacing manual work", but rather stems from the synergistic effect between the various technical steps of the present invention.
[0110] Secondly, regarding modeling accuracy, this invention achieves a model accuracy of ±2cm through a closed-loop optimization mechanism of "automatic generation + deviation detection + manual correction." This accuracy index has significant practical engineering value in the field of existing building renovation design. In particular, the quantitative deviation assessment and visual feedback based on point clouds in the deviation detection step upgrades accuracy control from "experience-based judgment" to "data-driven," which is not available in existing technologies.
[0111] Third, in terms of system compatibility, the Revit plugin system developed based on the Revit API of this invention enables the generated models to be used directly in the Revit ecosystem without any format conversion, achieving a seamless connection from data acquisition to BIM application.
[0112] This represents a trend in technological development: With the widespread application of Building Information Modeling (BIM) technology in areas such as existing building renovation, urban renewal, and historical building preservation, the automatic conversion from real-world scanning data to BIM models has become an important direction for industry development. The technical solution proposed in this invention represents the technological development trend in this field and has significant industrial application prospects and patent portfolio value.
[0113] The above description is only a preferred embodiment of the present invention. All equivalent changes and modifications made within the scope of the claims of the present invention should be covered by the claims of the present invention.
Claims
1. A method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data, characterized in that, Includes the following steps: Step S1, point cloud data acquisition and preprocessing: acquire the original 3D point cloud data of the building surface, perform noise reduction processing on the original 3D point cloud data to remove isolated noise points, perform simplification processing to reduce the amount of data while retaining the shape of the main building, and perform alignment and registration of multiple sets of point clouds to form a complete building point cloud model. Step S2, Point Cloud Feature Extraction and Component Classification: The preprocessed point cloud is segmented into units with similar geometric features, and adjacent points with similar features are merged to form geometric units; the geometric units are identified by a deep learning model and classified into at least one component type among walls, floors, beams, and columns; attribute parameters are assigned to the identified components. Step S3, Revit component mapping and model generation: Import the processed point cloud data into the Revit software using the Revit plugin; The component mapping rules are set in the Revit plugin; the Revit plugin automatically creates the corresponding building components in Revit according to the mapping rules, and sets the position, size and material parameters; the Revit plugin has a built-in library of commonly used building component families and supports custom family library paths; Step S4, Model Verification and Optimization: The deviation between the generated Revit model and the original 3D point cloud data is automatically calculated using the Revit plugin, and areas where the deviation exceeds a preset threshold are identified; Manually adjust and correct the deviation areas in Revit; then perform lightweight processing on the corrected Revit model.
2. The method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data according to claim 1, characterized in that, The denoising process in step S1 employs a statistical filtering method, specifically: for each point in the point cloud, the average distance between it and its K nearest neighbors is calculated. If this average distance is greater than N times the sum of the global average distance and the standard deviation, the point is identified as an outlier and removed. The simplification process uses a voxel grid downsampling method, dividing the point cloud space into a three-dimensional grid by setting the voxel grid size. A representative point is retained in each grid to replace all other points within that grid. The alignment and registration uses an iterative nearest-point algorithm, achieving precise positioning and stitching of multiple point clouds by minimizing the sum of squared distances between corresponding points in two sets of point clouds. The objective function is: ; In the formula, Let be a rotation matrix. It is a translation vector. For points in the source point cloud, In the target point cloud The corresponding point.
3. The method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data according to claim 1, characterized in that, The point cloud segmentation in step 2 uses a region growing algorithm, which includes: calculating the normal vector and curvature of each point in the point cloud; selecting the point with the smallest curvature as the seed point; starting from the seed point, including neighboring points whose normal vector direction angle is less than a first preset threshold and whose curvature is less than a second preset threshold into the same region; repeating the process until all points are divided into the corresponding regions, forming several regional units with similar geometric features. The method for calculating the normal vector and curvature is as follows: for any point in the point cloud... Take its K nearest neighbors to form the covariance matrix: ; In the formula, This represents the number of nearest neighbors (i.e., the neighborhood size). Represents the first in the local neighborhood The three-dimensional coordinate vector of a point The centroid of the neighborhood points is represented by the covariance matrix. Eigenvalue decomposition is performed; the eigenvector corresponding to the smallest eigenvalue is the normal vector at that point. The curvature is determined by... The calculation shows that, among which , , Covariance matrix eigenvalues, and T represents transpose; The deep learning model in step S2 is a point cloud semantic segmentation network based on the PointNet++ architecture. This network captures the local geometric features and global context information of the point cloud through a multi-level feature extraction structure and outputs the component category label for each point. The training data of the deep learning model is a building point cloud sample dataset labeled with component category labels. The component type identification in step S2 includes wall identification, column identification, and beam identification, wherein: Wall recognition: Based on the planar region formed after point cloud segmentation, extract the planar normal vector, planar dimensions and thickness information of the region. If the normal vector of the region is perpendicular to the horizontal plane and the thickness is within the preset wall thickness range, it is recognized as a wall. Column recognition: Based on the columnar regions formed after point cloud segmentation, extract the cross-sectional shape and size information of the region. If the cross-section is rectangular or circular and the aspect ratio is greater than a preset threshold, it is identified as a column. Beam recognition: Based on the strip-shaped region formed after point cloud segmentation, the extension direction and cross-sectional dimensions of the region are extracted. If the region extends horizontally and the cross-sectional height is greater than the cross-sectional width, it is identified as a beam. The attribute assignment in step S2 includes: calculating component size parameters based on point cloud density distribution; determining component material type based on point cloud color information or reflection intensity information; and supplementing and correcting automatically identified attributes through manual annotation.
4. The method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data according to claim 1, characterized in that, The component mapping rules in step S3 include: Point cloud regions identified as walls are mapped to basic wall components in Revit. Point cloud regions identified as columns are mapped to structural column components in Revit; Point cloud regions identified as beams are mapped to structural frame beam members in Revit; The point cloud regions identified as floor slabs are mapped to floor slab components in Revit; Point cloud regions identified as doors and windows are mapped to door or window components in Revit; The Revit plugin in step S3 is developed based on the Revit API. It builds a Revit secondary development program framework through an external command interface to realize the functions of importing point cloud data, setting and storing mapping rules, batch automatic generation of building components, and real-time preview of the generated results. The family library adaptation in step S3 specifically involves the following: the Revit plugin has built-in common building component families that conform to the Revit project standard, including basic wall families, structural column families, and structural frame beam families; users can specify the file path of a custom family library through the Revit plugin interface; when generating components, the Revit plugin prioritizes matching the family types in the custom family library; if the corresponding type does not exist in the custom family library, it calls the built-in family library.
5. The method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data according to claim 1, characterized in that, The deviation detection in step S4 is as follows: the Revit plugin uses point cloud data as a reference to calculate the distance from the surface of each component of the generated Revit model to the nearest point cloud point, generates a deviation distribution map, highlights areas with absolute deviation values greater than a preset threshold in the Revit view, and generates a deviation detection report. The manual adjustment and correction in step S4 includes: performing at least one operation in Revit, such as moving the position, modifying the size, or replacing the family type of the components in the deviation area; the Revit plugin records the operation log of the manual correction and feeds back the corrected parameters to the mapping rule base to optimize the accuracy of subsequent automatic generation; The model lightweighting process in step S4 includes at least one of the following methods: removing redundant geometric details in the Revit model, simplifying the mesh subdivision of components, and merging adjacent components with the same material, in order to reduce the model file size and improve model browsing and collaboration efficiency.
6. The method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data according to any one of claims 1 to 5, characterized in that, The preset threshold is 5cm, and the model accuracy is controlled within ±2cm.
7. The method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data according to any one of claims 1 to 5, characterized in that, When no family type matching the identified component type exists in the standard family library, the automated modeling plugin automatically generates a new Revit family file based on the geometric contour of the corresponding point cloud cluster. This includes: extracting the contour lines of the point cloud cluster on multiple sections, generating the corresponding geometry in the family editor through lofting or extrusion operations, and automatically setting the corresponding family parameters.
8. The method for automatically generating wall, column, and beam components in Revit based on 3D scanned point cloud data according to any one of claims 1 to 5, characterized in that, The training dataset of the 3D point cloud semantic segmentation deep learning network includes a "non-structured object" category, which includes at least furniture, equipment and pipelines; the deep learning network excludes point cloud clusters identified as "non-structured objects" from the Revit component generation process.
Citation Information
Patent Citations
Method for automatically generating BIM model based on point cloud data
CN119131262A