com.esri.arcgis.geodatabase
Interface IFeatureConstruction

All Superinterfaces:
Serializable
All Known Implementing Classes:
FeatureConstruction

public interface IFeatureConstruction
extends Serializable

Provides access to members that add features to a specified feature class using other features and geometries.

Superseded By

IFeatureConstruction2

Remarks

Adds features to a specified feature class by processing other features or geometries. Each of the construction methods on this interface operate under the following guidelines.

Product Availability

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


Method Summary
 void autoCompleteFromFeatures(IFeatureClass featureClass, IEnvelope processingBounds, IEnumFeature lineSrc, IInvalidArea invalidArea, double clusterTolerance, IWorkspace selectionWorkspace, ISelectionSet[] selectionSet)
          Adds polygons to the specified feature class by combining existing polygons with the specified line source.
 void autoCompleteFromFeaturesFromCursor(IFeatureClass featureClass, IEnvelope processingBounds, IFeatureCursor lineSrc, IInvalidArea invalidArea, double clusterTolerance, IWorkspace selectionWorkspace, ISelectionSet[] selectionSet)
          Adds polygons to the specified feature class by combining existing polygons with the specified line source.
 void autoCompleteFromGeometries(IFeatureClass featureClass, IEnvelope processingBounds, IEnumGeometry lineSrc, IInvalidArea invalidArea, double clusterTolerance, IWorkspace selectionWorkspace, ISelectionSet[] selectionSet)
          Adds polygons to the specified feature class by combining existing polygons with the specified line source.
 void constructLines(ICancelOperation cancel, IFeatureClass targetFC, IEnumFeature sel, boolean replaceExistingInTarget, IInvalidArea invalidArea, double clusterTolerance)
          Adds line to an fc, using the map selection as the feature source.
 void constructLinesFromCursor(ICancelOperation cancel, IFeatureClass targetFC, IFeatureCursor sel, boolean replaceExistingInTarget, IInvalidArea invalidArea, double clusterTolerance)
          Adds line to a feature class, using a feature cursor as the feature source.
 void constructPolygonsFromFeatures(ICancelOperation cancel, IFeatureClass featureClass, IEnvelope processingBounds, boolean modifyExisting, boolean replaceTargetSelection, IEnumFeature lineSrc, IInvalidArea invalidArea, double clusterTolerance, IFeatureClass labels)
          Constructs polygons into the feature class, using the map's polyline selection as the feature source.
 void constructPolygonsFromFeaturesFromCursor(ICancelOperation cancel, IFeatureClass targetFC, IEnvelope processingBounds, boolean modifyExisting, boolean replaceTargetSelection, IFeatureCursor pLineSrc, IInvalidArea invalidArea, double clusterTolerance, IFeatureClass pLabels)
          Constructs polygons into the specified feature class, using the cursor as the feature source.
 void constructPolygonsFromGeometries(ICancelOperation cancel, IFeatureClass featureClass, IEnvelope processingBounds, boolean modifyExisting, IEnumGeometry pLineSrc, IInvalidArea invalidArea, double clusterTolerance)
          Constructs polygons into the specified feature class, using the specified set of polyline geometries to define new boundaries (possibly in combination with existing polygons features).
 boolean isFeaturesChanged()
          Indicates if the last IFeatureConstruction method created or altered features.
 void planarizeLines(ICancelOperation cancel, IEnumFeature enumFeature, double clusterTolerance)
          Replaces the line selection set with a planarized version of it.
 void planarizeLinesFromCursor(ICancelOperation cancel, IFeatureClass featureClass, IFeatureCursor featureCursor, double clusterTolerance)
          Replaces the line selection set with a planarized version of it.
 void setConstructedFeaturesSubtype(int rhs1)
          The subtype for subsequently constructed features.
 void setDefaultZ(double rhs1)
          The z value to be used when constructing features from inputs that are not z-aware.
 void splitPolygonsWithLines(ICancelOperation cancel, IFeatureClass featureClass, IEnvelope processingBounds, IEnumFeature lineSrc, IInvalidArea invalidArea, double clusterTolerance)
          Splits polygons in the specified feature class, using the polyline selection as the feature source.
 void splitPolygonsWithLinesFromCursor(ICancelOperation cancel, IFeatureClass featureClass, IEnvelope processingBounds, IFeatureCursor pLineSrc, IInvalidArea invalidArea, double clusterTolerance)
          Splits polygons in the specified feature class, using the polyline selection as the feature source.
 

