Some hints on creating 3D features in ArcGIS Pro
One of the nice things that ArcGIS Pro does better than previous versions is handling data in 3D. Using scenes, it’s become a lot easier to put together nice visualisations. For instance, below I’ve got a viewshed generated from a set of five points that represent wind turbines on 70 m tall towers on a 2D map:
Nice enough – the purple areas are the locations visible from the five points. Let’s see if we can do something with a bit more impact in 3D. I can easily convert my 2D map to a 3D scene from the Insert tab > Convert:
(NB: I can also add bland scenes from Insert > New Map > Local or Global Scene)
We’ve got three options here – To Global Scene, To Local Scene and To Basemp. Global scenes can be used when looking at continental or larger areas where the earth’s curvature is important while Local scenes are more appropriate for smaller areas. To Basemap lets us create our own, reusable basemaps and has nothing to do with 3D (and note how we can take a 3D scene and convert it to a 2D map).
Once the 3D scene opens we can pan and tilt our view around (try holding down the mouse wheel and moving the mouse around), much like Google Earth. Below I’ve changed the perspective to allow us to see the interplay between the points, the topography and the visibility:
Nice – let’s address our tower points next. They’re currently just there as dots but we do have a few thing we can play with, the first being extrusion. When added to the scene, the points are placed on top of a built-in, global scale elevation model so it looks like they’re sitting on the surface (if you’re having trouble with trying this, skip to the last section of this post). In our case, our points are representing 70 m tall wind turbines, so one option is to extrude the points up to that height. To do this, have the point layer selected in the Contents pane and go to the Appearance tab and look for the Extrusion group:
There are a few options under type:
“None” is the default and they just sit there on the surface, enjoying life. The “Base Heights” option lets us add a height to be added to the base of the feature – this needs to be an attribute in the table. With “Absolute Height”, “Each feature is extruded to the specified z-value as a flat top, regardless of the z-values of each feature”. I’ll be honest – I don’t fully understand what that means. Base Height works for us in this situation.
With that chose, I can set the Field from my table, which in this layer is called OffsetA – it automatically picks up that the units for the data are metres:
Which gets us this:
So now I’ve got the points as basically hollow cylinders that could use some different colours to be a bit more indicative. We can do this sort of thing with lines and polygons as well. There are other options though – Pro has a lot of built-in 3D symbols that might come in handy here. To see them, go to the Symbology pane and click on the Symbol icon – this takes us to the Format Point Symbol pane. Looking under Gallery I can see a number of options – when fully collapsed there are three:
If you don’t see these available, go the Insert tab and look for Styles > Add > Add System Style. (the Styles group is over on the right side of the ribbon.) Here you can choose from a range of built in symbols – I’ve got the 3D options expanded below:
Those in the know will recognise that there are some wind turbine symbols in the 3D Industrial style, so add that one by ticking the box.
Back in the Gallery, scroll down and you’ll find a few wind turbines:
Of course you could choose a good old Dutch windmill instead, but…
Anyway, I like the looks of Wind Farm Tower 3 so I’ll choose that one (I’ve got to reset the Extrusion type to none for this to work):
You’ll have to squint to see them but they’re there. I’d like to make them larger which can be done from the symbol Properties pane:
Hey presto! That’s some proper turbines! I made them larger by increasing the size to 70 pts. Key point here – the units are points and not metres, so it’s not real world units. The strange thing about this is they will stay that size no matter what the level of zoom is, i.e. they don’t scale:
This is really something that could (and should) be addressed by the developers. We used to be able to do it. Anyway, this will be something that will have to set depending on the level of zoom, but at least we’ve got the option of using 3D symbols in a 3D scene.
All well and good but I’ve skipped one VERY important point in all this. Whether this works correctly or not depends on how the point data were created. Some vector data can have built-in 3D values while most don’t. These are called Z values and you can choose to use them or not when the layer gets created. All that we’ve done above works if the layer doesn’t use Z values. Here’s how we address that from the get go.
To create a new feature class, we would be right-clicking on a geodatabase (either in the Catalog pane or the Catalog View) and choosing New > Feature Class:
As usual with all things ArcGIS, you next get a series of windows to go through to set up your layer. The first covers names, types and the Z values:
In this dialogue I set the Name to “Turbines”, the Alias (how it appears in the Contents when added to a map) as “Wind Turbines”, and set the type to “Point”. To deal to the Z values, untick the box that is ticked by default next to “Z Values”. When you carry on through the other steps, the layer should then play nicely with extruding and 3D symbols.
BUT, what if you’ve already created a layer and inadvertently set it up with Z values? Fear not – a simple conversion will allow us to fix this. Right-click on your existing layer and go to Export > Feature Class(es) to Geodatabase:
This tool will allow you to make a copy of the layer in which we can disable the Z values. The Parameters are pretty straightforward:
Click over to the Environments and scroll down to the Z Values section. Under “Output has Z Values” select Disabled:
After running you’ve got a new version of the same layer without the Z values.
(Aside – you may have notice the M Values along the way. I don’t want to go into a lot of detail, but the M stands for “measures” and can be used to locate a feature, or an event along a linear feature, say where an accident occurred along a section of road. I’ll be honest, I’ve never used them but I could see how they could be handy.)
3D scenes can be effective ways of communicating results in some cases. There are some things we should be careful of using (or rather NOT using) but that’s a story for another time.