Top 10 analysis tools in construction with Leica Cyclone 3DR

 Preview:

In today's video, we're delving into the cutting-edge world of construction monitoring using laser scanning technology. Today, I will not only explain the concept of laser scanning for construction monitoring but also demonstrate the ten most popular tools and techniques in Leica Cyclone 3DR software suitable for analysis applications. From ensuring precision and safety to saving time and resources, laser scanning has become an indispensable tool in the construction industry. So, let's dive into the world of laser scanning and see how it's reshaping the future of construction monitoring.

Leica Cyclone 3DR - Deviation analysis

Volumes and Ground Analysis: Measuring Earth's Transformations

In every construction project, from skyscrapers to family homes, it all begins with the ground working. In the Leica Cyclone 3DR, we have a variety of tools for volume calculations and ground analysis. One of the easiest is Stockpile - this command enables you to compute stockpile volumes by drawing the contour of each one on a cloud.

The software will use a point cloud within the contour to create one surface and points of the contour will be used to create another reference surface. Next, the software will show volumes between two surfaces. 


The generated surface of the Stockpile could be used also for:

Leica Cyclone 3DR - Ground Analysis

Concrete Floor Analysis: Assessing Flatness and Levelness

Following the groundwork phase, the subsequent critical stage involves concrete works. Here, the assessment of floor levelness and flatness is paramount to guarantee the quality and performance of the constructed elements.


Surface Levelness - This command allows you to analyze the levelness of a mesh or a point cloud. 

You can now see the lowest points in dark blue and the highest points in red.

This type of analysis also could be recreated with comparison tools, selecting the 3D model of the floor and adjacent point cloud, and comparing them with each other. If you colorize the mesh model, then you could apply on it also the Localize Values and the Gridded Inspection tools. Additional information significantly enhances the efficiency of reports.


Surface Flatness - This command allows you to inspect the flatness of a mesh or a point cloud. An inspection value will be associated with each point of the cloud or vertex according to the local flatness.


Surface Slope - This command allows you to inspect the slope of a mesh or a point cloud. An inspection value will be associated with each point of the cloud or vertex according to the angle between the local normal of the surface and the horizontal.


Leica Cyclone 3DR - Floor Levelness

Exploring BIM Deviation Analysis: Precision and Quality Assessment

In Leica Cyclone 3DR there are different options for comparison As-build against Design. The most beneficial is to Compare the Cloud versus BIM model, in that case, we can get an ID of each element that is out of tolerance.  To do this:

When you're using the BIM model for the analysis then you can create BCF notes via the Inspection Notes BCF tool. This command creates or edits notes either to make a report or export a BCF. A note documents an identified defect (as-built vs model), it may contain: inspection labels, 3D views, photos from the camera device, description, and other information. The notes can be exported to a BCF file which later can be imported into BIM collaboration platforms. All information will also be used to generate a PDF or CSV report via the Report Editor.


Leica Cyclone 3DR - Deviation analysis with BCF notes

Mesh Segmentation for Precise Surface Area Extraction

If you would like to clearly see all areas that have out-of-deviation values then split the mesh based on the inspection steps. 

This polyline can be loaded to the TotalSation if you would like to highlight this area for your workers or automated construction machines.

Leica Cyclone 3DR - Segment Mesh by Inspection Steps

BIM Progress Monitoring: Tracking Construction Evolution

BIM Progress Monitoring is a workflow that helps you to identify which parts of a construction site have been built or not by analyzing the coverage of a scan on a BIM model.

Select at least one cloud and a BIM object then launch the command. The full workflow is divided into three different steps:


At the Analyze stage:


Check stage - This step allows to verify and edit the analysis manually. The coverage thresholds are displayed as a reminder.


Export stage - This step allows exporting the analysis as a report and BCF files.

Leica Cyclone 3DR - Progress Monitoring

Comparative Progress Monitoring: Analyzing Temporal Point Clouds

Another version of progress monitoring analysis could be a Cloud vs Cloud comparison. This method is very useful,  especially when you don't have any design model and just need to track changes on-site. Select two point clouds captured at different periods of time and run the Compare Cloud vs Cloud tool. You can define by yourself which exactly cloud will be colored by inspection. Adjust the color scheme.

Leica Cyclone 3DR - Cloud VS Cloud analysis

Discovering Missing Technical Holes in Floors and Walls

To detect missing technical holes in your point cloud you should have a design model or 2D drawing.

Leica Cyclone 3DR  - Detect Missing Technichal Holes 

Measuring and Comparing Geometry: Deviation from Nominal

Measure Geometry - This command allows you to create labels from geometries and compare values to nominal data. You can enter this command with any number of geometries (Line, Circle, Rectangle, Plane, Cylinder, Sphere, Cone) but labels will only be created from the first type of geometry selected.


The parameters you see will depend on what geometries you entered the command with. You can choose to Add nominal information about the selected object(s).

Leica Cyclone 3DR - Measure geometry

BIM Clash Detection: Ensuring Design and Construction Alignment

This command detects clashes between surface objects and clouds and generates report data. Select meshes, surface features, CAD objects, or BIM objects and clouds. Then launch the command.
Set clash detection parameters:


When the computation is done, the user interface guides you to classify potential clashes to create a report. Results will be displayed in a table:


Optionally, click Export BCF. A file with one issue per cluster will be created.

Leica Cyclone 3DR - Clash

Custom Automation Scripts: Streamlining Data Processing

