com.esri.arcgis.geodatabaseextensions
Class Terrain

java.lang.Object
  extended by com.esri.arcgis.geodatabaseextensions.Terrain
All Implemented Interfaces:
IDataset, IDatasetAnalyze, IDatasetComponent, IDatasetComponent2, IGeoDataset, IMetadata, IMetadataEdit, INativeTypeInfo, ISchemaLock, ITerrain, ITerrain2, ITerrainEdit, ITerrainEdit2, ITerrainEdit3, com.esri.arcgis.interop.RemoteObjRef, Serializable

public class Terrain
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IDataset, IGeoDataset, ITerrain, ITerrain2, ITerrainEdit, ITerrainEdit2, ITerrainEdit3, ISchemaLock, IDatasetAnalyze, IDatasetComponent, IDatasetComponent2, IMetadata, IMetadataEdit, INativeTypeInfo

The Esri Terrain component.

Description

A Terrain is used to define a surface based on vector measurements stored in the geodatabase. Terrains live inside feature datasets and are comprised of one or more feature classes and rules. Rules govern how the measurements associated with each feature class contribute to define the surface.

Product Availability

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

See Also:
Serialized Form

Constructor Summary
Terrain(Object obj)
          Construct a Terrain using a reference to such an object returned from ArcGIS Engine or Server.
 
Method Summary
 void addDataSource(ITerrainDataSource pDataSource)
          Adds a reference to a feature class.
 void addDataSourceData(int index, IEnvelope pAOI, IFeatureClass pInFC, ITrackCancel pTrackCancel)
          Appends measurements to a terrain data source (feature class).
 void addDataSourceData2(int index, String pointCountFieldName, IGeometry pAOI, IFeatureClass pInFC, ITrackCancel pTrackCancel)
          Appends measurements to terrain data source (feature class).
 void addITerrainEditEventsListener(ITerrainEditEvents theListener)
          addITerrainEditEventsListener.
 void addPyramidLevel(ITerrainPyramidLevel pPyramidLevel)
          Adds a pyramid level.
 void analyze(int tableComponents)
          Analyze the data to update/generate DBMS statistics.
 void build(ITrackCancel pTrackCancel)
          Constructs the terrain.
 void calculateFieldStatistics(int index, IStringArray pFieldNames, ITrackCancel pTrackCancel)
          Calculate Terrain blob field statistics of the specified embedded data source.
 boolean canCopy()
          True if this dataset can be copied.
 boolean canDelete()
          True if this dataset can be deleted.
 boolean canRename()
          True if this dataset can be renamed.
 void changeMaxScale(int index, int newScale)
          Modifies the largest display scale used for a particular level of a terrain pyramid.
 void changeResolutionBounds(int index, double lowerBound, double upperBound)
          Change the resolution bounds of a data source.
 void changeSchemaLock(int schemaLock)
          Changes a schema lock.
 void changeUsageInOverview(int index, boolean bApply)
          Change the ApplyToOverviewTerrain property of the specified data source.
 IDataset copy(String copyName, IWorkspace copyWorkspace)
          Copies this dataset to a new dataset with the specified name.
 IDynamicSurface createDynamicSurface()
          Returns an implicit surface from which TINs and rasters are derived.
 void delete()
          Deletes this dataset.
 void deleteDataSourceData(int index, IEnvelope pAOI, ITrackCancel pTrackCancel)
          Removes measurements from a terrain data source (feature class).
 void deleteDataSourceData2(int index, String pointCountFieldName, IGeometry pAOI, ITrackCancel pTrackCancel)
          Removes measurements from a terrain data source (feature class).
 void deleteDataSourceDataByFC(int index, String pointCountFieldName, IFeatureClass pFC, boolean bSparseData, ITrackCancel pTrackCancel)
          Removes measurements from a terrain data source (feature class).
 boolean equals(Object o)
          Compare this object with another
 void extractFromEmbeddedDataSource(int index, IFeatureClass pFeatureClass, IEnvelope pAOI, double resolution, ITrackCancel pTrackCancel)
          Copies features of an embedded data source to the specified feature class.
 int getAllowableComponents()
          The allowable components to be analyzed.
 String getBrowseName()
          The browse name of the dataset.
 String getCategory()
          The category of the dataset.
 void getCurrentSchemaLocks(IEnumSchemaLockInfo[] schemaLockInfo)
          The list of current locks.
 IDEDataset getDataElement()
          The data element corresponding to the dataset component.
 ITerrainDataSource getDataSource(int index)
          Returns the data source specified by the index.
 int getDataSourceCount()
          The number of data sources participating in the terrain.
 IEnumEnvelope getDirtyTiles()
          Returns all dirty tiles.
 String getEmbeddedDataSourceShapeFieldName()
          Returns the 'Shape' field name of the embedded data sources.
 IEnvelope getExtent()
          The extent of the GeoDataset.
 IFeatureDataset getFeatureDataset()
          The feature dataset which contains the terrain.
 IName getFullName()
          The associated name object.
 int getID()
          The database identifier of the terrain.
 int getMaxOverviewTerrainPoints()
          The maximum number of points in the most generalized representation of a Terrain.
 int getMaxPointsPerShape()
          The maximum number of vertices per multipoint.
 IPropertySet getMetadata()
          The PropertySet containing metadata.
 String getName()
          The name of the Dataset.
 INativeType getNativeType()
          The native type.
 IDataset getParent()
          The containing parent dataset.
 double getPointCount(IEnvelope pAOI, double resolution)
          Returns the approximate number of points in the terrain within a given area and at a particular pyramid level.
 IPropertySet getPropertySet()
          The set of properties for the dataset.
 ITerrainPyramidLevel getPyramidLevel(int index)
          Returns the pyramid level specified by the index.
 int getPyramidLevelCount()
          The number of pyramid levels in the terrain.
 int getPyramidType()
          The pyramid type of this Terrain.
 double getSize()
          The total number of points in the Terrain.
 ISpatialReference getSpatialReference()
          The spatial reference of the GeoDataset.
 IEnumDataset getSubsets()
          Datasets contained within this dataset.
 double getTileSize()
          The horizontal distance used to spatially index and partition terrain data.
 int getType()
          The type of the Dataset.
 IWorkspace getWorkspace()
          The workspace containing this dataset.
 int hashCode()
          the hashcode for this object
 boolean isCanEditMetadata()
          Indicates if metadata can be edited.
 boolean isDirty()
          Indicates whether or not a partial rebuild is needed.
 boolean isValid()
          Indicates whether or not a full build is required.
 void queryTileInfo(int[] pRowBegin, int[] pRowEnd, int[] pColBegin, int[] pColEnd, double[] pXMin, double[] pYMin, double[] pTileSize, int[] pRowCountDomain, int[] pColCountDomain)
          Returns horizontal partitioning information about the terrain data.
 void removeDataSource(int index)
          Removes reference to a participating feature class.
 void removeITerrainEditEventsListener(ITerrainEditEvents theListener)
          removeITerrainEditEventsListener.
 void removePyramidLevel(int index)
          Removes a pyramid level.
 void rename(String name)
          Renames this Dataset.
 void replaceDataSourceData(int index, IEnvelope pAOI, IFeatureClass pInFC, ITrackCancel pTrackCancel)
          Replaces measurements from a terrain data source (feature class) with measurements in another feature class.
 void replaceDataSourceData2(int index, String pointCountFieldName, IGeometry pAOI, IFeatureClass pInFC, ITrackCancel pTrackCancel)
          Replaces measurements from a terrain data source (feature class) with measurements in another feature class.
 void searchFromEmbeddedDataSource(int index, IEnvelope pAOI, double resolution, IStringArray pSubFields, IFeatureCursor[] ppCursor, ILongArray[] ppFieldIndices)
          Returns a Search Cursor on the specified embedded data source.
 void setBrowseName(String name)
          The browse name of the dataset.
 void setMetadata(IPropertySet ppPropertySet)
          The PropertySet containing metadata.
 void synchronize(int action, int interval)
          Updates metadata with the current properties; may create metadata if it doesn't already exist.
 void updateExtent(ITrackCancel pTrackCancel)
          Refresh terrain's extent.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef
