Buffer 3D (3D Analyst)
Summary
Creates a 3D buffer around point or line features.
Illustration
Usage
Generates spheres for point inputs and cylindrical features for line inputs.
Outputs closed multipatch features which can be used for volumetric computations, including those provided by the 3D set operator tools. See Working with 3D set operators for more information on what set operators are and how to use them..
Increasing Buffer Quality produces smoother 3D features at the expense of extending processing time.
Consider specifying a Simplification value to improve performance with complex line features, such as curved lines with a large number of vertices.
This tool may not be able to generate a closed multipatch for certain line features due to the geometry of the line and the buffer distance being used. Avoid buffer distances that may cause overlapping buffers within the same feature, and consider specifying a smaller buffer distance for features that fail to generate an output.
Syntax
Parameter | Explanation | Data Type |
in_features |
The line or point features to be buffered. | Feature Layer |
out_feature_class |
The output multipatch features that represent the 3D buffers. | Feature Class |
buffer_distance_or_field |
The distance of the buffer around the input features, which can be provided as either a linear distance or be derived from a numeric field in the input feature's attribute table. If the Distance linear units are not specified or are entered as Unknown, the linear unit of the input features' spatial reference is used. | Linear Unit; Field |
buffer_joint_type (Optional) |
The shape of the buffer between the vertices of the line segments. This parameter is only valid for input line features.
| String |
buffer_quality (Optional) |
The number of segments used to represent the resulting multipatch features. The default is 20, but any number between the range of 6 to 60 can be entered. | Long |
simplification_tolerance (Optional) | Simplification eliminates vertices from the input lines by maintaining critical vertex points that define the shape of the original lines within the maximum allowable offset. By default, simplification will not take place unless a tolerance value is specified. The simplification tolerance can be defined as a string containing the numeric value and its desired linear unit of measure (for example, 1.5 Meters) or a numeric value without an associated unit of measure, in which case, it would default to the linear unit of the input's horizontal spatial reference. | Linear Unit |
Code Sample
The following sample demonstrates the use of this tool in the Python window:
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Buffer3D_3d('lineFC.shp', 'buffer3d.shp', '15 Meters',
'Round', 30, '1 Meters')
The following sample demonstrates the use of this tool in a stand-alone Python script:
'''****************************************************************************
Name: Buffer 3D Example
Description: This script demonstrates an application of
the Buffer 3D and Inside 3D tools.
****************************************************************************'''
# Import system modules
import arcpy
from arcpy import env
import exceptions, sys, traceback
try:
# Obtain a license for the ArcGIS 3D Analyst extension
arcpy.CheckOutExtension('3D')
# Set environment settings
env.workspace = 'C:/data'
# Set Local Variables
inFC = 'lineFC.shp'
bufferOut = 'buffer3d.shp'
# Execute Buffer 3D
arcpy.Buffer3D_3d(inFC, bufferOut, '15 Meters', 'Round', '30', '1 Meters')
arcpy.Inside3D_3d(bufferOut, 'survey_pts.shp', 'inside_analysis.dbf')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)