# How can I create a fill beneath my 3D surface in ArcScene?

I came across this image on http://desktop.arcgis.com/en/arcmap/latest/extensions/3d-analyst/choosing-the-3d-display-environment.htm

I would like to create something similar that shows the below ground underneath my 3D TIN surface so that it looks like it's been sliced out.

However, I can't seem to find instructions for how to do this, what it's called or a tool that can generate it.

I've tried a few things such as the "extrude between" tool but I don't have a TIN to represent the bottom of the block to extrude between. I only have a TIN for the surface. I do have a polygon feature with the z value of 1m which is the exact extent of the TIN surface. I could use that as the base to extrude between but only get a 999 error when I try to generate TIN from it, probably because it is a flat plane rather than an irregular surface.

Are there any tools or work arounds for creating this?

I know it can be done in non-spatial software like InDesign if I export the surface and do some graphic design on it but my main skill in in GIS and it gets expensive and time consuming to work across multiple software packages.

There are multiple approaches using points, line and polygons. First create very small negative buffer of your DEM outline.

``````arcpy.FeatureToLine_management("BUFFER", "D:/Aerials/jpgs/line.shp")
arcpy.InterpolateShape_3d("dem","line","D:/Aerials/jpgs/line3d.shp")
arcpy.FeatureVerticesToPoints_management("line3d", "D:/Aerials/jpgs/points3d.shp")
``````

Use expression:

``````- ( [POINT_Z]-80)
``````

In Extrusion property of the points (80 here is base altitude) to get this:

Alternatively apply this Python field calculator expression on field Shape of pline3D:

``````def plineZ(shp,base):
arr=[]
part=shp.getPart(0);n=len(part)
for i in xrange(n):
p1=part.getObject(i);X=p1.X+0.05;Y=p1.Y+0.05;Z=base
p2=arcpy.Point (X,Y,Z)
arr.append([p1,p2])
pLine= arcpy.Polyline(arcpy.Array(arr))
return pLine
#-------------------------------------------------
plineZ( !Shape!,80 )
``````

This will give similar output to picture shown above.

Alternatively use script on your points to get this:

• Thanks very much Felix, I will give this a try. I really appreciate your time answering this question. Nov 20, 2016 at 5:50

The simplest way is to do this with a few clicks in ArcScene and set the layer properties to achieve this effect.

Create a Line Domain of your surface (TIN Domain for TIN)

If the line is already 3D and created from the source surface, all you need to do is on the Extrusion tab set Extrusion value to -100 or however much you want to go down and set Apply extrusion by: Adding it to features minimum height. (if line is not 3D, set the base height to the source surface first. Make sure the line follows the edge of the source surface or is withing the surface, otherwise setting the base height to a line outside of the surface extent will remove the line from the scene)

If you convert the outline to points you can then create vertical lines on the slice and all sort of other effects when combined with transparency.

Domain (extent of surface converted to line) with extrusion property set:

The result:

Add some hard lines along the surface edges and bootom of extrusion fo effect. (this involves extruded points on the edges of the domain):

Some more effects with extruded corner points and transparency: You can even etrude every point along the TIN surface down for some extra effects:

• Thank you very much for this answer. I just tried it and it worked really well! Nov 20, 2016 at 5:53