🆕Adding 3D line feature layers

Line feature layers can be useful if you want to represent network data on top of your integrated mesh. Transport data is an obvious candidate for this, but other linear features, such as power lines, could also work well. Using line feature layers can be a little more challenging than working with polygons, as they’re prone to unwanted interactions with the base mesh. Both 2D and 3D line feature data can be used for this, albeit via differing methods and results.

Draped lines

Line features can be dragged into the ‘2D Layers’ section of the Contents pane, where they’ll be styled using current Symbology settings and draped over the mesh.

The advantage of draping line features concerns their visibility – they’ll never ‘disappear’ under the mesh. Unfortunately, the downside of this is that the lines may be rendered on top of obstructing features such as trees or bridges. This can look very strange and may not be what you really want. Also, the geometry can become jagged and is prone to looking untidy.

In the example below, 2D road features, from OS Open Zoomstack, have been draped onto an integrated mesh.

OS Open Zoomstack road data, draped directly onto a 3D mesh. Yellow lines draped over roads depicted in the data look jagged and untidy.
OS Open Zoomstack road data, draped directly onto a 3D mesh.

In the following example, using the same OS Open Zoomstack data, it can be seen how the line features have been draped across overhanging treetops, which probably isn’t the desired outcome. Also, when viewed from the side, the lines no longer appear to be straight. Obviously, the severity of these problems depends very much on the content represented within the mesh itself.

OS Open Zoomstack road data, being draped over trees that cover the carriageway beneath. Yellow lines depicting road data are draped over protruding features that extend over the road surface.
OS Open Zoomstack road data, being draped over trees that cover the carriageway beneath.

Representing line features in 3D space

In contrast to the above, dragging road data into the ‘3D Layers’ section will plot line features in 3D space, using their full 3D geometries. Ideally, you’ll want to use true 3D data layer for this, as 2D layers will likely find themselves hidden beneath the mesh.

OS NGD Road Link features are an example of an OS vector product that contains Z values by default and is thus a good candidate for this type of project. Nevertheless, when visualised over an integrated mesh, it may be observed that the lines are prone to cutting through and under the mesh. The extent to which this is desirable will be dependent on individual use cases.

3D NGD roadlink data, visualised alongside an integrated mesh. Yellow lines following the road network adhere closely to their surface and remain uniform throughout.
3D OS NGD Road Link data, visualised alongside an integrated mesh.

To avoid issues where the line features appear to be passing under the roads, a good solution is simply to move the line features upwards. ArcGIS Pro offers at least two methods to accomplish this.

The simplest solution is to use the ‘Cartographic Offset’ parameter, found in the Elevation pane, to apply a visual z-axis adjustment. Alternatively, should you want to make the transformation permanent, the ‘Adjust 3D Z’ geoprocessing tool can be used. Of course, it’s best to make a copy of your source data before attempting this.

Adjust 3D Z dialog option showing input parameters used for geoprocessing
Adjust 3D Z geoprocessing dialog option.
3D NGD roadlink features, after being raised with the 'Adjust 3D Z' tool.
3D OS NGD Road Link features, after being raised with the 'Adjust 3D Z' tool.

Should you wish to improve the general visibility of the line features, you can use the ‘Buffer 3D’ geoprocessing tool (included in the 3D Analyst extension) to convert the basic line features into something akin to 3D pipes.

Buffer 3D geoprocessing dialog box showing input parameters: distance 0.5 meters, joint type: straight, Buffer quality: 20
Buffer 3D geoprocessing dialog box showing input parameters.
3D vector lines, buffered to form 3D ‘pipe’ objects. Green lines above the road surface appear wider when overlayed on the model.#
3D vector lines, buffered to form 3D ‘pipe’ objects.

Converting 2D features to 3D

Should you not want to drape your 2D data over your mesh, you can avoid this by generating an additional 3D version. There are two primary methods for achieving this.

Firstly, if the layer contains height information within a separate column, you can use this to create true 3D data using the ‘Feature To 3D By Attribute’ geoprocessing tool.

Alternatively, as shown below, height values can be extracted from a separate elevation model, using the ‘Interpolate Shape’ geoprocessing tool (requires the 3D Analyst extension).

Interpolate shape tool dialog using openzoomstack.roads_local input features, Z factor 1, Bilinear method
Interpolate Shape tool dialog.
2D OS Open Zoomstack road data, converted to 3D using the 'Interpolate Shape' tool, then buffered, in 3D, to improve visibility.
2D OS Open Zoomstack road data, converted to 3D using the 'Interpolate Shape' tool, then buffered, in 3D, to improve visibility.

Unfortunately, it isn’t currently possible to use an integrated mesh as an input into the Interpolate Shape tool. Instead, you’re limited to just using a standard surface object, which isn’t necessarily what you’re going to want in this context. Hopefully, this is something that will be addressed in a future update.

Last updated

Was this helpful?

#345: Adding What's next networking links

Change request updated