Method Detail

constructLines

void constructLines(ICancelOperation cancel,
                    IFeatureClass targetFC,
                    IEnumFeature sel,
                    boolean replaceExistingInTarget,
                    IInvalidArea invalidArea,
                    double clusterTolerance)
                    throws IOException,
                           AutomationException
Adds line to an fc, using the map selection as the feature source. The selection can contain polygons and polylines from multiple features classes - including the target feature class. -1 for c.t. means use c.t. of target sr.

Remarks

ConstructLines creates new line features to the target feature class by planarizing a selected set of features. The selection can contain polygons and polylines from multiple features classes - including the target feature class.

If replaceExistingInTarget is true, then selected features that are already in the target feature class will be replaced by their planarized versions, otherwise the planarized versions will be added in addition to the originals, resulting in overlapping features in the target. In both cases, planarized features originating from target features will receive the correct attributes.

The invalid area interface is optional and can be used to redraw the area affected by processing. In some cases it may be necessary to have an invalid area in order for related features (annotation, route symbology, etc) to redraw correctly.

The cluster tolerance must at least be as large as the cluster tolerance of the spatial reference associated with the target feature class.

Product Availability

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

Parameters:
cancel - A reference to a com.esri.arcgis.geodatabase.ICancelOperation (in)
targetFC - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
sel - A reference to a com.esri.arcgis.geodatabase.IEnumFeature (in)
replaceExistingInTarget - The replaceExistingInTarget (in)
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
clusterTolerance - The clusterTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructLinesFromCursor

void constructLinesFromCursor(ICancelOperation cancel,
                              IFeatureClass targetFC,
                              IFeatureCursor sel,
                              boolean replaceExistingInTarget,
                              IInvalidArea invalidArea,
                              double clusterTolerance)
                              throws IOException,
                                     AutomationException
Adds line to a feature class, using a feature cursor as the feature source. The cursor can return features from the target feature class, in which case the original features will be deleted. -1 for c.t. means use c.t. of target sr.

Remarks

This method is similar to IFeatureConstruction::ConstructLines, but uses a FeatureCursor for defining input features; thus only features from a single feature class can be planarized. This version is useful for standalone applications that don’t have access to a map selection object (or anything else that supports IEnumFeature).

Product Availability

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

Parameters:
cancel - A reference to a com.esri.arcgis.geodatabase.ICancelOperation (in)
targetFC - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
sel - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)
replaceExistingInTarget - The replaceExistingInTarget (in)
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
clusterTolerance - The clusterTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructPolygonsFromFeatures

void constructPolygonsFromFeatures(ICancelOperation cancel,
                                   IFeatureClass featureClass,
                                   IEnvelope processingBounds,
                                   boolean modifyExisting,
                                   boolean replaceTargetSelection,
                                   IEnumFeature lineSrc,
                                   IInvalidArea invalidArea,
                                   double clusterTolerance,
                                   IFeatureClass labels)
                                   throws IOException,
                                          AutomationException
Constructs polygons into the feature class, using the map's polyline selection as the feature source.

Remarks

Constructs polygons into the target feature class, using the map's selection as the feature source. The selection can contain polylines and polygons. If polygons are included in the selection, their boundaries will be used and will simply act as additional polylines being considered for target polygon construction. Multi-part input polygons will not appear as multi-part polygons in target.

If bModifyExisting is true, then the specified “processing bounds” envelope will be used to search for existing polygons in the target feature. Those polygons will be integrated with any polygons constructed from the input linework. Other than that, existing polygons have no influence on the nature of the constructed polygons. The processing bounds parameter can be nil if bModifyExisting is false.

If bReplaceTargetSelection is true, then the selected features that are already in the target feature class will be replaced by their planarized versions, otherwise the planarized versions will be added in addition to the originals, resulting in overlapping features in the target. In both cases, planarized features originating from target features will receive the correct attributes.

The label feature class is optional and can specify an attribute source for the constructed polygons.

Product Availability

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

Parameters:
cancel - A reference to a com.esri.arcgis.geodatabase.ICancelOperation (in)
featureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
processingBounds - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
modifyExisting - The modifyExisting (in)
replaceTargetSelection - The replaceTargetSelection (in)
lineSrc - A reference to a com.esri.arcgis.geodatabase.IEnumFeature (in)
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
clusterTolerance - The clusterTolerance (in)
labels - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructPolygonsFromFeaturesFromCursor

