This is a follow up to my previous post on using 123D Catch. That post focused on using merely four photographs (taken from a moving car) of Zion National Park to create a 3D model. The focus of this post is what I explored afterwards: ways to use the 3D model created from photogrammetry for something useful (semi-useful at least).
My wish was to bring the geometry into Revit. In this case, I wanted to explore using the 3D model to create a topographical surface for a “site” in Revit Structure. 123D Catch allows you to save as a .LAS file which is essentially a point cloud file among many other formats. In Revit, you can then link this file using the Link Point Cloud button available in 2012 and the system will prompt you to index the file to create a .PCG file that the software can use. This wasn’t very useful as I wanted to use the point cloud information to create the topography, and not as a modeling reference which is the normal workflow using point clouds. So to summarize, there is no direct way to create topography from a point cloud file (that I know of, at least free).
|PCG file imported into Revit, cool but not useful for our purposes|
Thus, I explored a few options. First I tried to use AutoCAD to run a LISP routine to create a circle around each point, but quickly figured out that was a dead end due to the excessive number of points (that is after all why point cloud formats exist) and also the multiple number of conversion steps necessary.
The successful route for me was to use the LAS2TXT command line application (.exe) from LASTools, which is free, to create x, y, z coordinates from the LAS file. Then opening up and massaging the format in Excel I saved out a .csv file. In Revit, you are then able to create a topographical surface using this csv of x, y, z coordinates. The result is shown below, and represents a possibility for future use as the technology becomes more refined.
You will note that there are some strange edges that are created due to the excessive number of points (created from the original mesh) at particular locations. These can be cleaned up somewhat by editing the surface and getting rid of some of the points. There are also scaling issues, but the possibility of getting complex geometry modeled easily is very exciting. One thing that would be useful is the ability to simplify the surface/reduce the number of points (I envision a slider where one could qualitatively explore a good trade-off for accuracy and number of points). I am sure someone out there is probably working on this.
|Surface slightly cleaned by adding a few 0 elevation points at key locations. Look at all those points!|
|Lazy topo result|
In the interest of Open BIM I am also sharing my data files and hope that you do the same when you find something that benefits the BIM community.
- Original Scene .3dp (123D Catch file ~2KB) – When opening this file with 123D Catch, my photographs used to create the scene will be downloaded automatically to the same directory
- Exported .LAS file (Point cloud data ~1.8MB) – These files are so hard to come by online. Enjoy.
- Massaged .CSV file using LAS2TXT and saving as .CSV in Excel (File used to create surface in Revit ~1.7MB)
While you are at it, you must check this other post from Free Geography Tools that also explores cool application of this technology as well as this other post about the Accuracy of Autodesk 123D Catch.
** Update 01/27/2012 ** The ability to create topography from a point cloud is now a trivial exercise by using the Point Cloud Feature Extraction tools released at Autodesk Labs.