ArcObjects Library Reference (Geometry)  

IBufferConstructionProperties.BufferProgress Property

Report the progress of a buffer operation via this callback interface.

[Visual Basic .NET]
Public Property BufferProgress As IBufferProgress
[C#]
public IBufferProgress BufferProgress {get; set;}
[C++]
HRESULT get_BufferProgress(
  IBufferProgress** ppProgress
);
[C++]
HRESULT putref_BufferProgress(
  IBufferProgress* ppProgress
);
[C++]

Parameters

ppProgress [out, retval]

  ppProgress is a parameter of type IBufferProgress

ppProgress

  ppProgress is a parameter of type IBufferProgress

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Remarks

ConstructBuffers  and ConstructBuffersByDistances can report progress, if desired, during lengthy operations. Use this property to specify a callback interface that will receive progress events. This interface will also let clients cancel the current buffer method invocation. Buffer progress is measured in units of  “operations”, “stages” and “steps”. An operation is either the action of buffering a group of geometries of the same dimension, or of dissolving together buffers generated from inputs of different dimensions.  Each operation has one or more stages. Point buffering always has one stage. Polyline and polygon buffering may have multiple stages. Finally, each stage has several steps. Typically each step corresponds to some number of output buffers being generated, but this is not always the case.

Here are some examples.
1. Buffer 1000 points, without unioning the buffers. There is one operation, one stage and step progress will be reported for every n points buffered, where n is an implementation dependent parameter (every 10 points, say).
2. Buffer 1000 points with dissolve. There is 1 operation, 1 stage, and some number of steps, but in this case the steps correspond to progress made through both the buffering and dissolve operations, and thus do not correspond to individual points being buffered.
3. Buffer 500 points and 500 polygons, without dissolve. There are 2 operations. The polygon buffer operation may be subdivided into multiple stages depending on the buffer distance and complexity of the polygons encountered. Multiple stages mean that the buffers are “grown” incrementally. So for example, buffers at a distance of distance/3 are first generated, then those are rebuffered, etc. The number of stages may not be known in advance and could increase during the course of processing. The steps in each stage correspond to individual features being buffered.
4. 500 points and 500 polygons are buffered with dissolve. There are 3 operations, the final one being the dissolve operation. There may be multiple stages for the polygon buffering operation, depending on the buffer distance and how complicated the polygons are.

See Also

IBufferConstructionProperties Interface