Abstract:
Systems and methods for automated spatial change detection and control of buildings and construction sites using three-dimensional laser scanning data are disclosed.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This is a non-provisional application that claims benefit to U.S. provisional application Ser. No. 62/327,930, filed on Apr. 26, 2016, which is herein incorporated by reference in its entirety. 
     
    
     GOVERNMENT SUPPORT 
       [0002]    This invention was made with government support under 1454654 awarded by the National Science Foundation. The government has certain rights in the invention. 
     
    
     FIELD 
       [0003]    The present disclosure generally relates to automated spatial change detection and control of buildings and construction sites, and in particular to systems and methods for automated spatial change detection and control of buildings and construction sites using three-dimensional laser scanning data. 
       BACKGROUND 
       [0004]    Frequent changes in construction projects pose challenges to design-construction collaboration due to cascading interactions between design changes and field adjustments. Incomplete design information, improper field operations, and unexpected site conditions may result in deviations between as-designed and as-built conditions of building components, which may lead to misalignments between components. Also, such changes may propagate along networks of building elements (e.g. ductworks), and cause cascading effects that are difficult to track. The propagation of design-built deviations among building elements usually requires a significant amount of change coordination efforts among multiple stakeholders. Improper change management could cause reworks, wastes, delays during construction while increasing construction costs. Furthermore, poor change coordination may also create interruptions in decision-making processes during Operations and Maintenance (O&amp;M) phase. O&amp;M planning can become challenging if detailed changes between as-built and as-designed conditions and information about how spatial changes propagate along the spatial and temporal domains are missing. Construction engineers, therefore, have to analyze design changes and field adjustments causing design-built differences and find ways to control the impacts of such changes on project performance. 
         [0005]    Recent technological advancements, such as Building Information Modeling (BIM), enabled construction engineers and managers to coordinate design and construction activities of multiple trades involved in a project. Commercial BIM software facilitates the visualization of building elements including Mechanical, Electrical, and Plumbing (MEP) systems for coordination purposes so that potential clashes among building elements can be resolved virtually before constructability problems occur on site. Some BIM tools support the comparison of multiple versions of as-designed models to detect changes between versions and record design change histories for change management. However, manual updates of as-designed BIM could be error-prone and may miss certain spatial changes occurring in the field. As a result, only using design-oriented BIM tools could hardly track differences between as-designed and as-built conditions. 
         [0006]    Several researchers explored the potential of using three-dimensional (3D) imaging technologies, namely 3D laser scanning and photogrammetry coupled with computer vision, for change analysis between as-designed and as-built conditions. 3D laser scanning is an emerging technology that can capture very accurate as-built geometries promptly. Data produced by 3D laser scanners is in the form of dense 3D point clouds. Such point clouds can be used to detect differences between as-designed models and as-built conditions. However, associating objects from the as-designed model with points in point clouds in an efficient and reliable manner is challenging, especially when spatial changes occur. Tang et al. identified the challenges associated with detecting and classifying spatial changes during design and construction processes. That study concluded that a robust spatial change detection and classification approach would enable reliable automatic diagnosis of the propagative effects of changes that cause reworks and construction quality problems. Recent studies have explored the application of relational graphs to match and compare objects from 3D as-designed models with the objects in the corresponding 3D as-built model accurately, which has significant advantages over data-model comparison tools that are available in commercial 3D data processing and reverse engineering environments, such as InnovMetric Polyworks. However, comparing relational graphs generated from as-designed models and 3D laser scan data of large-scale building systems (e.g., hundreds of interconnected ductworks) involves computational complexity that grows exponentially with the number of building elements. 
         [0007]    BIM technology addresses the difficulties associated with design change coordination by enabling synchronization of multiple trade design models in a central BIM for clash detection and coordination. Langroodi &amp; Staub-French conducted a case study to exploit the benefits of using BIM for design change management of a fast-track project. Akinci and Boukamp concluded that BIM can document different design alterations, but could hardly address the propagative impacts of changes that collectively influence the construction quality, cost, and productivity. Also, BIM tools mainly focus on design change coordination, while engineers are required to update as-designed BIM manually according to the as-built conditions to analyze the impact of field changes on the project performance. This practice is tedious and error-prone. 
         [0008]    Previous studies focused on automated modeling of as-built pipelines from laser scan data for construction quality assessment and monitoring purposes. Construction project managers would use these as-built models to investigate any dimensional deviations between the individual objects of the as-built and as-designed models. Several studies investigated the integrated use of 3D imaging technologies and BIM for detecting and analyzing spatial changes that occur in the field. Tang et al. reviewed a broad range of algorithms and techniques that are used for the recognition and reconstruction of building elements from 3D laser scan data for as-built modeling. Based on this review, Xiong et al. developed methods that automatically create semantically rich BIM from 3D laser scan data using voxel representation to make the as-designed and as-built BIM comparison more efficient. Similar concepts inspired a study that developed an approach for automated spatial change analysis of linear building elements. Bosche developed a robust point matching method for as-built dimension calculation and control of 3D CAD model objects recognized in laser scans. Based on this work, Turkan et al. developed an automated progress monitoring system that combines 4D BIM and 3D laser scan data for change detection and management. Nahangi and Haas developed an automated deviation detection approach for pipe spools based on scan-to-BIM registration. This study employed an automated registration step for quantifying the deviations in the defective parts of the pipe spool assemblies. Bosche et al. coupled Scan-versus-BIM, and Scan-to-BIM approaches to track and diagnose changes of densely packed cylindrical MEP (Mechanical, Electrical, and Plumbing) elements. 
         [0009]    The majority of the studies described above utilizes nearest-neighbor searching algorithms for detecting spatial deviations and changes between as-designed and as-built conditions and thus inherit the limitations of this algorithm. In many cases, especially when several similar objects packed in small spaces (e.g., several ducts packed in a mechanical room), the change detection results of nearest neighbor searching may contain mismatches that associate data points with the wrong objects in the as-designed model. As a result, the change analysis and progress monitoring results would be misleading. 
         [0010]    Manual comparison of 2D and 3D imagery data against as-designed models is also tedious and error-prone. The majority of the previous change detection studies relied on the “nearest-neighbor searching” paradigm to associate the as-designed model with as-built data. The nearest neighbor searching approach associates each point in a 3D laser scan data with an as-designed model object that is the “nearest neighbor.” In other words, the algorithm considers that each as-built data point in the 3D laser scan data belongs to the object that is in its neighborhood, and the algorithm takes the closest object as the object that corresponds to these points. The nearest neighbor search algorithm then calculates the distances between the corresponding as-designed model objects and as-built data points, and visualize these distances using a color-coded “deviation map.” Such a deviation map highlights the parts that data points are deviating away from their nearest as-designed model objects. Nevertheless, the nearest neighbor searching approach has several limitations that may lead to data-model mismatches. More specifically, nearest neighbor searching could fail to provide reliable results when associating a large number of similar and small objects packed in relatively small spaces, such as mechanical rooms of large facilities.  FIG. 1  provides an example to illustrate these limitations. In this case, the ducts in as-built data are associated with the wrong ducts in the as-designed model because of the misalignment between the ducts in the as-designed model and as-built model. This observation indicates that the nearest neighbor searching algorithm failed to accurately associate ducts that were subjected to changes between the as-built and as-designed models. 
         [0011]    Another algorithm matches “spatial contexts” of building components, e.g. ducts, captured in as-designed and as-built models to achieve more reliable association between as-designed model and as-built data. The algorithm first constructs “relational graphs” that depict spatial relationships between objects extracted from as-designed models or as-built models created based on 3D laser scan data. More specifically, a relational graph is a network representation of the objects in a model, in which the nodes represent the objects and the edges connecting them represent spatial relationships between objects ( FIG. 2 ). Each node can have attributes to describe the properties of the object, called “local attributes” (e.g., shape, size, or color). The spatial relationships of an object with other objects represent the “spatial context” of that object. After obtaining two relational graphs that respectively represent the as-designed model and the as-built model, the algorithm matches these two relational graphs and associate as-designed objects with as-built model elements (e.g., surfaces and lines extracted from laser scan data) based on the similarity of their attributes and spatial contexts. These two studies showed that this relational-graph-based approach could achieve automatic and reliable change detection of relatively small ductworks (&lt;20 ducts) in a mechanical room. 
         [0012]    These two studies described above used cases that involve tens of ducts to validate the relational-graph-based approach. Unfortunately, the computational complexity of extracting and matching relational graphs from large datasets increase exponentially with the number of objects in the as-designed and as-built models. A step forward is thus improving the computational efficiency of the relational-graph-based approach. 
         [0013]    It is with these observations in mind, among others, that various aspects of the present disclosure were conceived and developed. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0014]      FIG. 1  is an illustration of results for the nearest neighbor searching algorithm having incorrect matching of ducts, according to one aspect of the present disclosure; 
           [0015]      FIG. 2  is a simplified illustration showing an example of a relational graph network, according to one aspect of the present disclosure; 
           [0016]      FIG. 3  is an illustration showing a framework for change detection between an as-designed model and an as-build model, according to one aspect of the present disclosure; 
           [0017]      FIG. 4A-4C  is an illustration showing nearest neighbor matching between an as-designed model and an as-built model, according to one aspect of the present disclosure; 
           [0018]      FIG. 5A  is an illustration showing as-designed model ducts and  FIG. 5B  is an illustration showing as-built model ducts, according to one aspect of the present disclosure; 
           [0019]      FIG. 6A  is an illustration showing an as-designed model and  FIG. 6B  is an illustration showing a 3D laser scan data, according to one aspect of the present disclosure; 
           [0020]      FIG. 7A  is an illustration showing an as-built model and  FIG. 7B  is an illustration showing a registered as-designed model and an as-built model, according to one aspect of the present disclosure; 
           [0021]      FIG. 8  is an illustration showing areas with large deviations, according to one aspect of the present disclosure; 
           [0022]      FIG. 9A  is a graphical representation showing a comparison of changer detection approaches using processing time and  FIG. 9B  is a graphical representation of changer detection approaches using matching precision, according to one aspect of the present disclosure; 
           [0023]      FIG. 10A  is an illustration showing subnetwork 1 and  FIG. 10B  is an illustration showing a tolerance network, according to one aspect of the present disclosure; and 
           [0024]      FIG. 11  is a simplified block diagram showing that illustrates the hardware and software components of an automated spatial change detection and control system, according to one aspect of the present disclosure. 
       
    
    
       [0025]    Corresponding reference characters indicate corresponding elements among the view of the drawings. The headings used in the figures do not limit the scope of the claims. 
       DETAILED DESCRIPTION 
       [0026]    Design changes have various impacts on the quality and performance of a construction project. Poor communication among different trades and poor documentation practices lead to design changes and rework during construction. In current practice, design changes are documented as “Change Orders” as per the procedures defined by the American Institute of Architects (AIA). Architects follow these guidelines and manually log all the design change orders, which is time-consuming and error-prone. 
       Methodology 
       [0027]    The improvement of the present system for a relational-graph-based approach integrates nearest neighbor searching and the relational-graph-based matching approaches to achieve a computationally efficient change detection for large as-designed models and as-built laser scan data of building systems composed of hundreds of elements (e.g., ductworks).  FIG. 3  presents four steps of the new method: 1) modeling, segmentation, and data-model registration, 2) relational graph generation, 3) nearest neighborhood searching and constraint propagation for isolating subnetworks that contain significant changes or deviations, and 4) subnetwork matching using spatial contexts and match checking, as detailed below. 
       Modeling, Segmentation, and Data-Model Registration 
       [0028]    This step involves preprocessing of 3D laser scan data to remove redundant information and segments out relevant data for reliable change detection. Commercially available software tools for 3D laser scan data processing, such as Leica Geosystems HDS™ Cyclone, 3DReshaper, and ClearEdge3D EdgeWise™, include segmentation and modeling tools. In this study, the inventors used Clear Edge&#39;s EdgeWise 3D Plant Suite™ software to extract 3D objects (e.g., ducts) from 3D laser scan data. This process is referred to as Scan-to-BIM, where the final product is a 3D as-built model. Clear Edge&#39;s Edgewise 3D Plant™ software considers occlusions when implementing cylinder-fitting algorithms for extracting ducts from 3D laser scan data. The testing results confirmed that the cylinder fitting algorithm implemented in Clear Edge&#39;s Edgewise 3D Plant™ software can accurately extract cylindrical ducts from 3D laser scan data even if only partial surfaces of the cylindrical shapes are scanned. Such occlusion-tolerant algorithms ensure that the axes of ducts used for change analysis between the as-designed and as-built ductworks are reliable. Next, the inventors align the as-designed model against the as-built model using a Constrained Iterative Closest Point (ICP) registration technique so that to bring the as-designed and as-built models to the same coordinate system. This process requires users to first manually align larger ducts with a radius larger than 0.1 meters between the as-designed and as-built models, and then apply the constrained ICP algorithm by utilizing a maximum distance value of 0.3 meters. This “maximum distance” value of 0.3 m means that the registration algorithm would not search corresponding objects beyond a neighborhood of 0.3 m (a sphere with a radius of 0.3 for searching corresponding objects). Narrowing the closest point search in such a 0.3 m spherical neighborhood ignores the parts of the model with significant deviations for improved computational efficiency. This data-model registration is a preparation necessary for the following data-model comparison that integrates the nearest neighbor searching and relational graph matching. 
       Relational Graph Generation 
       [0029]    This step aims at automatically extracting local attributes of objects (e.g., lengths and radii of duct sections) and spatial relationship between objects for generating relational graphs based on the as-designed model and the as-built model created based on laser scan data. Algorithm 1 first detects the attributes of all objects present in both models, and then automatically generates relational graphs for both models by computing spatial relationships between objects. Algorithm 1 below shows the pseudo code of this relational graph generation process. 
         [0000]    
       
         
               
             
               
             
           
               
                   
               
               
                 Algorithm 1: Pseudo Code for Relational Graph Generation 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 1.    //Sampled duct components of As-designed model 
               
               
                 2.    for each sampled as-designed duct 
               
               
                 3.     Use Principle Component Analysis to extract line segments 
               
               
                 (best fit) 
               
               
                 4.     Calculate the line segment&#39;s center point P(x,y,z) 
               
               
                 5.     Calculate the relative positions &amp; orientations between the 
               
               
                 extracted line segments 
               
               
                 6.    end 
               
               
                 7.    //Sampled duct components of As-built model 
               
               
                 8.    for each sampled as-built model duct 
               
               
                 9.    Use Principle Component Analysis to extract line segments (best 
               
               
                 fit) 
               
               
                 10.   Calculate the line segment&#39;s center point P′(x,y,z) 
               
               
                 11.   Calculate the relative positions &amp; orientations between the 
               
               
                 extracted line segments 
               
               
                 12.  end 
               
               
                   
               
             
          
         
       
     
         [0030]    To generate the nodes and edges of relational graphs, algorithm 1 requires the geometric representations of all objects present in both the as-designed and as-built models. The focus of this study is change detection of cylindrical ductworks packed in relatively small mechanical rooms so that the authors focus on the geometric representations of ductworks. Specifically, the inventors used “Line” as a geometric primitive to represent cylindrical ducts present in the as-designed and as-built models. The developed algorithm 1 thus needs to automatically extract the axes of the cylindrical duct sections in the as-designed and as-built models and represents them as lines to generate the relational graphs. Because the geometric representation of duct sections in as-designed and as-built models are surfaces of cylindrical objects, the extraction of axes of cylinders need to implement a method for fitting lines based on the surface geometry. The inventors&#39; implementation is to use the “sample points on mesh” tool of the CloudCompare™ software to uniformly sample points on the surfaces of as-designed and as-built model objects. That process converts surfaces of objects into point clouds. The Principle Component Analysis (PCA) method then extracts lines from the 3D points sampled on surfaces of duct sections.  FIGS. 4A-4C  show an example of sampled as-designed model ducts (Red). Algorithm 1 then detects changes between the as-designed/as-built lines extracted from the uniformly sampled as-designed/as-built point clouds. In the past, researchers found that fitting geometric primitives against 3D point cloud data with varying data densities will produce geometric primitives that are distorted towards parts having higher data densities. Therefore, using resampled point clouds will avoid inaccurate geometric primitives extracted from raw point clouds that have varying data densities. 
         [0031]    In the modeling step, the inventors focused on modeling the straight duct sections from the as-designed and as-built models, because analyzing the changes of those sections can serve as a major step forward to further analysis of joints and valves. More specifically, matching lines (straight duct sections) between the models pave the path toward automatically recognizing the connections between those lines (e.g., elbows, joints) and matching the as-designed and as-built objects relevant to those connections (valves installed on those connected parts). Keeping the cylindrical ducts as the focus in this disclosure, the number of points required for identifying cylindrical duct sections is set to be 100 pts per square meter. The inventors conducted experiments on 3D imagery data used in this research and found that using this threshold could successfully eliminate elbow connections, valves, and tee joints between ducts while keeping straight sections of ducts in both the as-designed and as-built models. This process of modeling (Scan-to-BIM) and uniform sampling is robust when extracting straight cylindrical duct sections even if the duct is occluded in the 3D laser scan data. The next step is to extract the best-fit line (geometric primitive) of straight cylindrical duct sections using the PCA algorithm and then generate the relational graph. 
         [0032]    Given relational graphs that represent the spatial relationships between duct sections (lines), the relational-graph-generation algorithm finally generates a spatial context for each line or each duct section in both the as-designed and as-built models. Algorithm 1 automatically uses the position and orientation information of lines to calculate the relative position (e.g., above, below, left, right) and orientation (e.g., parallel, perpendicular) between lines and the spatial contexts of lines. A spatial context of a line represents how many lines are above, below, to the left/right, parallel with and perpendicular to that line. These spatial contexts would play critical roles in the step of relational graph matching presented later. 
       Nearest Neighbor Searching and Constraint Propagation for Isolating Changed Parts 
       [0033]    The generated relational graphs provide a basis for the detection of differences between the as-designed and as-built models. In the change detection step, algorithm 1 first uses the nearest neighbor searching to associate the objects (ducts) that did not have significant deviations between the as-designed and as-built models. Algorithm 1 then follows a hierarchical process to isolate parts of the ductworks that have significant deviations and apply computationally expensive but reliable relational graph matching. Such a hierarchical process reduces the amount of computation by first establishing most of the data-model associations through the rapid nearest neighbor search, leaving the context matching on smaller parts of the large network of ductworks. 
         [0034]    Algorithm 2 below shows the pseudo codes of this process. In Algorithm 2, i represents the i-th as-designed line, and j represents the j-th as-built line; diff_distance (i,j) represents the distance between center points of lines i and j; diff_orientation (i,j) stands for the dot-product of the orientation vectors of lines i and j (i.e., 1 means that two lines are parallel). CM is the Correlation Matrix that indicates the association between as-designed and as-built lines—if CM(i,j) equals to 1, then the i-th as-designed line is corresponding to the j-th as-built line, while 0 represents no association. Table 1 shows an example of a correlation matrix presenting the matching results of the as-designed and as-built models shown in  FIGS. 4A-4C . 
         [0000]    
       
         
               
             
               
             
           
               
                   
               
               
                 Algorithm 2: Pseudo Code for Change Detection using 
               
               
                 the nearest neighbor searching 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 1.    Define diff_distance (i,j)=zeros; (i is the i-th as-designed line, 
               
               
                 j is the j-th as-built line) 
               
               
                 2.    Define diff_orientation (i,j)=zeros; (i is the i-th as-designed line, 
               
               
                 j is the j-th as-built line) 
               
               
                 3.    Define CM(i,j)=zeros; (Correlation matrix between diff_distance 
               
               
                 and diff_orientation) 
               
               
                 4.    for each ducts center point from both as-designed model and 
               
               
                 as-built model 
               
               
                 5.    Calculate the distance “D” between each pair i,j&#39;s center points 
               
               
                 and store it in diff_distance(i,j) 
               
               
                 6.    Calculate the dot product between each i,j&#39;s line segments and 
               
               
                 store it in diff_orientation(i,j) 
               
               
                 7.    if diff_distance(i,j) &lt;0.15 &amp;&amp; diff_orientation ==1 
               
               
                 8.    CM(i,j) ==1 
               
               
                 9.    else 
               
               
                 10.   CM(i,j) ==0 
               
               
                 11.   end 
               
               
                 end) 
               
               
                   
               
             
          
         
       
     
         [0000]    
       
         
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 Correlation matrix for subnetwork 1 (“1” means a match, “0” means no match) 
               
               
                   
               
             
             
               
                 
                   
                             
                     
                         
                         
                     
                   
                 
               
               
                   
               
             
          
         
       
     
         [0035]    In Algorithm 2, the algorithm first eliminates parts of the ductworks that have no significant deviations based on the deviation map produced by the nearest neighbor searching process. The remaining parts would then contain large deviations and be much smaller than the complete duct network for carrying out computationally expensive relational graph matching process. Algorithm 2 first uses the relative position and orientation of the lines (duct sections) to associate duct sections that have similar locations and orientations. Specifically, algorithm 2 calculates the center of each extracted line from the as-designed model and the as-built model, and determines that two lines must be corresponding lines in the as-designed and as-built models based on two conditions: 1) the distance between the two lines&#39; center points are less than 0.15 m, and 2) the two lines are parallel with each other. The authors found that this 0.15 m threshold could effectively identify most pairs of lines that have less or no changes between as-designed and as-built models.  FIGS. 4A-4C  show an example of an as-designed model (red) and its corresponding as-built model (blue). In  FIGS. 4A-4C , the distance between the centers of the line (duct)  14  (as-designed) and line  12 ′ (duct) (as-built) is within 0.15 m, and they are parallel with each other. Thus the algorithm associates these two lines (Table 1). 
         [0036]    The nearest neighbor searching step matches most of the duct sections that do not change in the as-designed and as-built models and assign “1”s to the elements of the Correlation Matrix to indicate these matches. On the other hand, such simple nearest neighbor and orientation checking have the following limitations: 1) if the models consist of duct sections packed in small spaces, algorithm 2 will associate multiple as-designed ducts within 0.15 m with a single as-built duct while only one of these as-designed ducts is the correct match, and vice versa; 2) if significant changes occurred during construction, the nearest neighbor searching can&#39;t automatically associate as-designed and as-built objects that move out of the neighborhood due to changes; 3) if the occlusions in the as-built model split a duct into multiple sections and cause significant dislocations of the center points of duct sections, which would not be within 0.15 m of any as-designed ducts and thus remain unmatched; 4) if a change causes an as-built duct occupy the same space of an as-designed duct that is actually not corresponding to the as-built duct, the algorithm incorrectly associates these two ducts. The following paragraphs will introduce new techniques that could resolve these limitations based on spatial relationship and context information available in relational graphs. 
         [0037]    A “constraint propagation” step can overcome the first limitation of the nearest neighbor searching process. For example, in  FIG. 4A , the as-designed duct  13  is the nearest neighbor to both as-built duct  10 ′ and duct  11 ′. The correlation matrix indicates that duct  13  in the as-designed model matches with both duct  10 ′ and duct  11 ′ in the as-built model (Table 1). The constraint propagation process found that duct  10 ′ is the only match of duct  12 , so it applies constraint propagation to resolve the ambiguous match between duct  10 ′ and duct  13  (Highlighted in Table 1) and determines that duct  13  should be paired with duct  11 ′. Such sequential matching eliminates multiple associations and increases the accuracy of matching. After executing the nearest neighbor searching and constraint propagations, the correlation matrix still has unmatched ducts or incorrect matches.  FIG. 4A  clearly shows that few ducts (dash line) are close to each other, where the nearest neighbor matching fails and leave certain lines as “unmatched.” Once algorithm 2 identifies these matched and unmatched lines, it automatically isolates smaller subnetworks that contain unmatched lines ( FIGS. 4B and 4C ) breaks from the entire relational graph. Such subnetwork isolation utilizes the results of the nearest neighbor searching and constraint propagation along with the connectivity information between the adjacent ducts. Specifically, the unmatched Duct  4  in the as-designed model is connected to an unmatched Duct  3  and a matched Duct  12 . Since Duct  12  is matched using both the nearest neighbor searching and the constraint propagation, the algorithm will use the connection between Duct  4  and Duct  12  to isolate the sub-network ( FIG. 4B -Highlighted in Black). Similarly, the subnetwork isolation approach identified the connection between the unmatched Duct  8  and matched Duct  14  to identify interconnected unmatched ducts ( FIG. 4B -Highlighted in Black). Using this subnetwork isolation approach, the algorithm isolated Ducts  0 - 11  in the as-designed model and Ducts  0 ′- 9 ′ in the as-built model ( FIGS. 4B and 4C ) for further spatial context matching, as detailed in the next subsection. 
       Subnetwork Matching Using Spatial Contexts, and Match Checking 
       [0038]    A combined use of connectivity information that indicates the adjacent ducts through connections and spatial contexts of ducts that indicate relative position and orientation between ducts can help address the second limitation of nearest neighbor searching—the difficulty in associating changed ducts in the as-designed and as-built models. The developed algorithm 2 first detects areas that have interconnected unmatched ducts (lines). Algorithm 2 then either traces the connected ducts or identifies ducts with similar spatial contexts to associate unmatched as-built ducts with their likely correspondents in the as-designed model.  FIGS. 5A and 5B  shows an example of tracing connected ducts for identifying corresponding ducts between the as-designed and as-built models. In this case, a subnetwork contains three connected ducts. The nearest neighbor matching process associated duct C (as-designed) with duct C′ (as-built), and duct A (as-designed) with duct B′ (as-built). Duct A′ in the as-built model is short but still twice longer than its corresponding as-designed object (duct B); so that the nearest neighbor matching could not match these two short ducts. The connection tracking method can associate duct B with duct A′ through the check of the connections with ducts already matched—two adjacent ducts both have known matches in the as-built model, then duct B should be duct A′, which connect the two matched as-built ducts. More generally, the connection tracking algorithm can grow the network of matched ducts (along the red arrows in  FIG. 5B ) through connections for identifying more matches until filling unmatched “gaps” between matched ducts. 
         [0000]    
       
         
               
             
               
               
             
               
               
             
               
             
               
               
               
             
               
             
               
               
               
             
               
               
             
           
               
                   
               
               
                 Algorithm 3: Pseudo Code for Subnetwork Matching 
               
               
                 using spatial context 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 1. 
                 // For each duct in the Subnetwork (As-designed model and As- 
               
               
                   
                 built Model) 
               
               
                 2. 
                 Define r fnt , l fnt , r bk , l bk  (Initial Value=0) 
               
               
                 3. 
                 for each Unmatched duct&#39;s center point 
               
             
          
           
               
                   
                 4. if Difference between the x-coordinate of an as-designed line 
               
             
          
           
               
                 and an as-built line &gt;0 
               
             
          
           
               
                   
                 5. 
                 if Two lines are parallel 
               
               
                   
                 6. 
                  l fnt  = l fnt  + 1 
               
               
                   
                 7. 
                 else 
               
               
                   
                 8. 
                  r fnt  = r fnt  +1 
               
               
                   
                 9. 
                 end 
               
               
                   
                 10. 
                 end 
               
               
                   
                 11. 
                 if Difference between the x-coordinate of an as-designed 
               
             
          
           
               
                 line and an as-built line &lt;0 
               
             
          
           
               
                   
                 12. 
                 if Two lines are parallel 
               
               
                   
                 13. 
                  l bk  = l bk  + 1 
               
               
                   
                 14. 
                 else 
               
               
                   
                 15. 
                  r bk  = r bk  +1 
               
               
                   
                 16. 
                 end 
               
               
                   
                 17. 
                 end 
               
               
                   
                 18. 
                 end 
               
             
          
           
               
                 19. 
                 //Repeat the above loop for y, z coordinates of the line&#39;s (As- 
               
               
                   
                 designed and as-built models) center points by defining r rt , l rt , r lft , 
               
               
                   
                 l lft , r ab , l ab , r blw , l blw   
               
               
                 20. 
                 // Generate “Spatial Context Matrix” for each line (duct) using all 
               
               
                   
                 the variables defined above. 
               
               
                 21. 
                 // Find the absolute sum of differences between spatial context 
               
               
                   
                 matrix of each line (duct) from the as-built model to each line 
               
               
                   
                 (duct) from the as-designed model. 
               
               
                 22. 
                 // Generate the spatial context distance matrix. 
               
               
                 23. 
                 //Use the least distance value to match corresponding ducts 
               
               
                   
                 from the as-built model with ducts from the as-designed model. 
               
               
                   
               
             
          
         
       
     
         [0039]    Algorithm 3 generates a “local” spatial context for each duct in the isolated parts of duct networks that undergo significant changes between their as-designed and as-built models. Such isolated parts of ducts are “subnetworks” of larger duct networks of the as-designed and as-built model. A “local” spatial context represents the relative spatial locations and orientations of a duct with respect to other ducts in the subnetwork that contains the considered duct. Table 2 formally defines the concept of local spatial context—every row represents the relative positions of the considered duct with respect to other ducts in the subnetwork along the X, Y, and Z-axes. Here “r” represents the number of lines perpendicular to it; “I” represents the number of lines parallel to it. Along the x-axis, “fnt” means front, “bk” means back. Along the y-axis, “rt” means to the right, “lft” means to the left. Along the z-axis, “ab” means above, and “blw” represents below the corresponding duct. Therefore, “lfnt” stands for the number of ducts in front of and parallel to the considered duct. 
         [0000]    
       
         
               
             
               
               
               
             
               
               
               
               
               
             
           
               
                 TABLE 2 
               
             
             
               
                   
               
               
                 Spatial Context matrix 
               
             
          
           
               
                 Axis 
                 Spatial Context 
               
               
                   
               
             
          
           
               
                 x 
                 r fnt   
                 l fnt   
                 r bk   
                 l bk   
               
               
                 y 
                 r rt   
                 l rt   
                 r lft   
                 l lft   
               
               
                 z 
                 r ab   
                 l ab   
                 r blw   
                 l blw   
               
               
                   
               
             
          
         
       
     
         [0000]        Dij =Sum(| C   ii   −C′   ii |) 
         [0040]    The spatial context matching process calculates the spatial context distance between two ducts and identifies as-designed and as-built ducts that have the most similar spatial contexts as matches. The spatial context distance is the absolute sum of the differences between the local spatial context matrices of the as-designed duct (C) and the as-built duct (C′), as shown in Equation 1. The spatial context matching process associates all remaining unmatched ducts in the as-built model with ducts in the as-designed model that have the most similar spatial contexts as theirs. The distances between the local spatial contexts are elements in a “spatial context distance matrix.” In a spatial context distance matrix, the rows represent the ducts from the as-designed model, and the columns represent the ducts from the as-built model. The matrix elements contain values of the spatial context distances between the corresponding pairs of as-designed and as-built ducts. Table 3 presents the spatial context distance matrix generated for the isolated subnetworks case shown in  FIGS. 4A-4C . This table indicates that the local spatial context matching approach can achieve a reliable match in certain cases. For example, ducts  4 ,  6 , and  8  from the as-designed model are correctly associated with one duct in the as-built model (duct  4 ′). The spatial context matching can handle such “n to one” matching cases. Actually, for the case shown in  FIGS. 4A-4C , the spatial context matching correctly associate all ten as-built ducts with the corresponding as-designed ducts, while the nearest neighbor searching could only correctly match eight of these ten ducts. 
         [0000]    
       
         
               
             
           
               
                 TABLE 3 
               
               
                   
               
               
                 Spatial context distance matrix generated for ducts shown in FIG. 4 
               
               
                   
               
             
             
               
                 
                   
                             
                     
                         
                         
                     
                   
                 
               
               
                   
               
             
          
         
       
     
         [0041]    Above discussions indicate that a combined use of connection tracing and spatial context matching can address the second limitation of the nearest neighbor searching (cannot establish reliable matches between as-designed and as-built ducts when significant changes occur). Overall, algorithm 2 matches using the nearest neighbor searching in which the results from algorithm 2 assist to isolate and classify subnetworks. In addition, subnetworks of ducts are classified into two categories: Category 1—subnetworks that have three or less connected ducts, and category 2—subnetworks that have more than three connected ducts. Once the algorithm extracts all subnetworks containing unmatched ducts between the as-designed and as-built model, it separates them into these two categories. Algorithm 2 shows the matching nearest neighbor searching for growing subnetworks falling into category 1 for filling the unmatched duct sections between matched parts of the duct network. When the subnetwork has more than three ducts and becomes a category 2 subnetwork, algorithm 2 will apply the local spatial context matching for achieving more reliable matching. The last two limitations of the nearest neighbor searching described at the beginning of this subsection causes mismatches—those ducts that are matched in the nearest neighbor searching step could be wrong. An addition step of match checking is thus necessary for correcting such nearest neighbor mismatches. Such a match-checking step traces the connections between ducts available in the as-designed and as-built models for verifying the consistency of the matching results. For example, when two connected as-designed ducts are matched with two as-built ducts that are not connected the algorithm 2 will detect that inconsistency, and trigger a back-tracking of the connection relationships for correcting the mismatch. 
       Performance Metrics and Comparative Analysis of Algorithms for Change Detection 
       [0042]    The fast and computationally efficient change detection approach presented in this disclosure accurately associates the as-designed and as-built model objects, as discussed above. Based on previous studies of assessing the performance of change detection algorithms, the inventors have validated the performance of the system presented in this disclosure against the nearest neighbor searching approach (NN approach hereafter) and a spatial-context matching approach (SC approach hereafter) presented herein. In this comparative analysis of the three change detection approaches, the inventors use the amount of computation time and precision as two metrics to compare the performance of these three algorithms. The computation time only includes the time after the data-model registration step because all three compared approaches use the same data-model registration step and the critical performance difference between these algorithms lie in the steps related to data-model matching. Equation 2 defines the metric of precision. 
         [0000]    
       
         
           
             
               
                 
                   
                     Precision 
                      
                     
                         
                     
                      
                     
                       ( 
                       P 
                       ) 
                     
                   
                   = 
                   
                     
                       Number 
                        
                       
                           
                       
                        
                       of 
                        
                       
                           
                       
                        
                       Correctly 
                        
                       
                           
                       
                        
                       Matched 
                        
                       
                           
                       
                        
                       Ducts 
                     
                     
                       Total 
                        
                       
                           
                       
                        
                       Number 
                        
                       
                           
                       
                        
                       of 
                        
                       
                           
                       
                        
                       Modeled 
                        
                       
                           
                       
                        
                       As 
                        
                       
                         - 
                       
                        
                       Built 
                        
                       
                           
                       
                        
                       Ducts 
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
         [0043]    The precision refers to the percentage of correctly matched as-built ducts in this study. The authors manually associated as-built ducts with as-designed ducts to create the ground truth necessary for calculating the “number of correctly matched ducts” and derive the precision of matching between as-built and as-designed models. 
       Processing System 
       [0044]      FIG. 11  illustrates an example of a suitable computing and networking environment used to implement various aspects of the present disclosure. Example embodiments described herein may be implemented at least in part in electronic circuitry; in computer hardware executing firmware and/or software instructions; and/or in combinations thereof. Example embodiments also may be implemented using a computer program product (e.g., a computer program tangibly or non-transitorily embodied in a machine-readable medium and including instructions for execution by, or to control the operation of, a data processing apparatus, such as, for example, one or more programmable processors or computers). A computer program may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, including as a stand-alone program or as a subroutine or other unit suitable for use in a computing environment. Also, a computer program can be deployed to be executed on one computer, or to be executed on multiple computers at one site or distributed across multiple sites and interconnected by a communication network. 
         [0045]    Certain embodiments are described herein as including one or more modules. Such modules are hardware-implemented, and thus include at least one tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. For example, a hardware-implemented module may comprise dedicated circuitry that is permanently configured (e.g., as a special-purpose processor, such as a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware-implemented module may also comprise programmable circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software or firmware to perform certain operations. In some example embodiments, one or more computer systems (e.g., a standalone system, a client and/or server computer system, or a peer-to-peer computer system) or one or more processors may be configured by software (e.g., an application or application portion) as a hardware-implemented module that operates to perform certain operations as described herein. 
         [0046]    Accordingly, the term “hardware-implemented module” encompasses a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein. Considering embodiments in which hardware-implemented modules are temporarily configured (e.g., programmed), each of the hardware-implemented modules need not be configured or instantiated at any one instance in time. For example, where the hardware-implemented modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware-implemented modules  212  at different times. Software may accordingly configure a processor  202 , for example, to constitute a particular hardware-implemented module at one instance of time and to constitute a different hardware-implemented module at a different instance of time. 
         [0047]    Hardware-implemented modules  212  may provide information to, and/or receive information from, other hardware-implemented modules  212 . Accordingly, the described hardware-implemented modules  212  may be regarded as being communicatively coupled. Where multiple of such hardware-implemented modules  212  exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware-implemented modules. In embodiments in which multiple hardware-implemented modules  212  are configured or instantiated at different times, communications between such hardware-implemented modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware-implemented modules  212  have access. For example, one hardware-implemented module  212  may perform an operation, and may store the output of that operation in a memory device to which it is communicatively coupled. A further hardware-implemented module  212  may then, at a later time, access the memory device to retrieve and process the stored output. Hardware-implemented modules  212  may also initiate communications with input or output devices. 
         [0048]    As illustrated, the computing and networking environment  200  may be a general purpose computing device  200 , although it is contemplated that the networking environment  200  may include other computing systems, such as personal computers, server computers, hand-held or laptop devices, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronic devices, network PCs, minicomputers, mainframe computers, digital signal processors, state machines, logic circuitries, distributed computing environments that include any of the above computing systems or devices, and the like. 
         [0049]    Components of the general purpose computing device  200  may include various hardware components, such as a processing unit  202 , a main memory  204  (e.g., a system memory), and a system bus  201  that couples various system components of the general purpose computing device  200  to the processing unit  202 . The system bus  201  may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. For example, such architectures may include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus. 
         [0050]    The general purpose computing device  200  may further include a variety of computer-readable media  207  that includes removable/non-removable media and volatile/nonvolatile media, but excludes transitory propagated signals. Computer-readable media  207  may also include computer storage media and communication media. Computer storage media includes removable/non-removable media and volatile/nonvolatile media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules or other data, such as RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store the desired information/data and which may be accessed by the general purpose computing device  200 . Communication media includes computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. For example, communication media may include wired media such as a wired network or direct-wired connection and wireless media such as acoustic, RF, infrared, and/or other wireless media, or some combination thereof. Computer-readable media may be embodied as a computer program product, such as software stored on computer storage media. 
         [0051]    The main memory  204  includes computer storage media in the form of volatile/nonvolatile memory such as read only memory (ROM) and random access memory (RAM). A basic input/output system (BIOS), containing the basic routines that help to transfer information between elements within the general purpose computing device  200  (e.g., during start-up) is typically stored in ROM. RAM typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit  202 . For example, in one embodiment, data storage  206  holds an operating system, application programs, and other program modules and program data. 
         [0052]    Data storage  206  may also include other removable/non-removable, volatile/nonvolatile computer storage media. For example, data storage  206  may be: a hard disk drive that reads from or writes to non-removable, nonvolatile magnetic media; a magnetic disk drive that reads from or writes to a removable, nonvolatile magnetic disk; and/or an optical disk drive that reads from or writes to a removable, nonvolatile optical disk such as a CD-ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media may include magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The drives and their associated computer storage media provide storage of computer-readable instructions, data structures, program modules and other data for the general purpose computing device  200 . 
         [0053]    A user may enter commands and information through a user interface  240  or other input devices  245  such as a tablet, electronic digitizer, a microphone, keyboard, and/or pointing device, commonly referred to as mouse, trackball or touch pad. Other input devices  245  may include a joystick, game pad, satellite dish, scanner, or the like. Additionally, voice inputs, gesture inputs (e.g., via hands or fingers), or other natural user interfaces may also be used with the appropriate input devices, such as a microphone, camera, tablet, touch pad, glove, or other sensor. These and other input devices  245  are often connected to the processing unit  202  through a user interface  240  that is coupled to the system bus  201 , but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor  260  or other type of display device is also connected to the system bus  201  via user interface  240 , such as a video interface. The monitor  260  may also be integrated with a touch-screen panel or the like. 
         [0054]    The general purpose computing device  200  may operate in a networked or cloud-computing environment using logical connections of a network Interface  203  to one or more remote devices, such as a remote computer. The remote computer may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the general purpose computing device  200 . The logical connection may include one or more local area networks (LAN) and one or more wide area networks (WAN), but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. 
         [0055]    When used in a networked or cloud-computing environment, the general purpose computing device  200  may be connected to a public and/or private network through the network interface  203 . In such embodiments, a modem or other means for establishing communications over the network is connected to the system bus  201  via the network interface  203  or other appropriate mechanism. A wireless networking component including an interface and antenna may be coupled through a suitable device such as an access point or peer computer to a network. In a networked environment, program modules depicted relative to the general purpose computing device  200 , or portions thereof, may be stored in the remote memory storage device. 
       Validation and Results 
     Experiment Design 
       [0056]    To validate the proposed approach, the inventors collected as-designed information and as-built data of an educational building located at Iowa State University campus. The building is a four-story structure with 16,260 square meter space. The experiment conducted here was focused on the mechanical room of the building. The general contractor of the project provided the as-designed model of the mechanical room, while the inventors collected the as-built data using a Trimble® TX5 phase-based laser scanner.  FIGS. 6A and 6B  present the 3D laser scan data of the mechanical room as well as its corresponding up-to-date BIM, which was updated multiple times during construction due to design changes. 
         [0057]    The four-step process presented in the methodology section was applied to the dataset described above to match the ducts captured in the as-designed model and the 3D laser scan data. The first step is to use the ClearEdge3D™ point cloud processing software to extract ducts present in the laser scan data. The software roughly aligned the design model and as-built data and was able to detect 66% (109 out of 165) of the as-designed ducts that were visible in the 3D laser scan data ( FIGS. 7A and 7B ). The validation experiments presented below thus use that 109 ducts for comparing the data-model matching the performance of the method presented in this paper (NN+SC method) against the nearest neighbor searching (NN method) and spatial context matching (SC method) methods examined in previous studies. 
       Experiment Results 
       [0058]    Upon completion of the as-built modeling process, the nearest neighbor searching and the constraint propagation algorithms were able to detect deviations between the as-designed and as-built models. In the test case, the nearest neighbor searching and constraint propagation algorithms matched (77%) 84 out of 109 of the ducts between two models while detecting and isolating ducts with large deviations between the as-designed and as-built models.  FIG. 8  shows areas of duct network having large deviations (Major isolated subnetworks). Table 4 lists all subnetworks isolated for this test case. 
         [0000]                                                TABLE 4                   Subnetworks Isolated by the Nearest Neighbor Searching       and Constraint Propagation Process                No. of ducts in   No. of ducts in           the subnetwork   the subnetwork       Subnetwork   (As-Designed model)   (As-Built model)                    Subnetwork 1   8   8       Subnetwork 2   6   6       Subnetwork 3   12   10       Subnetwork 4   5   5       Subnetwork 5   4   4       Subnetwork 6   3   3       Subnetwork 7   3   3                    
Comparison of the Developed Algorithm with NN and SC Methods
 
         [0059]      FIGS. 9A and 9B  provide a comparison between the algorithms in terms of processing time and precision; where “NN” is the nearest neighbor searching approach, while “SC” is the spatial context algorithm, and “NN&amp;SC” refers to the algorithm proposed in this study. To ensure the generality of the comparative performance analysis of these algorithms, the inventors conducted a set of experiments using 10, 20, 39, 69, and 109 ducts respectively. The experimental results shown in  FIGS. 9A and 9B  indicate that the proposed NN&amp;SC algorithm is more precise compared to NN and SC algorithms.  FIGS. 9A and 9B  show that when the number of ducts increases, the processing time required for matching using NN algorithm increases while the precision decreases significantly. On the other hand, the processing time required for matching using NN&amp;SC algorithm increases but not exponentially while maintaining the precision of matching. 
       Discussion and Direction for Future Research 
       [0060]    Extension of the presented new change detection algorithm could enable some domain applications that require a fast and reliable comparison between as-designed and as-built conditions. At the same time, the algorithm itself does have a few aspects that deserve further investigation. The paragraphs below present how the presented relational-graph-based approach enables real-time constructability analysis of installing prefabricated building components in accelerated construction projects and discusses a few other issues of the algorithm that deserve further studies. 
         [0061]    Fast and reliable detection of design changes could help detect “fit-up” issues (miss-alignment between components) during the accelerated construction process. Prefabrication of building components has become popular in recent years and shows the potentials in improving the overall construction workflow. However, current methods for monitoring dimensional and installation errors of prefabricated components can hardly capture how those errors accumulate in the field and result in misalignment. As a result, engineers lack tools for real-time control of the error accumulation in the field. As detailed below, an extension of the proposed change detection approach could generate tolerance networks to assist with prefabricated components&#39; installation process to avoid “fit-up” problems. 
         [0062]    A comparison of the relational graphs generated from the as-designed and as-built models could help identify manufacturing and installation errors for each component involved in the accelerated construction process. Those errors of components could form into “tolerance network” that is useful for predicting how errors interact with each other and accumulate into misalignments. A tolerance network analysis could help engineers in identifying strategies in adjusting installation processes for minimizing the impacts of the manufacturing and installation errors of prefabricated components.  FIG. 10B  shows an example of a tolerance network that shows dimensional errors on the nodes that represent building elements (e.g., SEGMENT of ducts, “SEG” in the figure), and shows the rotation and displacement errors of joints between building elements. Specifically, ΔO represents the deviation of a joint from its as-designed orientation, while Δx, Δy, and Δz represents the dislocation of joint from its as-designed location. Given fabrication errors of all connected components and errors at the connections between building elements, this tolerance network can predict how those errors accumulate into misalignment between building elements and predict how engineers could adjust position and rotation parameters during installation for alleviating misalignments. 
         [0063]      FIG. 10B  is the tolerate network generated for the data and model shown in  FIG. 10A  (Subnetwork 1 discussed in the previous section). Eight nodes in  FIG. 10A  represent the eight as-designed ducts in this case. Each node contains a Δl to indicate the prefabrication error that causes the deviation of the length of a duct from its as-designed length. Each edge linking two nodes contains four numbers (ΔO, Δx, Δy, Δz) that indicate the deviations of the joint between the two ducts from its original orientations and locations. Observing the fabrication errors and joint errors in  FIGS. 10A and 10B , one could identify a “flow” of errors that originates from section 2 (SEG 2) and ends at section 4 (SEG 4). 
         [0064]    It should be understood from the foregoing that, while particular embodiments have been illustrated and described, various modifications can be made thereto without departing from the spirit and scope of the invention as will be apparent to those skilled in the art. Such changes and modifications are within the scope and teachings of this invention as defined in the claims appended hereto.