× New eBook: How to win more business with drones

Drones Are Redefining Infrastructure Design—Here’s Why

It’s increasingly common to hear the steady hum of a drone flying on a construction site. They’re being used to share progress updates from the sky, manage earthworks, perform cut-and-fills, and much more. But, there’s also an emerging use case for drones within the civil engineering space: as designers move from 2D towards 3D design and BIM workflows, the reality capture data that drones provide is making a huge impact on their projects. In short: drones are the latest tool in the civil engineer’s workflow, and they’re changing the way the world gets built.

To show how, we recently embarked on a project with Autodesk—working with their team of bridge design and reality capture specialists—to explore the impact that drones are having on infrastructure projects.

Identifying the site

We set out to show the complete drone to design workflow on a real-life project, and we quickly identified a great example: the Pinto Creek bridge, an aging structure east of Phoenix that the Arizona DOT is demolishing and replacing. Drone data is particularly useful for a site like Pinto Creek: it’s a large, steep ravine that a drone can quickly survey—going out in the field to collect this data would be time-consuming and, at times, unsafe. Also, flying a drone doesn’t require closing the road for manual inspection, which is particularly useful because there are no easy detours around the bridge.

Flying the drone

We flew our Site Scan drone to data platform at Pinto Creek and captured the entire area in a single flight. The flight took a half-hour, and we collected 358 high-resolution photos. Then, after processing the images into a number of different data products, we delivered a detailed point cloud to the Autodesk team for processing.

Processing the data

Ramesh Sridharan, Product Manager at Autodesk, imported the raw point cloud data into InfraWorks and processed it to extract and classify the features of the terrain. As the only structure in the area, it was easy to classify the bridge (shown in purple below), and remove it. In a matter of hours, the point cloud was filtered and a complete model was set up—aggregating point clouds, elevation data, and existing infrastructure—that provided a rich context to design the bridge in.

Using a point cloud provided by drone data, Ramesh said, “improves the speed, efficiency, and convenience of designing and modeling existing conditions. Fine details help designers identify existing problems, and then they can propose sound solutions for infrastructure challenges.”

Designing the new bridge

New bridge concept created in InfraWorks

Once the point cloud was prepared for design, Ara Ashikian, Sr. Product Line Manager at Autodesk, created a number bridge models with Infraworks in a matter of hours. He customized road alignments and grading, and could easily modify the parameters of each component that made up the bridge. The magic is behind the scenes: each component is fully parametric and dynamic, so designers can make changes while maintaining engineering principles.

Modifying the parametric components of the new bridge in InfraWorks

“Drone data can create rich point clouds, which are incredibly useful to guide parametric bridge modelling,” Ara said. “With the Pinto Creek point cloud, I designed a bridge within the real-world context of the surrounding ravine and its features.”

The new and old bridge within the point cloud provided by Site Scan

Sending to Revit for detailed design

In just two clicks, Ara sent the final bridge into Autodesk Revit in order to perform more detailed design. Because all of the underlying components of the structure were based on parametric geometry, they could easily be exported into Revit and other tools without needing to recreate them or perform any re-work.

Send the bridge to Revit for detailed design in just 2 clicks

Send the bridge to Revit for detailed design in just 2 clicks

Key Results

Design with existing conditions

Comparison with satellite data vs. a point cloud from Site Scan

All too often, civil engineers work with outdated surfaces when starting the design process—it can be difficult to access a reliable point cloud, so they will fall back on old survey data, satellite images, or blueprints as a replacement. Drones are fixing that: now, designers can quickly and easily collect up-to-date data on the existing conditions of the site, and design with confidence.

Improved collaboration and decision making

By putting drone data into tools like InfraWorks, civil engineers are able to rapidly design in 3D, then share models with clients and other stakeholders far earlier in the project. This makes it easier to modify and iterate on the design before committing to a single one.

Our customers across the country—for example, Atkins Engineering, a multinational engineering and design firm—are integrating drone data into their preliminary design workflow. According to Chris Harman, Civil Engineer at Atkins, “If you can quickly and easily get a 3D version in front of a client, it avoids a lot of changes later on.”

If you can quickly and easily get a 3D version in front of a client, it avoids a lot of changes later on.” — Chris Harman, Civil Engineer, Atkins Engineering

Digitize your as-builts

Drones provide value long after the initial design phases, too: they enable constructors to digitize their jobsite as it evolves, and compare as-builts to the original BIM or CAD models. This makes it easy to identify any issues before the fix becomes costly or time-consuming.

Whether they’re looking to get feedback earlier in the infrastructure design process, create more accurate 3D concepts, or re-digitize the job site during the construction phases, drones and tools like InfraWorks are proving to be crucial tools for engineering firms across the country.