void constructPolygonsFromFeaturesFromCursor(ICancelOperation cancel,
                                             IFeatureClass targetFC,
                                             IEnvelope processingBounds,
                                             boolean modifyExisting,
                                             boolean replaceTargetSelection,
                                             IFeatureCursor pLineSrc,
                                             IInvalidArea invalidArea,
                                             double clusterTolerance,
                                             IFeatureClass pLabels)
                                             throws IOException,
                                                    AutomationException
Constructs polygons into the specified feature class, using the cursor as the feature source.

Remarks

This method is similar to ConstructPolygonsFromFeatures, but uses a FeatureCursor for defining input features. This version is useful for standalone applications that don’t have access to a map selection object (or anything else that supports IEnumFeature).

Product Availability

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

Parameters:
cancel - A reference to a com.esri.arcgis.geodatabase.ICancelOperation (in)
targetFC - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
processingBounds - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
modifyExisting - The modifyExisting (in)
replaceTargetSelection - The replaceTargetSelection (in)
pLineSrc - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
clusterTolerance - The clusterTolerance (in)
pLabels - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructPolygonsFromGeometries

void constructPolygonsFromGeometries(ICancelOperation cancel,
                                     IFeatureClass featureClass,
                                     IEnvelope processingBounds,
                                     boolean modifyExisting,
                                     IEnumGeometry pLineSrc,
                                     IInvalidArea invalidArea,
                                     double clusterTolerance)
                                     throws IOException,
                                            AutomationException
Constructs polygons into the specified feature class, using the specified set of polyline geometries to define new boundaries (possibly in combination with existing polygons features).

Remarks

This method is similar to ConstructPolygonsFromFeatures, but uses a geometry enumerator for defining input features instead of a map selection or a FeatureCursor.

Product Availability

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

Parameters:
cancel - A reference to a com.esri.arcgis.geodatabase.ICancelOperation (in)
featureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
processingBounds - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
modifyExisting - The modifyExisting (in)
pLineSrc - A reference to a com.esri.arcgis.geometry.IEnumGeometry (in)
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
clusterTolerance - The clusterTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

splitPolygonsWithLines

void splitPolygonsWithLines(ICancelOperation cancel,
                            IFeatureClass featureClass,
                            IEnvelope processingBounds,
                            IEnumFeature lineSrc,
                            IInvalidArea invalidArea,
                            double clusterTolerance)
                            throws IOException,
                                   AutomationException
Splits polygons in the specified feature class, using the polyline selection as the feature source.

Product Availability

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

Parameters:
cancel - A reference to a com.esri.arcgis.geodatabase.ICancelOperation (in)
featureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
processingBounds - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
lineSrc - A reference to a com.esri.arcgis.geodatabase.IEnumFeature (in)
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
clusterTolerance - The clusterTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

splitPolygonsWithLinesFromCursor

void splitPolygonsWithLinesFromCursor(ICancelOperation cancel,
                                      IFeatureClass featureClass,
                                      IEnvelope processingBounds,
                                      IFeatureCursor pLineSrc,
                                      IInvalidArea invalidArea,
                                      double clusterTolerance)
                                      throws IOException,
                                             AutomationException
Splits polygons in the specified feature class, using the polyline selection as the feature source.

Remarks

This method is similar to SplitPolygonsWithLines, but the feature source uses a FeatureCursor instead of a map selection to define the input features.

Product Availability

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

Parameters:
cancel - A reference to a com.esri.arcgis.geodatabase.ICancelOperation (in)
featureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
processingBounds - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
pLineSrc - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
clusterTolerance - The clusterTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

autoCompleteFromGeometries

void autoCompleteFromGeometries(IFeatureClass featureClass,
                                IEnvelope processingBounds,
                                IEnumGeometry lineSrc,
                                IInvalidArea invalidArea,
                                double clusterTolerance,
                                IWorkspace selectionWorkspace,
                                ISelectionSet[] selectionSet)
                                throws IOException,
                                       AutomationException
Adds polygons to the specified feature class by combining existing polygons with the specified line source.

Remarks

This method is similar to AutoCompleteFromFeatures, but uses a geometry enumerator for defining input features instead of a map selection or a FeatureCursor.

Product Availability

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