getJintegraDispatch, release
 

Constructor Detail

Terrain

public Terrain(Object obj)
        throws IOException
Construct a Terrain using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to Terrain.
Casting to this class from the return value of a method will not work, as this class represents an abstract class in ArcObjects.
*
Terrain o = (Terrain)obj; // will not work

Terrain o = new Terrain(obj); // Use this constructor instead
* @param obj an object returned from ArcGIS Engine or Server

Throws:
IOException - if there are interop problems Terrain theTerrain = (Terrain) obj;
Method Detail

equals

public boolean equals(Object o)
Compare this object with another

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

addITerrainEditEventsListener

public void addITerrainEditEventsListener(ITerrainEditEvents theListener)
                                   throws IOException
addITerrainEditEventsListener. Listen to events generated by this class.

Parameters:
theListener - An object that implements the com.esri.arcgis.geodatabaseextensions.ITerrainEditEvents interface.
Throws:
IOException - If there are communications problems.

removeITerrainEditEventsListener

public void removeITerrainEditEventsListener(ITerrainEditEvents theListener)
                                      throws IOException
removeITerrainEditEventsListener. Stop listening to events generated by this class.

Parameters:
theListener - An object that implements the com.esri.arcgis.geodatabaseextensions.ITerrainEditEvents interface.
Throws:
IOException - If there are communications problems.

getName

public String getName()
               throws IOException,
                      AutomationException
The name of the Dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getName in interface IDataset
Specified by:
getName in interface ITerrain
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFullName

public IName getFullName()
                  throws IOException,
                         AutomationException
The associated name object.

Remarks

The FullName property returns a Name object for the dataset. The Name object can be persisted and provides a way to get back to the dataset in a future session of the application, via the Open method on the Name object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getFullName in interface IDataset
Returns:
A reference to a com.esri.arcgis.system.IName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getBrowseName

public String getBrowseName()
                     throws IOException,
                            AutomationException
The browse name of the dataset.

Remarks

BrowseName returns file names without their extension. For example, States.shp would appear as States.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getBrowseName in interface IDataset
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setBrowseName

public void setBrowseName(String name)
                   throws IOException,
                          AutomationException