Want to learn more about Site Scan?

Sign up for our newsletter

Get our latest stories on drones and construction.

Thanks for signing up. Now, check out some stories while you're here!

tag * ppcUrlCookiePart1 and ppcUrlCookiePart2 must be called, see bottom of script * update ppcUrlCookiePart2 and ppcUrlCookiePart2 to match your querystring and form field names * */ //Leave this as true to always use querystring values if they exist, if no querystring will attempt to get cookie values var ppcUseLatestValues = true; //set this to false to use cookie values if they exist (if false, will not check querystring first). //function to grab params from cookie function getCookie(param_name) { var i, x, y, cookie = document.cookie.split(";"); for (i = 0; i < cookie.length; i++) { x = cookie[i].substr(0, cookie[i].indexOf("=")); y = cookie[i].substr(cookie[i].indexOf("=") + 1); x = x.replace(/^\s+|\s+$/g, ""); if (x == param_name) { return unescape(y); } } } //function to create cookie function setCookie(param_name, value, exdays) { var exdate = new Date(); exdate.setDate(exdate.getDate() + exdays); //CHANGE DOMAIN BELOW TO MATCH SITE var c_value = escape(value) + ((exdays == null) ? "" : "; domain=.3dr.com; path=/; expires=" + exdate.toUTCString()); document.cookie = param_name + "=" + c_value; } //function to check if cookie exists and, if so, run the setCookie function function checkCookie(param_name, param_url_name) { var param_value = getCookie(param_name); if ((param_value != null && param_value != "" && param_value != "undefined") && ppcUseLatestValues == false) { //this means the param name/value pair exists - and we don't want to use latest } else { //this means the param name/value pair does not exist - so create it //grab values from URL var pageURL = window.location.search.substring(1); var URLVariables = pageURL.split('&'); for (var i = 0; i < URLVariables.length; i++) { var parameterName = URLVariables[i].split('='); if (parameterName[0] == param_url_name) { //filter out "#" in case that is in the last URL param param_value = decodeURIComponent(parameterName[1].split("#")[0]); } } if (param_value != "undefined" && param_value != "" && param_value != null) { //create cookie setCookie(param_name, param_value, 365); } } } //function to setup the parameters and save the cookie values function ppcUrlCookiePart1() { //setup list/array of parameters desired. names on right should match querystring names var param_names = new Array( 'utm_source;utm_source', 'utm_medium;utm_medium', 'utm_campaign;utm_campaign', 'utm_term;utm_term', 'utm_content;utm_content' ); //loop through all params and create cookie for (i = 0; i < param_names.length; i++) { var param_object = param_names[i].split(";");//split out the cookie name and url name var param_name = param_object[0]; var param_url_name = param_object[1]; //start the cookie creation checkCookie(param_name, param_url_name); } } //function to grab cookie params function mGetCookie(param_name) { var i, x, y, cookie = document.cookie.split(";"); for (i = 0; i < cookie.length; i++) { x = cookie[i].substr(0, cookie[i].indexOf("=")); y = cookie[i].substr(cookie[i].indexOf("=") + 1); x = x.replace(/^\s+|\s+$/g, ""); if (x == param_name) { return unescape(y); } } } //function to check if cookie exists and, if so, fill out the corresponding form fields function mCheckCookie(param_name, param_field_name) { var param_value = mGetCookie(param_name); if (param_value != null && param_value != "" && param_value != "undefined") { try { var obj1 = document.getElementsByName(param_field_name); obj1[0].value = param_value; return true; } catch (err) { return false; } } return false; } //function to setup parameters and begin cookie value insertion into marketo form function ppcUrlCookiePart2() { //setup list/array of parameters desired. names on right should match hidden form field names var param_names = new Array( 'utm_source;Lead Source Name (Last Touch)', 'utm_medium;Lead Source Last Touch', 'utm_campaign;Lead Campaign (Last Touch)', 'utm_term;Lead Campaign Term (Last Touch)', 'utm_content;Lead Campaign Content (Last Touch)' ); //loop through all params and create cookie for (i = 0; i < param_names.length; i++) { var param_object = param_names[i].split(";");//split out the cookie name and url name var param_name = param_object[0]; var param_field_name = param_object[1]; //start the cookie creation mCheckCookie(param_name, param_field_name); } } //ppcUrlCookiePart1 will grab values from the querystring and save them in cookies ppcUrlCookiePart1(); //ppcUrlCookiePart2 will retrive values from the cookies and populate the hidden form fields - should be in the onload try { //attempt for Marketo form MktoForms2.whenReady(function (form){ ppcUrlCookiePart2(); }); } catch (err) { //if error on Marketo form, try loading for regular form. ppcUrlCookiePart2(); }