Parameters:
featureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
processingBounds - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
lineSrc - A reference to a com.esri.arcgis.geometry.IEnumGeometry (in)
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
clusterTolerance - The clusterTolerance (in)
selectionWorkspace - A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
selectionSet - A reference to a com.esri.arcgis.geodatabase.ISelectionSet (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

autoCompleteFromFeatures

void autoCompleteFromFeatures(IFeatureClass featureClass,
                              IEnvelope processingBounds,
                              IEnumFeature lineSrc,
                              IInvalidArea invalidArea,
                              double clusterTolerance,
                              IWorkspace selectionWorkspace,
                              ISelectionSet[] selectionSet)
                              throws IOException,
                                     AutomationException
Adds polygons to the specified feature class by combining existing polygons with the specified line source.

Remarks

This method is similar to ConstructPolygonsFromFeatures, but existing polygons in the target polygon feature class will never be overlapped by constructed polygons, therefore, the processing bounds parameter should never be set to null.

The optional output SelectionSet contains references to all constructed polygons. If the SelectionSet is defined, then the selection workspace parameter must also be defined and will contain the selection set.

Product Availability

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

Parameters:
featureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
processingBounds - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
lineSrc - A reference to a com.esri.arcgis.geodatabase.IEnumFeature (in)
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
clusterTolerance - The clusterTolerance (in)
selectionWorkspace - A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
selectionSet - A reference to a com.esri.arcgis.geodatabase.ISelectionSet (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

autoCompleteFromFeaturesFromCursor

void autoCompleteFromFeaturesFromCursor(IFeatureClass featureClass,
                                        IEnvelope processingBounds,
                                        IFeatureCursor lineSrc,
                                        IInvalidArea invalidArea,
                                        double clusterTolerance,
                                        IWorkspace selectionWorkspace,
                                        ISelectionSet[] selectionSet)
                                        throws IOException,
                                               AutomationException
Adds polygons to the specified feature class by combining existing polygons with the specified line source.

Remarks

This method is similar to AutoCompleteFromFeatures, but uses a FeatureCursor for defining input features.

Product Availability

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

Parameters:
featureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
processingBounds - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
lineSrc - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)
invalidArea - A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
clusterTolerance - The clusterTolerance (in)
selectionWorkspace - A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
selectionSet - A reference to a com.esri.arcgis.geodatabase.ISelectionSet (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

planarizeLines

void planarizeLines(ICancelOperation cancel,
                    IEnumFeature enumFeature,
                    double clusterTolerance)
                    throws IOException,
                           AutomationException
Replaces the line selection set with a planarized version of it. Assumes all lines are from same feature class.

Remarks

This method is similar to ConstructLines in the case where the target feature class contains all the features in the enumerator. Existing features in the feature class are replaced by the planarized versions. Feature attributes are transferred.

Product Availability

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

Parameters:
cancel - A reference to a com.esri.arcgis.geodatabase.ICancelOperation (in)
enumFeature - A reference to a com.esri.arcgis.geodatabase.IEnumFeature (in)
clusterTolerance - The clusterTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

planarizeLinesFromCursor

void planarizeLinesFromCursor(ICancelOperation cancel,
                              IFeatureClass featureClass,
                              IFeatureCursor featureCursor,
                              double clusterTolerance)
                              throws IOException,
                                     AutomationException
Replaces the line selection set with a planarized version of it.

Remarks

This method is similar to PlanarizeLines except a FeatureCursor is used to define the input features.

Product Availability

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

Parameters:
cancel - A reference to a com.esri.arcgis.geodatabase.ICancelOperation (in)
featureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
featureCursor - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)
clusterTolerance - The clusterTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setConstructedFeaturesSubtype

void setConstructedFeaturesSubtype(int rhs1)
                                   throws IOException,
                                          AutomationException
The subtype for subsequently constructed features.

Remarks

Sets the subtype for subsequently constructed features.

Product Availability

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

Parameters:
rhs1 - The rhs1 (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultZ

void setDefaultZ(double rhs1)
                 throws IOException,
                        AutomationException
The z value to be used when constructing features from inputs that are not z-aware.

Remarks

Sets the z value to be used when constructing features from inputs that are not z-aware.

Product Availability

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

Parameters:
rhs1 - The rhs1 (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isFeaturesChanged

boolean isFeaturesChanged()
                          throws IOException,
                                 AutomationException
Indicates if the last IFeatureConstruction method created or altered features.

Product Availability

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

Returns:
The featuresChanged
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.