The browse name of the dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setBrowseName in interface IDataset
Parameters:
name - The name (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getType

public int getType()
            throws IOException,
                   AutomationException
The type of the Dataset.

Remarks

The Type property returns the an esriDatasetType value indicating the dataset type, such as esriDTTable or esriDTFeatureClass.

Example:


// Assume we have a reference to an IfeatureClass (pFeatureClass) IDataset pDataset = null;
pDataset = new IDatasetProxy(pFeatureClass);
System.out.println(pDataset.getName() + " " + pDataset.getType());
if(pFeatureClass != null){
pDataset = pFeatureClass.getFeatureDataset();
System.out.println(pDataset.getName() + " " + pDataset.getType());
}
pDataset = new IDatasetProxy(pDataset.getWorkspace());
System.out.println(pDataset.getName() + " " +
pDataset.getType());

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getType in interface IDataset
Returns:
A com.esri.arcgis.geodatabase.esriDatasetType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCategory

public String getCategory()
                   throws IOException,
                          AutomationException
The category of the dataset.

Remarks

IDataset::Category returns a description of the category of the dataset. The description returned from the Category property is the same value that is displayed in the Type column within the Contents tab in ArcCatalog. The value will contain a description of the dataset such as "Topology" prefixed with a description of the type of workspace containing the dataset such as "File Geodatabase".

The description returned from IDataset::Category may change between releases of ArcGIS. In addition to this, returned strings are localized, meaning that code relying on a specific string being provided may fail when deployed with a different version of ArcGIS than it was developed with, or when deployed to a client using a different language than it was developed with.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCategory in interface IDataset
Returns:
The category
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSubsets

public IEnumDataset getSubsets()
                        throws IOException,
                               AutomationException
Datasets contained within this dataset.

Description

The Subsets property returns other Dataset objects contained in this dataset.

Remarks

IDataset::Subsets is not supported for Graph objects such as a Geometric Network. To return the feature classes contained in a Geometric Network, use the IFeatureClassContainer interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSubsets in interface IDataset
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getWorkspace

public IWorkspace getWorkspace()
                        throws IOException,
                               AutomationException
The workspace containing this dataset.

Description

The Workspace property returns the containing workspace for this dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getWorkspace in interface IDataset
Returns:
A reference to a com.esri.arcgis.geodatabase.IWorkspace
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPropertySet

public IPropertySet getPropertySet()
                            throws IOException,
                                   AutomationException
The set of properties for the dataset.

Description

The PropertySet property is used to return any additional intrinsic properties (but not metadata properties) that may apply to the dataset. One use of this property is to distinguish between the types of File Geodatabase datafile formats. If called on a Feature Class or Table in a File Geodatabase the Datafile Format property can either be esriFGDBStandardDatafile or esriFGDBCompressedDatafile.

Most datasets do not implement this property and will either raise an error or return a null value if it's called. There are a handful of exceptions that will return property sets; these include the datasets from file geodatabases (as mentioned above) and coverages.

Remarks

Examples of intrinsic properties for which explicit methods exist include the SpatialReference and the Extent methods available on the IGeoDataset interface. In most cases this PropertySet will be empty.

IDataset::PropertySet is not supported for Graph objects such as a Geometric Network.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getPropertySet in interface IDataset
Returns:
A reference to a com.esri.arcgis.system.IPropertySet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canCopy

public boolean canCopy()
                throws IOException,
                       AutomationException
True if this dataset can be copied.

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

The CanCopy method is supported by:

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canCopy in interface IDataset
Returns:
The canCopy
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

copy

public IDataset copy(String copyName,
                     IWorkspace copyWorkspace)
              throws IOException,
                     AutomationException
Copies this dataset to a new dataset with the specified name.

Remarks

IDataset::Copy should only be used with datasets from file-based data sources, such as shapefiles and coverages.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
copy in interface IDataset
Parameters:
copyName - The copyName (in)
copyWorkspace - A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canDelete

public boolean canDelete()
                  throws IOException,
                         AutomationException
True if this dataset can be deleted.

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canDelete in interface IDataset
Returns:
The canDelete
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

delete

public void delete()
            throws IOException,
                   AutomationException
Deletes this dataset.

Remarks

Certain feature classes, such as network and topology feature classes, cannot be deleted until their containing objects are deleted.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
delete in interface IDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canRename

public boolean canRename()
                  throws IOException,
                         AutomationException
True if this dataset can be renamed.

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete or rename a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canRename in interface IDataset
Returns:
The canRename
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

rename

public void rename(String name)
            throws IOException,
                   AutomationException
Renames this Dataset.

Remarks

IDataset::Rename does not support the renaming of Graph objects such as a Geometric Network. In addition, certain feature classes, such as network feature classes, cannot be renamed.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
rename in interface IDataset
Parameters:
name - The name (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSpatialReference

public ISpatialReference getSpatialReference()
                                      throws IOException,
                                             AutomationException
The spatial reference of the GeoDataset.

Remarks

This property is read only. For layers, when the first layer is added to ArcMap, its spatial reference is read by this property, and the map is set to this spatial reference.

Instances of the esriCarto.GroupLayer class will return null for this property, as a group layer can contain multiple datasets with different spatial references.

Modifications to a spatial reference returned by this property will not be persisted. To modify the spatial reference of a dataset, the IGeoDatasetSchemaEdit and IGeoDatasetSchemaEdit2 interfaces should be used.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSpatialReference in interface IGeoDataset
Specified by:
getSpatialReference in interface ITerrain
Returns:
A reference to a com.esri.arcgis.geometry.ISpatialReference
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getExtent

public IEnvelope getExtent()
                    throws IOException,
                           AutomationException
The extent of the GeoDataset.

Remarks

The IGeoDataset::Extent property returns an envelope representing the maximum extent of data which has been stored in the dataset.

Consider the following scenario. A new feature class has features added to it. The IGeoDataset::Extent is then requested and an envelope is returned. The extents of the envelope returned are represented by the red box in the image below.

The red box represents the IGeoDataset extent

If a portion of the features were then deleted and the extent is again requested an envelope with the exact same extents as during the first request would be returned (see image below). This is because the deletion of features does not shrink the extent. However all additions of features outside the red box would increase the envelope returned to encompass the newly added features.

The red box represents the IGeoDataset extent after some of the features have been deleted

If you would like to update the IGeoDataset::Extent property to reflect the current features in your dataset please see IFeatureClassManage::UpdateExtent (also see IFeatureClassLoad). In the image below the extent has been updated and a new envelope is being returned.

The red box represents the IGeoDataset extent after it has been updated

ESRI's GroupLayer implements this property differently from most other layer coclasses. When you instantiate a new GroupLayer, this property will return a valid envelope with zero height and width. With most other newly instantiated layers (for example FeatureLayer, RasterLayer, TinLayer), this property initally returns Nothing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getExtent in interface IGeoDataset
Specified by:
getExtent in interface ITerrain
Returns:
A reference to a com.esri.arcgis.geometry.IEnvelope
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getID

public int getID()
          throws IOException,
                 AutomationException
The database identifier of the terrain.

Description

ID is the internal database identifier for the terrain.

Product Availability

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

Specified by:
getID in interface IDatasetComponent2
Specified by:
getID in interface ITerrain
Returns:
The pID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSize

public double getSize()
               throws IOException,
                      AutomationException
The total number of points in the Terrain.

Description

Size is the total number of 3D mass point and breakline vertices in the terrain. The count does not consider the effect of clip or erase features and it does not include vertices of z-less features.

Product Availability

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

Specified by:
getSize in interface ITerrain
Returns:
The pcPoints
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isValid

public boolean isValid()
                throws IOException,
                       AutomationException
Indicates whether or not a full build is required.

Description

Indicates whether the terrain schema has been modified since the last Build. When IsValid is FALSE the terrain must be built in order to be used.

Schema edits on terrains include the addition or removal of feature classes and pyramid levels.

Product Availability

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

Specified by:
isValid in interface ITerrain
Returns:
The pbIsValid
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public boolean isDirty()
                throws IOException,
                       AutomationException
Indicates whether or not a partial rebuild is needed.

Description

Indicates whether edits have taken place on feature classes that participate in the terrain. When IsDirty is TRUE a Build is needed to reconstruct the pyramid layers for the terrain tiles in which the edits have occurred.

Product Availability

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

Specified by:
isDirty in interface ITerrain
Returns:
The pbIsDirty
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFeatureDataset

public IFeatureDataset getFeatureDataset()
                                  throws IOException,
                                         AutomationException
The feature dataset which contains the terrain.

Product Availability

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

Specified by:
getFeatureDataset in interface ITerrain
Returns:
A reference to a com.esri.arcgis.geodatabase.IFeatureDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDataSourceCount

public int getDataSourceCount()
                       throws IOException,
                              AutomationException
The number of data sources participating in the terrain.

Description

The DataSourceCount represents the number of feature classes that participate in the terrain. This includes regular and embedded feature classes.

Product Availability

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

Specified by:
getDataSourceCount in interface ITerrain
Returns:
The pcDataSources
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDataSource

public ITerrainDataSource getDataSource(int index)
                                 throws IOException,
                                        AutomationException
Returns the data source specified by the index.

Product Availability

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

Specified by:
getDataSource in interface ITerrain
Parameters:
index - The index (in)
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.ITerrainDataSource
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPyramidLevelCount

public int getPyramidLevelCount()
                         throws IOException,
                                AutomationException
The number of pyramid levels in the terrain.

Description

The PyramidLevelCount is the number of pyramid levels defined for the terrain excluding the implicit full resolution level and also the coarsest level, the terrain overview.

Product Availability

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

Specified by:
getPyramidLevelCount in interface ITerrain
Returns:
The pcPyramidLevels
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPyramidLevel

public ITerrainPyramidLevel getPyramidLevel(int index)
                                     throws IOException,
                                            AutomationException
Returns the pyramid level specified by the index.

Product Availability

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

Specified by:
getPyramidLevel in interface ITerrain
Parameters:
index - The index (in)
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.ITerrainPyramidLevel
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTileSize

public double getTileSize()
                   throws IOException,
                          AutomationException
The horizontal distance used to spatially index and partition terrain data.

Description

The TileSize is the horizontal distance of the side of a terrain tile. Tiles are square. Terrain uses a tile system to divide measurement data into manageable chunks for iterative processing. The size should be set relative to the average point spacing of the data used to build the terrain such that each tile holds between one and two hundred thousand mass points and breakline vertices.

See also ITerrain.QueryTileInfo.

Product Availability

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

Specified by:
getTileSize in interface ITerrain
Returns:
The pSize
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPyramidType

public int getPyramidType()
                   throws IOException,
                          AutomationException
The pyramid type of this Terrain.

Description

At this time the only type of terrain pyramid is one based on z-tolerance. On a tile by tile basis, subsets of measurements are selected to contribute to pyramid levels. The surface for each level can only deviate from the next higher higher level of detail by an amount up to the z-tolerance.

Product Availability

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

Specified by:
getPyramidType in interface ITerrain
Returns:
A com.esri.arcgis.geodatabaseextensions.esriTerrainPyramidType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMaxOverviewTerrainPoints

public int getMaxOverviewTerrainPoints()
                                throws IOException,
                                       AutomationException
The maximum number of points in the most generalized representation of a Terrain.

Description

The overview is the coarsest representation of a terrain. It's like a vector based thumbnail. The primary intention of the overview is to enable a terrain to draw quickly when zoomed to its full extent, when detail and accuracy are not needed. The default for MaxOverviewTerrainPoints is 50,000.

Product Availability

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

Specified by:
getMaxOverviewTerrainPoints in interface ITerrain
Returns:
The pcPoints
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMaxPointsPerShape

public int getMaxPointsPerShape()
                         throws IOException,
                                AutomationException
The maximum number of vertices per multipoint.

Description

Terrain pyramids are comprised of mass points and breakline vertices. These are stored as a collection of multipoints. MaxPointsPerShape controls how large an individual multipoint can get. The default is 5000.

Product Availability

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

Specified by:
getMaxPointsPerShape in interface ITerrain
Returns:
The pcPoints
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryTileInfo

public void queryTileInfo(int[] pRowBegin,
                          int[] pRowEnd,
                          int[] pColBegin,
                          int[] pColEnd,
                          double[] pXMin,
                          double[] pYMin,
                          double[] pTileSize,
                          int[] pRowCountDomain,
                          int[] pColCountDomain)
                   throws IOException,
                          AutomationException
Returns horizontal partitioning information about the terrain data.

Description

The feature dataset containing the terrain is logically tiled, in its entirety, to form the tile scheme with its origin in the southwest corner. Tiles are square. Row and column numbering starts at base 1. The data area of the terrain may not fill the extent of the feature dataset so it's possible that only a subset of rows and columns are involved. This method provides the info about those tiles overlapping the terrain extent.

The returned row and column numbers represent the rectangular subset of tiles that intersect the terrain extent. Row and column numbering start at base 1 with the first row and column being in the southwest corner of the feature dataset.

The xmin and ymin are the real world coordinates for the lower left corner of the origin tile of the terrain.

The tilesize is the horizontal length of one of the square tiles and is equal to that specified when the terrain was created.

Product Availability

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

Specified by:
queryTileInfo in interface ITerrain
Parameters:
pRowBegin - The pRowBegin (out: use single element array)
pRowEnd - The pRowEnd (out: use single element array)
pColBegin - The pColBegin (out: use single element array)
pColEnd - The pColEnd (out: use single element array)
pXMin - The pXMin (out: use single element array)
pYMin - The pYMin (out: use single element array)
pTileSize - The pTileSize (out: use single element array)
pRowCountDomain - The pRowCountDomain (out: use single element array)
pColCountDomain - The pColCountDomain (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDirtyTiles

public IEnumEnvelope getDirtyTiles()
                            throws IOException,
                                   AutomationException
Returns all dirty tiles.

Description

Each envelope returned by the enumerator represents the map based extent of a dirty tile.

Product Availability

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

Specified by:
getDirtyTiles in interface ITerrain
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.IEnumEnvelope
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPointCount

public double getPointCount(IEnvelope pAOI,
                            double resolution)
                     throws IOException,
                            AutomationException
Returns the approximate number of points in the terrain within a given area and at a particular pyramid level.

Description

GetPointCount returns the number of points and breakline vertices, at a particular pyramid level, for those terrain tiles intersected by a given envelope. This yields a relatively quick estimate, albeit over-estimated, of the size of the terrain for that area and vertical tolerance. Only 3-D measurements are counted. Z-less line and polygon vertices are excluded.

GetPointCount will return an error when called on a terrain that is in need of being built. That is, when ITerrain.IsValid returns FALSE. Ensure the terrain IsValid before calling this member.

Product Availability

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

Specified by:
getPointCount in interface ITerrain
Parameters:
pAOI - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
resolution - The resolution (in)
Returns:
The pcPoints
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createDynamicSurface

public IDynamicSurface createDynamicSurface()
                                     throws IOException,
                                            AutomationException
Returns an implicit surface from which TINs and rasters are derived.

Description

CreateDynamicSurface will return an error when called on a terrain that is in need of being built. That is, when ITerrain.IsValid returns FALSE. Ensure the terrain IsValid before calling this member.

Product Availability

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

Specified by:
createDynamicSurface in interface ITerrain
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.IDynamicSurface
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

extractFromEmbeddedDataSource

public void extractFromEmbeddedDataSource(int index,
                                          IFeatureClass pFeatureClass,
                                          IEnvelope pAOI,
                                          double resolution,
                                          ITrackCancel pTrackCancel)
                                   throws IOException,
                                          AutomationException
Copies features of an embedded data source to the specified feature class.

Description

Copies points from an embedded source into the target feature class.

index references the data source to use. This should be in the range of 0 to n-1 where n represents the number of data sources in the terrain, but it must also be a source which is embedded.

pFeatureClass is the target feature class, where the points will be written.

pAOI is the area of interest envelope. Points within the AOI will be extracted. This can be set to a NULL pointer ('Nothing' in VB) if the entire extent of the terrain is desired.

resolution indicates which pyramid level should be used for extraction. A value of 0.0 will extract the full resolution data. Any other value should correspond to one of the values used to define the terrain's pyramid. If you don't provide an exact match the software will round down to the next closest level.

pTrackCancel is a reference to a Cancel Tracker object that can be used to monitor progress and/or cancel the process. This can be set to a NULL pointer ('Nothing' in VB) if desired.

Notes

Product Availability

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

Specified by:
extractFromEmbeddedDataSource in interface ITerrain
Parameters:
index - The index (in)
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pAOI - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
resolution - The resolution (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEmbeddedDataSourceShapeFieldName

public String getEmbeddedDataSourceShapeFieldName()
                                           throws IOException,
                                                  AutomationException
Returns the 'Shape' field name of the embedded data sources.

Description

Returns the name of the shape field for any and all embedded feature classes in the terrain. They all use the same name.

Product Availability

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

Specified by:
getEmbeddedDataSourceShapeFieldName in interface ITerrain2
Returns:
The pName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

searchFromEmbeddedDataSource

public void searchFromEmbeddedDataSource(int index,
                                         IEnvelope pAOI,
                                         double resolution,
                                         IStringArray pSubFields,
                                         IFeatureCursor[] ppCursor,
                                         ILongArray[] ppFieldIndices)
                                  throws IOException,
                                         AutomationException
Returns a Search Cursor on the specified embedded data source.

Description

Index is used to indicate which feature class to search and retrieve records from. The index must reference and embedded multipoint feature class.

pAOI is an envelope representing the area of interest. This can be NULL, in which case the full extent of the terrain is used.

resolution is the z-tolerance or windowsize of the pyramid level to query records from. Ideally, the value provided should exactly match an existing pyramid level. If not, the next highest resolution level to the value specified will be used.

pSubFields is an array of field names for desired attributes. Use ITerrain2.GetEmbeddedDataSourceShapeFieldName for the shape field if you're interested in retrieving the geometry.

ppCursor is the output feature cursor.

ppFieldIndices is a LongArray containing the cursor field index values for the requested attributes, listed in the same order as provided in pSubFields.

Product Availability

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

Specified by:
searchFromEmbeddedDataSource in interface ITerrain2
Parameters:
index - The index (in)
pAOI - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
resolution - The resolution (in)
pSubFields - A reference to a com.esri.arcgis.system.IStringArray (in)
ppCursor - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (out: use single element array)
ppFieldIndices - A reference to a com.esri.arcgis.system.ILongArray (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addDataSource

public void addDataSource(ITerrainDataSource pDataSource)
                   throws IOException,
                          AutomationException
Adds a reference to a feature class.

Description

Adding a TerrainDataSource will invalidate the terrain and require a build. See ITerrainEdit.Build.

Product Availability

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

Specified by:
addDataSource in interface ITerrainEdit
Parameters:
pDataSource - A reference to a com.esri.arcgis.geodatabaseextensions.ITerrainDataSource (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

removeDataSource

public void removeDataSource(int index)
                      throws IOException,
                             AutomationException
Removes reference to a participating feature class.

Description

Removing a data source will invalidate the terrain and require a build. See ITerrainEdit.Build.

Product Availability

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

Specified by:
removeDataSource in interface ITerrainEdit
Parameters:
index - The index (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addPyramidLevel

public void addPyramidLevel(ITerrainPyramidLevel pPyramidLevel)
                     throws IOException,
                            AutomationException
Adds a pyramid level.

Description

A terrain has a pyramid. The pyramid is comprised of one or more pyramid levels. The definition for each level is added by this function. You must have at least one pyramid level defined for a terrain before it can be built. Instantiate a pyramid level definition using the TerrainPyramidLevelZTolerance coclass.

Product Availability

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

Specified by:
addPyramidLevel in interface ITerrainEdit
Parameters:
pPyramidLevel - A reference to a com.esri.arcgis.geodatabaseextensions.ITerrainPyramidLevel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

removePyramidLevel

public void removePyramidLevel(int index)
                        throws IOException,
                               AutomationException
Removes a pyramid level.

Product Availability

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

Specified by:
removePyramidLevel in interface ITerrainEdit
Parameters:
index - The index (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

changeMaxScale

public void changeMaxScale(int index,
                           int newScale)
                    throws IOException,
                           AutomationException
Modifies the largest display scale used for a particular level of a terrain pyramid.

Description

A reference scale is associated with each terrain pyramid level. This is the maximum display scale at which a pyramid level is used when displaying a terrain in a map. At a larger display scale (i.e. more zoomed in) a more accurate pyramid is used.

The input index represents the pyramid level desired, from finer to coarser resolution, excluding the full resolution level. So, index 0 refers to the pyramid level with the smallest ZTolerance that is greater than 0.0. The valid index range is 0 to ITerrain.ZToleranceCount-1.

The value passed for newScale is the denominator of the scale. For example, to define a pyramid used for displays at scales up to 1:24000 pass a value of 24000.

Modifying the maximum scale for a pyramid does not necessitate a rebuild of the terrain.

Product Availability

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

Specified by:
changeMaxScale in interface ITerrainEdit
Parameters:
index - The index (in)
newScale - The newScale (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

changeResolutionBounds

public void changeResolutionBounds(int index,
                                   double lowerBound,
                                   double upperBound)
                            throws IOException,
                                   AutomationException
Change the resolution bounds of a data source.

Product Availability

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

Specified by:
changeResolutionBounds in interface ITerrainEdit
Parameters:
index - The index (in)
lowerBound - The lowerBound (in)
upperBound - The upperBound (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteDataSourceData

public void deleteDataSourceData(int index,
                                 IEnvelope pAOI,
                                 ITrackCancel pTrackCancel)
                          throws IOException,
                                 AutomationException
Removes measurements from a terrain data source (feature class).

Description

The input index is the terrain data source index of the embedded feature class. Valid values range from 0 to ITerrain.DataSourceCount-1.

The pAOI argument is the area of interest envelope that's used to indicate where to remove measurements.

pTrackCancel is a pointer to a CancelTracker object.

Notes

Product Availability

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

Specified by:
deleteDataSourceData in interface ITerrainEdit
Parameters:
index - The index (in)
pAOI - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addDataSourceData

public void addDataSourceData(int index,
                              IEnvelope pAOI,
                              IFeatureClass pInFC,
                              ITrackCancel pTrackCancel)
                       throws IOException,
                              AutomationException
Appends measurements to a terrain data source (feature class).

Description

The input index is the terrain data source index of the target embedded feature class. Valid values range from 0 to ITerrain.DataSourceCount-1.

The pAOI argument is the area of interest envelope that's used as a filter when pulling measurements from the input feature class. It can be set to a NULL pointer (i.e. 'Nothing' in VB) in which case the extent of the input feature class is used.

pInFC is a pointer to the input feature class from which measurements will be added. The feature class shape type must be point or multipoint.

pTrackCancel is a pointer to a CancelTracker object.

Notes

Product Availability

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

Specified by:
addDataSourceData in interface ITerrainEdit
Parameters:
index - The index (in)
pAOI - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
pInFC - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

replaceDataSourceData

public void replaceDataSourceData(int index,
                                  IEnvelope pAOI,
                                  IFeatureClass pInFC,
                                  ITrackCancel pTrackCancel)
                           throws IOException,
                                  AutomationException
Replaces measurements from a terrain data source (feature class) with measurements in another feature class.

Description

The input index is the terrain data source index of the embedded feature class. Valid values range from 0 to ITerrain.DataSourceCount-1.

The pAOI argument is the area of interest envelope that's used to indicate where measurements are to be replaced.

pInFC is a pointer to the input feature class from which measurements will be taken. The feature class shape type must be point or multipoint.

pTrackCancel is a pointer to a CancelTracker object.

Notes

Product Availability

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

Specified by:
replaceDataSourceData in interface ITerrainEdit
Parameters:
index - The index (in)
pAOI - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
pInFC - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

build

public void build(ITrackCancel pTrackCancel)
           throws IOException,
                  AutomationException
Constructs the terrain.

Description

Build (re)constructs the terrain as necessary. Depending on what types of edits have taken place different levels of build may be required. Some forms require a full rebuild and others just partial.

Add/Remove ZTolerance - full
Add/Remove TerrainDataSource - partial for area covered by data source measurements
ChangeMaxZScale - none
Edit of data source feature class geometry - partial for area covered by feature edits

Product Availability

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

Specified by:
build in interface ITerrainEdit
Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

updateExtent

public void updateExtent(ITrackCancel pTrackCancel)
                  throws IOException,
                         AutomationException
Refresh terrain's extent.

Description

UpdateExtent is used to recalculate the data extent for a windowsize based terrain dataset when the data area has been reduced through editing. It's not needed if the terrain is z-tolerance based. Nor is it needed if the data extent has increased. It's only needed for windowsize terrains with reduced data extents. It needs to be called after the terrain is built (i.e., ITerrainEdit.Build, ITerrain.IsDirty = FALSE.).

UpdateExtent scans through all the terrain data to determine the new extent. It can therefore be expensive in terms of I/O if the terrain is large.

Product Availability

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

Specified by:
updateExtent in interface ITerrainEdit2
Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

changeUsageInOverview

public void changeUsageInOverview(int index,
                                  boolean bApply)
                           throws IOException,
                                  AutomationException
Change the ApplyToOverviewTerrain property of the specified data source.

Description

Used to add or remove a feature class from participation in the terrain's overview.

index indicates which feature class to modify. The index must refer to a polyline or polygon based feature class as these are the types of features which have an option of being in the overview. Points and multipoints always participate in the overview.

Set bApply to TRUE to have the feature class participate in the overview and FALSE if not.

Product Availability

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

Specified by:
changeUsageInOverview in interface ITerrainEdit3
Parameters:
index - The index (in)
bApply - The bApply (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteDataSourceDataByFC

public void deleteDataSourceDataByFC(int index,
                                     String pointCountFieldName,
                                     IFeatureClass pFC,
                                     boolean bSparseData,
                                     ITrackCancel pTrackCancel)
                              throws IOException,
                                     AutomationException
Removes measurements from a terrain data source (feature class).

Product Availability

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

Specified by:
deleteDataSourceDataByFC in interface ITerrainEdit3
Parameters:
index - The index (in)
pointCountFieldName - The pointCountFieldName (in)
pFC - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
bSparseData - The bSparseData (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

deleteDataSourceData2

public void deleteDataSourceData2(int index,
                                  String pointCountFieldName,
                                  IGeometry pAOI,
                                  ITrackCancel pTrackCancel)
                           throws IOException,
                                  AutomationException
Removes measurements from a terrain data source (feature class).

Description

Used to delete points from a terrain dataset.

index is used to indicate which data source to delete points from. The data source must be a multipoint or point based feature class. It can be embedded or referenced.

pAOI is an envelope or polygon used to define an area of interest. Points inside pAOI will be deleted.

pTrackCancel is a reference to a CancelTracker to support progress reporting and the ability to halt the process. To bypass this feature pass a NULL pointer.

Notes:


The terrain will need to be rebuilt after calling this method.

A call should be made to ITerrainEdit2.UpdateExtent if extent in XY or Z has shrunk.

Product Availability

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

Specified by:
deleteDataSourceData2 in interface ITerrainEdit3
Parameters:
index - The index (in)
pointCountFieldName - The pointCountFieldName (in)
pAOI - A reference to a com.esri.arcgis.geometry.IGeometry (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addDataSourceData2

public void addDataSourceData2(int index,
                               String pointCountFieldName,
                               IGeometry pAOI,
                               IFeatureClass pInFC,
                               ITrackCancel pTrackCancel)
                        throws IOException,
                               AutomationException
Appends measurements to terrain data source (feature class).

Description

Used to append points to a feature class that participates in the terrain.

index indicates which data source will be appended to. The data source must be a multipoint or point based feature class. It can be embedded or referenced.

pAOI is an envelope or polygon used to control the which points from pInFC get appended. pAOI can be NULL in which case all data from pInFC will be appended.

pInFC is the source of data that will be appended. It must be a multipoint or point based feature class.

pTrackCancel is a reference to a CancelTracker to support progress reporting and the ability to halt the process. To bypass this feature pass a NULL pointer.

Notes:


Attributes from the input are conditionally appended to the target feature class. If there's a match in field names between the input and output the values will be brought over.

The terrain will need to be rebuilt after calling this method.

Product Availability

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

Specified by:
addDataSourceData2 in interface ITerrainEdit3
Parameters:
index - The index (in)
pointCountFieldName - The pointCountFieldName (in)
pAOI - A reference to a com.esri.arcgis.geometry.IGeometry (in)
pInFC - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

replaceDataSourceData2

public void replaceDataSourceData2(int index,
                                   String pointCountFieldName,
                                   IGeometry pAOI,
                                   IFeatureClass pInFC,
                                   ITrackCancel pTrackCancel)
                            throws IOException,
                                   AutomationException
Replaces measurements from a terrain data source (feature class) with measurements in another feature class.

Description

Used to replace points from one feature class that participates in the terrain with points from another feature class.

index is used to indicate which data source will be modifed. The data source must be a multipoint or point based feature class. It can be embedded or referenced.

pAOI is an envelope or polygon used to define the area of interest. First, points inside pAOI will be removed from the terrain data source. Then, those points or multipoint vertices from pInFC that are inside pAOI get appended. pAOI can be NULL in which case all the points from the terrain data source will be deleted before appending all the points from pInFC.

pInFC is the source of data that will be appended. It must be a multipoint or point based feature class.

pTrackCancel is a reference to a CancelTracker to support progress reporting and the ability to halt the process. To bypass this feature pass a NULL pointer.

Notes:

Attributes from the input are conditionally appended to the target feature class. If there's a match in field names between the input and output the values will be brought over.

The terrain will need to be rebuilt after calling this method.

May require call to ITerrainEdit2.UpdateExtent if extent in XY or Z has shrunk.

Product Availability

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

Specified by:
replaceDataSourceData2 in interface ITerrainEdit3
Parameters:
index - The index (in)
pointCountFieldName - The pointCountFieldName (in)
pAOI - A reference to a com.esri.arcgis.geometry.IGeometry (in)
pInFC - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

calculateFieldStatistics

public void calculateFieldStatistics(int index,
                                     IStringArray pFieldNames,
                                     ITrackCancel pTrackCancel)
                              throws IOException,
                                     AutomationException
Calculate Terrain blob field statistics of the specified embedded data source.

Description

Calculates basic statistical information for attributes stored in embedded feature classes. The statistics are saved with the terrain and can be retrieved with ITerrainEmbeddedDataSource2.GetFieldStatistics or ITerrainEmbeddedDataSource2.GetReservedFieldStatistics.

index indicates which feature class to calculate statistics for. The index must refer to an embedded feature class.

pFieldNames indicates the fields for which statistics will be calculated. If you pass a NULL for the StrArray statistics will be calculated for all fields.

pTrackCancel is a reference to a CancelTracker to support progress reporting and the ability to halt the process. To bypass this feature pass a NULL pointer.

Notes:

This method should also be used to re-calculate existing attribute statistics when needed (e.g., due to edits). Find out if the statistics for a field are outdated with ITerrainFieldStatistics.NeedsUpdate.

Product Availability

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

Specified by:
calculateFieldStatistics in interface ITerrainEdit3
Parameters:
index - The index (in)
pFieldNames - A reference to a com.esri.arcgis.system.IStringArray (in)
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

changeSchemaLock

public void changeSchemaLock(int schemaLock)
                      throws IOException,
                             AutomationException
Changes a schema lock.

Remarks

There are two kinds of schema locks: shared and exclusive. Shared schema locks are applied automatically by the geodatabase when accessing a dataset and are removed when all references to the dataset are removed. For this reason, it's not necessary to explicitly apply or remove shared schema locks. There is no limit to the number of shared schema locks a dataset or object can have at any given time.
In contrast to shared schema locks, exclusive schema locks are controlled by the developer or ArcGIS application, such as ArcMap or ArcCatalog. An exclusive lock is used to lock a geodatabase dataset or object from use by others to make the necessary changes to it. An exclusive lock is promoted from a shared lock and demoted back to a shared lock when no longer needed. The presence of additional shared schema locks on a dataset or object prevents an exclusive schema lock from being applied and precludes the ability to make changes to the underlying dataset and its schema while it is in use. Only one exclusive schema lock is allowed per dataset. As opposed to shared schema locks, exclusive schema locks are not applied or removed automatically; it is the responsibility of the developer to apply or remove exclusive schema locks.
Limit the scope of exclusive schema locks to the operation that requires the lock. Gather the necessary information to perform the action, obtain the exclusive lock, make the change, and release the lock. Some examples of operations for which an exclusive schema lock should be obtained include:
  • Modifications to attribute domains, such as adding or removing values from a coded value domain or changing the range for range domains
  • Adding or deleting a field from a feature class or object class
  • Associating a class extension with a feature class
  • Creating a topology, geometric network, network dataset, terrain, schematic dataset, representation, or cadastral fabric on a set of feature classes
  • Any use of the IClassSchemaEdit interface
  • Putting a feature class into and taking it out of load-only mode with the IFeatureClassLoad.LoadOnlyMode method
  • Managing (creating, deleting, or modifying) spatial and attribute indexes
Once the action requiring an exclusive schema lock is complete, the exclusive schema lock must be demoted to a shared lock. This includes when errors are raised during the schema modification, for example, consider the case where a field is being deleted from a feature class. To delete the field, an exclusive schema lock is obtained. However, on the call to DeleteField, an error is thrown; that is, the field being deleted is a required field, such as the ObjectID field. In the handling of the error, the exclusive schema lock must be demoted to a shared lock before proceeding.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
changeSchemaLock in interface ISchemaLock
Parameters:
schemaLock - A com.esri.arcgis.geodatabase.esriSchemaLock constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCurrentSchemaLocks

public void getCurrentSchemaLocks(IEnumSchemaLockInfo[] schemaLockInfo)
                           throws IOException,
                                  AutomationException
The list of current locks.

Remarks

The ISchemaLockInfo interface is used in concert with ISchemaLock to provide information about a schema lock, for example, whether it is shared or exclusive and for ArcSDE geodatabases, the name of the user who has the lock. Note that there will always be at least one schema lock on the dataset. Also note that by checking the schema locks on a dataset a shared schema lock is applied to the data.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCurrentSchemaLocks in interface ISchemaLock
Parameters:
schemaLockInfo - A reference to a com.esri.arcgis.geodatabase.IEnumSchemaLockInfo (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

analyze

public void analyze(int tableComponents)
             throws IOException,
                    AutomationException
Analyze the data to update/generate DBMS statistics.

Remarks

When applied to a feature dataset, Analyze updates the statistics for all of the tables.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
analyze in interface IDatasetAnalyze
Parameters:
tableComponents - The tableComponents (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAllowableComponents

public int getAllowableComponents()
                           throws IOException,
                                  AutomationException
The allowable components to be analyzed.

Remarks

The AllowableComponents property indicates which parts of the table or feature class can be analyzed. The returned value is based on the esriTableComponents enumeration. Members from this enumeration can be bitwise or’d together.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getAllowableComponents in interface IDatasetAnalyze
Returns:
The allowableComponents
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDataElement

public IDEDataset getDataElement()
                          throws IOException,
                                 AutomationException
The data element corresponding to the dataset component.

Remarks

The DataElement method is used to access the data element for this dataset component.

Product Availability

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

Specified by:
getDataElement in interface IDatasetComponent
Returns:
A reference to a com.esri.arcgis.geodatabase.IDEDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getParent

public IDataset getParent()
                   throws IOException,
                          AutomationException
The containing parent dataset.

Remarks

Returns the parent of the dataset component. For example, for geodatabase network datasets this will return the containing feature dataset.

Product Availability

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

Specified by:
getParent in interface IDatasetComponent
Returns:
A reference to a com.esri.arcgis.geodatabase.IDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMetadata

public IPropertySet getMetadata()
                         throws IOException,
                                AutomationException
The PropertySet containing metadata.

Remarks

The variable to hold the data must be of IPropertySet data type.

The metadata property is frequently used to save, or update, changes to metadata documents that have taken place through methods available on the IPropertySet, IXmlPropertySet, and/or IXmlPropertySet2 interfaces.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getMetadata in interface IMetadata
Returns:
A reference to a com.esri.arcgis.system.IPropertySet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMetadata

public void setMetadata(IPropertySet ppPropertySet)
                 throws IOException,
                        AutomationException
The PropertySet containing metadata.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setMetadata in interface IMetadata
Parameters:
ppPropertySet - A reference to a com.esri.arcgis.system.IPropertySet (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

synchronize

public void synchronize(int action,
                        int interval)
                 throws IOException,
                        AutomationException
Updates metadata with the current properties; may create metadata if it doesn't already exist.

Description

The Synchronize method is used to extract metadata properties from an object and write those properties to the metadata .xml. Depending on the value of the esriMetaSyncAction, the Synchronize method may generate a new set of metadata if it doesn't already exist.

Remarks

The following actions will result in synchronization given each of the listed conditions:

Action Metadata status Esri/Sync element Interval parameter
esriMSAAccessed Doesn't matter Must not be FALSE Must be less than actual interval
esriMSAAlways Doesn't matter Doesn't matter Doesn't matter
esriMSACreated Must not exist Must not be FALSE Must be less than actual interval
esriMSANotCreated Must exist Must not be FALSE Must be less than actual interval
esriMSAOverwrite Doesn't matter Doesn't matter Doesn't matter

The difference between esriMSAAlways and esriMSAOverwrite lies in which elements are synchronized. esriMSAAlways will honor the removal or value change of an element's Sync attribute (to disable synchronization), whereas using esriMSAOverwrite is equivalent to setting the IXmlPropertySet2.OverwriteSyncAttribute to true for the metadata's property set, meaning that even elements without a Sync attribute of TRUE will be synchronized.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
synchronize in interface IMetadata
Parameters:
action - A com.esri.arcgis.geodatabase.esriMetadataSyncAction constant (in)
interval - The interval (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isCanEditMetadata

public boolean isCanEditMetadata()
                          throws IOException,
                                 AutomationException
Indicates if metadata can be edited.

Remarks

This property is available to those objects that support metadata.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isCanEditMetadata in interface IMetadataEdit
Returns:
The pCanEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNativeType

public INativeType getNativeType()
                          throws IOException,
                                 AutomationException
The native type.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getNativeType in interface INativeTypeInfo
Returns:
A reference to a com.esri.arcgis.geodatabase.INativeType
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.