Summary
Creates a 3-dimensional buffer around points or lines to produce spherical or cylindrical multipatch features.
Illustration
Usage
The output of this tool is closed multipatch features which can be used in volumetric computations and other 3D set operator tools.
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 if the geometry of the line and the buffer distance produces overlapping regions with dense vertices. As a general rule, it is best to avoid buffer distances that may result in the creation of overlapping regions within the same feature.
Syntax
arcpy.ddd.Buffer3D(in_features, out_feature_class, buffer_distance_or_field, {buffer_joint_type}, {buffer_quality}, {simplification_tolerance})
Parameter | Explanation | Data Type |
in_features | The line or point features to be buffered. | Feature Layer |
out_feature_class | The output multipatch containing 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 buffer distance is specified from an input field, its unit of measurement will be derived from the feature's spatial reference. If the linear distance is specified as a numeric value, the following units of measure are supported:
| 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. A higher Buffer Quality value produces smoother 3D features, but also lengthens the processing time. | Long |
simplification_tolerance (Optional) | Simplifies the input lines by maintaining their shape within the specified offset of its original form. Simplification will not take place if no value is specified. The following units of measurement are supported:
| Linear Unit |
Code sample
Buffer3D example 1 (Python window)
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')
Buffer3D example 2 (stand-alone script)
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)
Environments
Licensing information
- Basic: Requires 3D Analyst
- Standard: Requires 3D Analyst
- Advanced: Requires 3D Analyst