Custom scripting in Leica Cyclone 3DR is a powerful tool that enhances data processing. It improves efficiency, offers customization, supports batch processing, facilitates integration, automates complex tasks, enables repeatability, and allows for advanced analysis. With scripting, you could create unique tools to solve your task. Below you can find some examples.



-  You can just place a plane to the desired location, for example in place of plaster level

- Compare Cloud vs Plane

- Select the inspected surface and run the script

It will automatically split the wall by inspection steps, extract the surface area for each segment, and multiply it by the dedication value, then all values will be summarized and you'll get the Total volume required for the wall plastering.



Tags by template (suitable for 2023 software version)

//select templatePoints and their corresponding cloud (which has been inspected), then run the script

var selectedPoints=SPoint.FromSel();

var inspectedCloud=SCloud.FromSel()[0];


//main loop

for(var i=0;i<selectedPoints.length;i++){

    //find the closest point corresponding to the template point

    var res=inspectedCloud.ClosestPoint(selectedPoints[i],null,0);

    if(!res.ErrorCode){

        var correspondingPoint=res.Point;


        //separate the cloud so as to be able to find the deviation thanks to a SCloudIterator

        //We hope there is only one point within a radius of 0.00001

        var res2=inspectedCloud.SeparateFeature(SSphere.New(correspondingPoint,0.00001),0,SCloud.FILL_IN_ONLY);

        if(!res2.ErrorCode){

            if (res2.InCloud.GetNumber()==1){

                var subCloud=res2.InCloud.GetIterator();

                if (subCloud.IsValid()){

                    var deviation=subCloud.GetDeviation();


                    //create the label

                    var oLabel=SLabel.New(4,1)

                    oLabel.SetName(selectedPoints[i].GetName()+"-"+inspectedCloud.GetName())

                    oLabel.SetColType([SLabel.Deviation])

                    oLabel.SetLineType([SLabel.XX,SLabel.YY,SLabel.ZZ,SLabel.Distance])

                    oLabel.SetCell(0,0,correspondingPoint.GetX())

                    oLabel.SetCell(1,0,correspondingPoint.GetY())

                    oLabel.SetCell(2,0,correspondingPoint.GetZ())

                    oLabel.SetCell(3,0,deviation)

                    oLabel.AttachToPoint(correspondingPoint)

                    oLabel.AddToDoc();

                }else{

                    print("Error 4: invalid subCloud");

                }

            }else{

                print("Error 3: more than 1 point");

            }

        }else{

            print("Error 2: impossible to separate with sphere");

        }

    }else{

        print("Error 1:cannot find closest point");

    }

}

Volume from inspection values (suitable for 2023 software version)

//Select an inspected mesh with defined ranges

var iPoly = SPoly.FromSel()[0];


//Explode by range

var result = iPoly.ExplodeWithInspectionSteps();


//Find the cursors (thresholds)

var colorGradient = iPoly.GetColorGradient();

var cursorTbl = new Array();

for (var i = result.PolyTbl.length - 1; i >= 0; i--) {

  cursorTbl.push(colorGradient.Gradient.GetCursorInfo(i).Position);


  if (cursorTbl.length > 1) {

    if (cursorTbl[cursorTbl.length - 1] == cursorTbl[cursorTbl.length - 2]) {

      throw new Error("Duplicated cursors: please redefine the color gradient");

    }

  }

}


// Function to summarize volumes

function summarizeVolumes(polyTbl) {

  var totalVolume = 0;

  for (var j = 0; j < polyTbl.length - 1; j++) {

    var surface = polyTbl[j].GetSurface().Surface;

    var volume = surface * 0.5 * (cursorTbl[j + 1] + cursorTbl[j]);

    totalVolume += volume;

  }

  return totalVolume;

}


// Print Surface and volume for each segment

if (!result.ErrorCode) {

  for (var j = 0; j < result.PolyTbl.length; j++) {

    // Add segments to the document

    result.PolyTbl[j].SetName("" + j);

    result.PolyTbl[j].AddToDoc();


    if (j == result.PolyTbl.length - 1) {

      print("Undefined: S=" + result.PolyTbl[j].GetSurface().Surface);

    } else {

      // Volume estimation for each segment

      var surface = result.PolyTbl[j].GetSurface().Surface;

      var volume = surface * 0.5 * (cursorTbl[j + 1] + cursorTbl[j]);

      print("Range" + j + " from " + cursorTbl[j] + " to " + cursorTbl[j + 1] + ": S=" + surface + "; Vol=" + volume);

    }

  }


  // Summarize volumes

  var totalVolume = summarizeVolumes(result.PolyTbl);

  print("Total Volume: " + totalVolume);

}


Leica Cyclone 3DR - Script example

These were my top 10 favorite tools and approaches in Leica Cyclone 3DR for construction analysis applications. Instead of ranking them by popularity, I've categorized them based on the main construction stages – from groundwork to concrete works, installation analysis, and so on.

Of course, there are many more tools you can utilize in your daily work. If you're eager to learn more, head over to the Leica E-learning platform, where you'll find three comprehensive online courses covering various tools within Leica Cyclone 3DR. These courses include detailed workflow descriptions, assessment tests, and data samples. Upon completion, you'll even receive an official certificate from Leica Geosystems.

So, don't miss out on the opportunity to enhance your skills and boost your expertise. Explore these courses, and let's continue to build a brighter future in construction analysis with Leica Cyclone 3DR. Thanks for watching!