Professional Documents
Culture Documents
The ArcObjects software components expose the full range of functionality available in ArcInfo, ArcEditor, and ArcView to software developers.
Copyright 2001 ESRI. All right reserved. ESRI, ArcView, and the ESRI globe logo are trademarks of ESRI, registered in the United States and certain other countries; registration is pending in the European Community. ArcGIS, ArcObjects, ArcCatalog, ArcScene, ArcInfo, ArcEditor, ArcToolbox, 3D Analyst, and ArcMap are trademarks of ESRI and www.esri.com is a service mark of ESRI.
ArcObjects is the development platform for ArcGIS Desktop, a suite of GIS software systems: ArcInfo, ArcEditor, and ArcView. These systems serve GIS professionals with a spectrum of geographic data management, spatial editing, and cartographic visualization functionality. The ArcGIS Desktop systems each contain a configuration of applications, such as ArcCatalog, ArcMap, ArcToolbox, and ArcScene, and can host a variety of extension products such as Spatial Analyst, Geostatistical Analyst, 3D Analyst, and others. This object model diagram shows how ArcMap presents geographic information through views and how ArcCatalog manages geodatabases. These are the ArcObjects components documented in volume one of Exploring ArcObjects. You will find updates to ArcObjects developer resources at www.esri.com/arcobjectsonline.
Diagram key
Inbound interface Outbound interface
Types of Classes An abstract class cannot create new objects; it is a specification for instances of subclasses (through type inheritance.) A coclass can directly create objects by declaring a new object. A class cannot directly create objects, but objects of this class can be created as a property of another class or instantiated by objects from another class. Types of Relationships
Chapter 3 This ArcGIS object model diagram uses this color code to denote the coclasses, classes, and abstract classes in the ArcObjects subsystems. Framework coclass
Type inheritance
This diagram illustrates the implicit type inheritance model in the ArcGIS 8.1 component objects. Software interfaces are not duplicated in the child classes. The objects to the left show a sample view of type inheritance. The objects below show a flat view of the objects with their full list of interfaces. The two views are equivalent, but the type inheritance view gives insight into the structural composition of the object model. IRowBuffer IRowBuffer
TM
abstract class
Instantiation
Type inheritance
Interface
Framework class
ArcMap class
Associations represent relationships between classes. They have defined multiplicities at both ends. Type inheritance defines specialized classes of objects that share properties and methods with the superclass and have additional properties and methods. Note that interfaces in superclasses are not duplicated in subclasses. Instantiation specifies that one object from one class has a method with which it creates an object from another class.
coclass
Composition
RowBuffer
RowBuffer
Chapter 5 Display coclass Chapter 6 Output coclass Chapter 7 ArcCatalog coclass IRow IRowBuffer IRowEvents IValidate IFeature IFeatureBuffer IFeatureDraw IFeatureEdit IRow IRowBuffer IRowEvents IValidate
class
Composition is a relationship in which objects from the "whole" class control the lifetime of objects from the "part" class. An N-ary association specifies that more than two classes are associated. A diamond is placed at the intersection of the association branches. A multiplicity is a constraint on the number of objects that can be associated with another object. Association and composition relationships have multiplicities on both sides. This is the notation for multiplicities:
1 - One and only one (if none shown, "1" is implied) 0..1 - Zero or one M..N - From M to N (positive integers) * or 0..* - From zero to any positive integer 1..* - From one to any positive integer
Row
Association
1..*
Multiplicity
Row
Display class
Output class
Special Interfaces (Optional) represents interfaces that are inherited by some subclasses but not all. The subclasses list the optional interfaces they implement. (Instance) represents interfaces that are only on specific instances of the class. (<classname>) indicates the name of the helper class required to support this event interface in Visual Basic.
Feature
Feature
EnumGxView
Application
IApplication IDockableWindowManager IExtensionManager IMultiThreadedApplication IVBAApplication IWindowPosition
The printer abstract class defines the common interfaces for controlling the output of data to hardcopy devices IClone IPersistStream IPrinter
GxViewContainer
The GxViewContainer object permits a GxView object to be a container for additional views
Application
See chapter 3, 'Customizing the user interface' IExtension IExtensionAccelerators IExtensionConfig
Extension *
Application
ITemplates
Templates
A collection of up to three templates can be loaded in ArcMap, one in ArcCatalog. Templates help you define the scope of customization
Printer
PageLayout in ArcMap
IGxSelectionEvents IGxView
GxView
GxView *
GxPreview shows previews of the selected object
IGxPreview IGxApplication IGxCatalogAdmin IGxCatalogEvents IGxCatalogEventsDisp
Extension
See chapter 3, 'Customizing the user interface'
DockableWindow
IStatusBar
StatusBar
Application is the core object that represents ArcMap or ArcCatalog and provides access to the current state of the user interface 0..1
ICustomizationFilter
The status bar is the horizontal area at the bottom of ArcMap and ArcCatalog that provides information about the current application state
Printer
IEmfPrinter
GxApplication
GxApplication
GxApplication represents the running ArcCatalog executable
IExtension
Extension
IMetadataExport
AcceleratorTable
IDockableWindowDef ISupportErrorInfo
DockableWindowDef
A customization filter provides a mechanism for locking parts of the customization functionality in an application
CustomizationFilter
IDocument
A dockable window can exist in a floating state or attached to the main application window
IAccelerator
An accelerator table contains a list of accelerator keys and the command identifiers associated with them
ProgressDialogFactory
The Progress dialog box factory creates and displays a new progress dialog box
EmfPrinter
IColorCorrection IFontMapEnvironment IPsDriver IPsDriver2 IPsPrinter ISpotPlateCollection The PS printer is used to create output through a PostScript driver
PsPrinter
IArcPressPrinter IArcPressPrinterDriver IColorCorrection The ArcPress printer serves as a driver for the creation of output through ArcPress IArcPressPrinterDriver IColorCorrection The ArcPress printer driver supports the ArcPress printer by setting ArcPress parameters
ArcPressPrinter
Metadata
MetadataExport
The metadata export objects output a dataset's metadata to a file
IMetadataEditor
MetadataEditor
The metadata editor objects provide a user interface for editing metadata
GxDocumentationView GxGeographicView
Application GxPreview
IDocument IGxDocumentEvents IGxDocumentEventsDisp
*
Accelerator
An accelerator key is a keyboard shortcut to quickly execute a common command
Document
Document provides access to properties, such as title and type, and contains the Visual Basic for Applications project A collection of command bars associated with a document
ProgressDialog
GxDocument
An EMF printer serves as a driver for the creation of output through the Enhanced Windows Metafile format
ArcPressPrinterDriver
FGDCEditor ExportXML
DefaultEditor
Document
ICommandBars
A command bar definition is used by the command bars collection to create a COM command bar
CommandBars
page xx
Command
CommandItem Command
MacroItems are simple procedures written in the Visual Basic Editor
GxDocument represents the document object in the VBA class ThisDocument contained in each VBA project
IGxSelection IGxSelectionEvents
IEnumGxObject
GxSelection
ICoordinateDialog
CoordinateDialog
IFontMapEnvironment The Coordinate dialog box is used for getting user input in the form of x, y coordinates
EnumGxObject
FontMapEnvironment
CommandBarDef
ICommandBar ICommandItem
1..* CommandBar
A command item is an element on a command bar, such as a button, tool, or menu item
IGetStringDialog
UIControl
MacroItem
COM Command
IGetUserAndPasswordDialog
GetStringDialog
The Get String dialog is used for getting user input in the form of a string
The font map environment supports the PS printer by setting font information to be used during the creation of Postscript output
Output
IFontMapCollection
IGxCatalogEvents IGxTableView
GxTableView Application
GxTableView is used to preview the table associated with the selected object
GxSelection keeps track of the items chosen in the tree and tabbed views of the data
ExportMP
IGxObjectArray
ExportMPSGML
IMetadataImport
GxObjectArray ExportMPFAQ
IGxObjectFilter
MetadataImport
The metadata import objects add or replace metadata from an input file
PsDriver
FontMapCollection
IGxCatalogEvents IGxTreeView
GxTreeView
GxTreeView shows a hierarchical organization of your data holdings Objects in the GxContentsViewColumn collection represent the columns in the tabbed display area of the view (when Contents is the active tab)
IToolbarDef
DocumentCommandBar
Framework
IUIButtonControlEvents
GetUserAndPasswordDialog
The Get User and Password dialog is used for getting username and password information
The PS driver supports the PS printer by setting general PostScript variables, including color information
The font map collection houses the set of font maps used by the PS printer or PS exporter objects
GxContentsView
GxObjectFilter
A menu definition is used by the command bars collection to create a menu A toolbar definition is used by the command bars collection to create a toolbar
UIButtonControl acts as a button or menu item that performs a simple task when clicked
IUIComboBoxControl IUIComboBoxControlEvents
UIButtonControl
Button
IListDialog
*
ISpotPlate
*
IFontMap IFontMap2
SpotPlate ListDialog
The List dialog box is used to present a list of options and allows the user to select one of the options The spot plate allows for the creation of separate plates (images) based on the specified color
FontMap
IGxObjectFactory IGxObjectFactoryMetadata
* GxContentsViewColumn
A COM command bar can be written in any COM-compliant language and is compiled as an ActiveX DLL
A document command bar is a custom menu or toolbar created with the Customize dialog box
UIComboBoxControl
Tool
IMessageDialog
MessageDialog
A tool acts as a button that allows further interaction with the application display
ICommand ICommandSubtype (optional) IToolControl INumberDialog
A font map creates associations between TrueType fonts and the mapped font
GxObjectFactory
The GxObjectFilter objects are used in conjunction with the GxDialog object to limit the types of data the user can browse when selecting objects to open or save
Paper
GxObjectFactory objects help ArcCatalog generate GxObjects based on the object type
The paper object defines the printer and tray designations for use with the printer object
IGxObjectFactoryEdit
GxCoverageFactory
GxMapFactory
IGxObjectFactoryPriority
IGxObjectFactoryEdit
GxTextFileFactory
IDllThreadManager IApplication
AppRef
DllThreadManager
A DLL thread manager provides access to an event that DLL thread managers listen for
IUIEditBoxControl IUIEditBoxControlEvents
UIEditBoxControl
ToolControl
NumberDialog
The Number dialog box is used for getting user input in the form of a number The exporter abstract class defines the common interface for controlling the output of map data to files The ArcPress export abstract class supports the output of map data to the different file formats of ArcPress IExporter
The CGM driver is created by the CGM exporter object during the output of map data to a CGM file
A tool control is dropdown list box control, editable textbox control, or other type of control that can be added to a toolbar
GxDatabaseFactory
GxMetadataFactory
ArcCatalog
IGxObject IGxObjectEdit IGxObjectUI
TM
GxObject
GxFilterAnnotationFeatureClasses GxFilterBasicTypes GxFilterCadDrawingDatasets GxFilterCoverageAnnotationClasses GxFilterDatasets GxFilterDatasetsAndLayers GxFilterFeatureClasses GxFilterFeatureDatasets GxFeatureDatasetsAndFeatureClasses GxFilterFiles GxFilterGeodatasets GxFilterLayers GxFilterMaps GxFilterPointFeatureClasses GxFilterPolygonFeatureClasses GxFilterPolylineFeatureClasses GxFilterRasterDatasets GxFilterSpatialReference GxFilterTables GxFilterTablesAndFeatureClasses GxFilterTINDatasets GxFilterWorkspaces
ImportMPSGML
ImportXML
FindDialog
FindDialog
FindDialog provides access to ArcCatalogs Search dialog box
IAppROT IAppROTEvents
AppROT
The application running object table is a global list of all currently running ESRI COM-based applications
MouseCursor
You can use MouseCursor to set the system mouse cursor to be one of the standard built-in cursors or a custom cursor
Exporter
Exporter
ICGMDriver ISupportErrorInfo
GxObject
GxFile represents any file type that has been defined in ArcCatalog GxMetadata represents XML files
IFindDialogSettings IQuery IXmlQuery
IUIToolControlEvents
UIToolControl
MultiItem
UIToolControl acts as a button that allows further interaction with the application display
CGMDriver
GxFileFactory
IGxObjectFactoryPriority
GxPrjFileFactory
GxObjects represent individual data items and they are what appear in the tree view and the contents view
FileSystemQuery
FileSystemQuery lets you modify an existing searchs parameters or define a new query
IComponentCategoryManager
ComponentCategoryManager
The component category manager object registers components with the component categories used by the ESRI applications
A MultiItem is a dynamic command that appears as zero or more adjacent menu items on a menu depending upon the state of the application
IUID
UID
A unique identifier object represents the globally unique identifier for any COM object
ExtensionManager
IArcPressExporter IArcPressExporterDescriptionEnum
ArcPressExporter
IArcPressExporterDriver
ICGMExporter
CGMExporter
GxLayerFactory
The CGM exporter creates output in the Computer Graphics Metafile format
GxShortcutFactory
IGxObjectContainer IGxPasteTarget
GxObjectContainer
GxFile
IGxObjectWizard
GxMetadata
GxObjectWizard
SearchEngine
3
The legend group contains a collection of legend class objects
ILegendGroup IPersist IPersistStream FeatureLayer in ArcMap IFeatureRenderer ILegendInfo IPersist IPersistStream ILegendClass IPersist IPersistStream
ArcPressExporterDriver
GxNewDatabase CatalogSearchEngine
The CatalogSearchEngine lets you search for any object that appears in ArcCatalog
ArcPressExporterJPEG
DibExporter
ArcPressExporterPCX
The ArcPress exporter driver uses ArcPress to convert a PostScript file to one of the supported formats
EmfExporter
The EMF exporter creates output in the Microsoft Enhanced Metafile format
GxCatalog
SearchResults
GxFolder
GxLayer
IFileSystemQuery
IJpegExporter
IClone IColor IPersist IPersistStream IColorBrowser
Color
LegendGroup *
LegendClass *
A color ramp is a series of colors
*
CmykColor
The color browser dialog box allows a color to be selected by setting individual color properties
ColorBrowser
ArcPressExporterPNG
IFontMapEnvironment IPsExporter The Export dialog box displays a dialog for users to enter filename and desired format for outputting map data IPdfExporter IFontMapEnvironment The PDF exporter creates output in the Portable Document format
JpegExporter
The JPEG exporter creates output in the format set by the Joint Photographic Experts Group
GxCatalog object represents your actual tree of data, as is shown in the tree view
IGxFileFilter IGxFileFilterEvents IPersistStream
GxRemoteDatabaseFolder GxSpatialReferencesFolder
FileSystemXmlSearchEngine
GxDiskConnection
FileSystemXmlSearch Engine lets you search for file-based objects stored on disk for which metadata has been created
GxMap
GxFileFilter
ArcPressExporterTIFF MonitorSettings
IExportDialog IExportDialog2
PsExporter
The PS exporter creates output in the PostScript format The PDF driver is created by the PDF exporter object during the output of map data to a PDF file
FeatureRenderer
ICmykColor IPostScriptColor
IMonitorSettings
Feature renderers
IBivariateRenderer
The legend class contains a symbol and some text in the form of a label and description to describe what that symbol represents
ColorRamp
A CMYK color is composed of cyan, magenta, yellow, and black for optimum print reproduction
Monitor settings can be used to get white point, red point, green point, and blue point values for the monitor
PdfExporter
GxFileFilter object maintains the file filter used by ArcCatalog to determine which file types to display
GxSpatialReferencesFolder represents only the top level of the spatial reference information accessible through ArcCatalog
SpatialReferenceDialog
The Spatial Reference dialog box object is a stand-alone object used to create a new spatial reference object
ExportDialog
IGxCachedObjects IGxDatabase IGxDatabase2 IGxObjectInternalName IGxObjectProperties IGxObjectWizard IMetadata IMetadataEdit INativeTypeInfo GxDatabase holds a
When ArcCatalog starts, it creates GxDiskConnection objects for each folder connected at the root
IGxShortcut
GxPrjFile
ITableDefinitionDialog
GxDatabase
ICieLabConversion
GrayColor
IGrayColor IIAlgorithmicColorRamp
A biunique value renderer combines the symbols of a unique value renderer and a class breaks renderer
IBarrierProperties2 IBasicOverposterEvents IChartRenderer IDataExclusion IDataNormalization IIdentify IPieChartRenderer IRendererFields
BiUniqueValueRenderer
ProportionalSymbolRenderer
A proportional symbol renderer draws a symbol of varying size for each feature. The size is in proportion to a field value
AlgorithmicColorRamp
A gray color is defined as a percentage of black An algorithmic color ramp is a sequential series of colors
IHlsColor
A CIELabConversion is used to convert colors from different color models to the CIELab color model
CieLabConversion
TiffExporter
TableDefinitionDialog
GxShortcut GxDataset
GxShortcut represents shortcuts to objects returned from a Catalog search GxDataset holds a dataset object within ArcCatalog
IFileName IName IPersistStream IShortcutName IGxCachedObjects IGxDataset IGxFileSetup IObjectClassSchemaEvents IGxObjectInternalName
The Table Definition dialog box object is a standalone object used to create new tables and feature classes within the specific workspace or dataset
GxTextFile
IProjectedCoordinateSystemDialog
IGxDatabaseExtensions
HlsColor
An HLS color is defined with hue, lighting, and saturation components
IHsvColor
IColorPalette ICustomColorPalette
ColorPalette
A chart renderer draws pie, bar, and stacked bar chart symbols based on attributes of each feature
ChartRenderer
IScaleDependentRenderer
ScaleDependentRenderer
A scale-dependent renderer is made of multiple renderers, each operating within a scale range
IMultiPartColorRamp
MultiPartColorRamp
A ColorPalette displays the colors that are held in the current Styles on a popup menu
6
DataWindow
IDataWindow
IPDFDriver
PDFDriver
7
Application
IApplication IApplicationWindows IExtensionManager IDockableWindowManager IEnumPrinterNames IMultiThreadedApplication IMxApplication IObjectFactory IVBAApplication IWindowPosition
GxDatabaseExtensions
GxDatabaseExtension is an abstract class whose purpose is to provide a starting point for those developers who want to create extensions to a GxDatabase
ShortcutName
IGxDialog IGxObjectFilterCollection IGxSelectionEvents
ProjectedCoordinateSystemDialog
The Projected Coordinate System dialog box is a stand-alone object used to create a new projected coordinate system object
IGeographicCoordinateSystemDialog
GxDialog
GxDatabaseExtension
GxDialog represents a browser that allows you to open and save GIS datasets.
GeographicCoordinateSystemDialog
The Geographic Coordinate System dialog box is a stand-alone object used to create a new geographic coordinate system object
HsvColor
An HSV Color is defined with hue, saturation, and value components
IRgbColor
IColorSelector
ColorSelector
IBarrierProperties2 IClassBreaksRenderer IClassBreaksUIProperties IDataExclusion IDataNormalization A class breaks renderer IDataSampling can be used to draw ILevelRenderer graduated color ILookupSymbol (choropleth) and IRotationRenderer
ClassBreaksRenderer
IPresetColorRamp
SimpleRenderer
PresetColorRamp
RgbColor
An RGB color is composed of red, green, and blue for optimum screen display.
A ColorSelector allows you to edit a color according to the RGB, CMYK, or HSV color model
UniqueValueRenderer
DotDensityRenderer
ICalcRendererValues
The unique value renderer defines the symbol a feature is to be drawn with based on an attribute value
RandomColorRamp
DataWindow
Data windows are additional displays associated with the application
CalcRendererValues
CalcRendererValues is a utility object used to perform simple statistical calculations on a feature layer for use by renderers
TransparencyDisplayFilter
Display
IClone IPersist IPersistStream ISymbol
DataGraphWindow
IClone IDataGraph IDataGraphAxis IDataGraphTicks IDataGraphAreaProperties IDataGraphBarProperties IDataGraphColorProperties IDataGraphHighLowCloseProperties IDataGraphOverlayProperties IDataGraphPieProperties IDataGraphProperties IPersistStream
DataGraph
SelectionEnvironment
Style gallery
StyleGallery EnumStyleGalleryItem
IMapGridFactory IStyleGalleryClass
MapGridFactory
*
A style gallery is a collection of styles. Each ArcMap document has a style gallery associated with it. Using this style gallery, you can access the styles referenced by that document
StyleGalleryClass
Application
IdentifyDialog is the dialog box for quickly querying data attributes
A map grid is a grid of reference points or lines on the layout that help you visually identify the location of features on the map
IClone IGraphicsComposite IMapGrid IPersist IPersistStream
A map grid factory can be used to quickly create a map grid with default properties
IdentifyDialog
IEnumStyleGalleryItem
Data graph windows display graphs Data graphs represent ArcMap and ArcCatalog graphs
*
IExtension
Symbols
Symbol
Symbols are used for drawing features and elements on a map and have attributes such as color and size
MapInsetWindowFactory
Extension
MapInsetWindow
ArcMap supports extensions that are automatically created when the application starts. The ArcMap editing tools are an example of an extension
StyleGalleryItem
Style items provide access to the individual map elements and symbols that make up a style
AppDisplay
Marker symbols
MarkerSymbol
Line symbols
LineSymbol
Fill symbols
FillSymbol
3D chart symbols
3DChartSymbol
IFormattedTextSymbol IMapLevel IMask IPropertySupport ISimpleTextSymbol ISymbolRotation ITextSymbol
IDataWindowFactory
Text symbols
TextSymbol
An text symbol defines a Font and many formatting properties of a piece of text.
OverviewWindowFactory
OverviewWindow
Overview windows display the full extent view of the focus map
The application display helps manage all of the displays present in the application
ITableWindow ITableWindow2
TableWindow
IClone ITableControl ITableControlInfo ITableControlWidth ITableOutput ITableView ITableView2 ITableViewTableFields
IChangeLayout IContentsViewEdit IDataGraphs IDocument IDocumentDirty IDocumentDatasets IDocumentDefaultSymbols IDocumentEvents IDocumentEventsDisp IDocumentInfo IMxDocument IPersist IPropertySupport IReportUnitFormat
TOCView
Style selectors provide you with the means to interactively choose or edit a style item
MxDocument
IDocumentEvents
Using the style gallery coclasses, you can create various types of style items
CharacterMarkerSymbol
ICartographicLineSymbol ILineProperties
CartographicLineSymbol
DotDensityFillSymbol
A 3D chart symbol is a symbol used by a chart renderer A dot-density fill symbol is a datadriven symbol commonly used with the dot-density renderer.
IBarChartSymbol
The table of contents catalog view represents the Source tab in the ArcMap table of contents The table of contents display view represents the Display tab in the ArcMap table of contents
TOCCatalog View
AreaPatchStyleGalleryClass BackgroundStyleGalleryClass BorderStyleGalleryClass ColorRampStyleGalleryClass ColorStyleGalleryClass FillSymbolStyleGalleryClass LabelStyleGalleryClass LegendItemStylGalleryClass LinePatchStyleGalleryClass LineSymbolStyleGalleryClass MapGridStyleGalleryClass MarkerSymbolStyleGalleryClass NorthArrowStyleGalleryClass ScalebarStyleGalleryClass ScaleTextStyleGalleryClass ShadowStyleGalleryClass TextSymbolStyleGalleryClass
MapGrid
MapGrid
ICustomOverlayGrid
A custom overlay grid divides the map using lines from the data source you specify
IGraticule IMeasuredGrid
CustomOverlayGrid
MapGridBorder
A map grid border is the set of lines that outline the map grid
Graticule
ISimpleMapGridBorder
SimpleMapGridBorder CalibratedMapGridBorder
IComPropertySheetEvents IStyleSelector
StyleSelector
IComPropertySheetEvents IStyleDialog
IndexGrid
An index grid divides the map into a grid for indexing
ICalibratedMapGridBorder
TableView
A cartographic line symbol has flexible properties to create dot-dash patterns, decorations such as arrowheads, and line join and cap styles
BarChartSymbol
MxDocument controls the current active view that specifies whether the user is interacting with the entire map layout or a specific data frame in the layout
SimpleMarkerSymbol
IGradientFillSymbol
IHashLineSymbol
HashLineSymbol
GradientFillSymbol
TextBackground
IPersist ITextPath
TOCDisplayView
IMapGridSelector
StyleManagerDialog
IMeasuredGrid IProjectedGrid
PieChartSymbol
The page layout is ArcMap's version of a hardcopy output page. A typical page layout may have a map and graphic elements representing a title, north arrow and legend
StyleGallery
SnapGrid
The snap grid is a grid of reference points on the layout used to aid element placement. The snap grid works in conjunction with a grid snap agent PageLayout
IActiveView IActiveViewEvents IBasicMap IConnectionPointContainer IDisplayAdmin IDisplayEvents IGraphicsContainer IGraphicsContainerSelect IMap IMapBarriers IMapBookmarks IMapEvents IMapGeographicTransformations IPersist IPersistStream IRelationshipClassCollection ISelectionEvents IStandaloneTableCollection ITableCollection ITransformEvents IViewManager
*
The style gallery is a list of predefined items (styles) used to create maps The Map object is a container for vector, raster, and graphic data. Maps reside on the page layout and contain the geographic data typically seen on a map
IMapEvents
TextPath
ArrowMarkerSymbol
ILineFillSymbol IMarkerLineSymbol
A marker line symbol is a series of marker symbols following the path of a line
MarkerLineSymbol
LineFillSymbol
StackedChartSymbol
ICallout IQueryGeometry
MarkerTextBackground
MapGridSelector
MeasuredGrid
A measured grid divides the map into a grid of units in any coordinate system
IStyleDialog
StyleReferencesDialog
GridLabel
A grid label governs the way a map grid is labeled along the borders
GraphicSnap
IActiveView IActiveViewEvents IConnectionPointContainer IDisplayAdmin IGraphicsContainer IGraphicsContainerSelect IGraphicSnapEnvironment IPageEvents IPageLayout GridSnap IPersist GuideSnap IPersistStream ISelectionEvents MarginSnap ITransformEvents RulerSnap IViewManager IPersist IPersistStream IRulerSettings
IDMSGridLabel
PictureMarkerSymbol
MultiLayerLineSymbol
IFillProperties IMarkerFillSymbol
MarkerFillSymbol
A callout draws a background behind a piece of text, with a leader line to an anchor point
IBalloonCallout ITextMargins
RulerSettings
Map
NumberFormat
IClone INumberFormat
PageLayout
Ruler settings represents the layout rulers
IPersist IPersistStream ISnapGuides
NumberFormat
Number format objects convert values to text strings and vice versa Numeric format objects convert to and from angle, latitude-longitude, percentages, and rate values.
A DMS grid label displays the map grid using degrees, minutes, and seconds
IFormattedGridLabel
DMSGridLabel
IIndexGridTabStyle
IndexGridTabStyle
An index grid tab style governs the way an index grid is labeled
MapEvents
A formatted grid label uses a number format to label the map grid
FormattedGridLabel
IBackgroundTabStyle
IOverposterTextPath
MultiLayerMarkerSymbol
A simple line symbol is a solid line or one with predefined series of dots and dashes
IPictureLineSymbol
SimpleLineSymbol
MultiLayerFillSymbol
ChartSymbolEditor
OverposterTextPath
SnapGuides
Page Snap guides are horizontal and vertical lines added to the layout that aid element placement. The snap guides work in conjunction with a guide snap agent
BackgroundTabStyle
LineCallout
LineDecoration
PictureLineSymbol
IFillProperties IPictureFillSymbol
PictureFillSymbol
The chart symbol editor can be used to allow users to edit the properties of a chart symbol
A line callout draws a line from an anchor point to a piece of text, and draws a rectangular background behind the text
SimpleTextPath
A simple text path is used to draw text that follows a straight or curved line.
ISimpleLineCallout
SimpleLineCallout
Graphic snap agents move elements by attempting to snap them to various objects such as the snap grid
Page layout
IGraphicSnapEnvironment IPersist IPersistStream IClone IConnectionPointContainer IFrameProperties IPage IPageEvents GraphicIPersist SnapIPersistStream Environment IPropertySupport
The Page object represents the page of paper the layout resides on
CurrencyFormat
INumericFormat
IMixedFontGridLabel IFormattedGridLabel
NumericFormat
A mixed-font grid label displays the label in two fonts and also uses a number format
MixedFontGridLabel
A background tab style labels the index grid using square, round, or rounded-square boxes
ICustomNumberFormat
Page
The page represents the piece of paper the layout resides on Elements are a broad group of items that can be placed on the page layout or on a map. For example, a map title is a text element placed on the page layout A layer is a specific class of data added to a Map. Layer types include features (coverages, shapefiles, geodatabases), rasters, images, TINs, CAD, IMS, and annotation A map surround is a specific group of elements that is associated with a map. Map surrounds include North arrows, scale bars, and legends A spatial bookmark is a specific map extent that has been saved along with a name identifying it
A line decoration maintains a set of line decoration elements, which are symbols drawn along a line
IClone ILineDecorationElement IPersist IPersistStream ISimpleLineDecorationElement
* SimpleLineDecorationElement
Template
A template defines the series of dots, dashes, and gaps along a cartographic line
ISimpleFillSymbol
SimpleFillSymbol
A simple line callout draws a custom line shape as a leader line to a TextSymbol
ITextSymbolEditor
A simple line decoration element draws marker decorations on the top of a line symbol, such as arrowheads
ILineDecorationEditor
SymbolSelector
The Symbol Selector dialog box presents all symbols in referenced style files
ISymbolEditor
SymbolEditor
The Symbol Editor dialog box is used to edit the definition of any symbol
TextSymbolEditor
CustomNumberFormat
IPercentageFormat
PercentageFormat
A button tab style labels using rectangular buttons that line the grid A continuous tab style labels using a continuous band around the grid A rounded tab style labels using rounded rectangles that line the grid
IAngleFormat
Element
The text symbol editor is a dialog box used for editing the properties of an existing text symbol
FontSize
The graphic snap environment controls which graphic snap agents are active, the order in which they are called, and the snap tolerance
FractionFormat
AngleFormat
IRateFormat
RateFormat
ILatLonFormat ILatLonFormat2
LineDecorationEditor
The font size object is used by ArcMap to determine the default size for new text
ITextBackgroundEditor
IClassFactory ISymbologyEnvironment
SymbologyEnvironment
IGeometryDraw ISupportErrorInfo
GeometryDraw
TextBackgroundEditor
The text background editor is a dialog box used for editing the properties of text backgrounds like a callout
IDisplayFeedback
DisplayFeedback
Display
Display
IClone IFrameDecoration IGraphicsComposite IPersist IPersistStream IConnectionPointContainer IDelayEvents IDisplayTransformation IRasterOutputSettings ITransformation ITransformEvents
Graphic elements are simple graphics that can appear in a data view
Element
Element *
Map elements represent all the graphics that can appear on a map
ArcMap
FeatureClass in Geodatabase Renderer in Display
IAttributeTable IClass IConnectionPointContainer IDataLayer IDataLayer2 IDataset IDisplayAdmin IDisplayFilterManager IDisplayRelationshipClass IDisplayTable IFeatureLayer IFeatureLayer2 IFeatureLayerDefinition IFeatureLayerSelectionEvents IFeatureSelection IFind IGeoFeatureLayer IHotlinkContainer IHotlinkMacro IHyperlinkContainer IIdentify IIdentify2 ILayer2 ILayerDrawingProperties ILayerEffects ILayerEvents ILayerExtensions ILayerFields ILayerInfo ILayerPosition ILegendInfo IMapLevel IObjectClassSchemaEvents IPropertySupport IRelationshipClassCollection IRelationshipClassCollectionEdit ITable ITableFields ITableSelection
TM
ScientificFormat
LatLonFormat
MapSurround
MapSurround
Map surrounds are associated with a data frame and provide a cartographic context for the geographic data and extent.
Layer
Layer
A layer is used to display geographic information on a map
IMapInset
Legend
MapInset
*
IBoundsProperties IFrameDraw IFrameElement IFrameProperties
A simple display object abstracts all other devices that can be rendered to using a Windows Device Context such as printers and metafiles
SimpleDisplay
IScreenDisplay ITransformEvents
DisplayTransformation
BezierMovePointFeedback
INewBezierCurveFeedback
NewBezierCurveFeedback
A group element is a set of grouped elements
IGraphicElement
GraphicElement
FrameElement
A group layer is a group of layers that appear and act like a single layer in the table of contents
ICompositeLayer IConnectionPointContainer IDisplayAdmin IGroupLayer IIdentify IIdentify2 ILayer2 ILayerEvents ILayerInfo ILayerPosition IMapLevel
An Internet map server layer displays data from an image service on the Internet
LegendFormat
MapTitle
IBackground ISymbolBackground
SymbolBackground
IBorder ISymbolBorder
SymbolBorder
IShadow ISymbolShadow
SymbolShadow
CalloutFeedback
INewCircleFeedback
NewCircleFeedback
GroupElement
FrameElement
GroupLayer
ScreenDisplay
A display transformation manages the map to device transformation for each type of display The symbol background draws a background fill for a frame element The symbol border draws an outline for a frame element The symbol shadow draws a shadow around a frame element
ISet
A screen display object abstracts a normal application window and implements scrolling and backing store
GroupFeedback
NewDimensionFeedback NewEnvelopeFeedback
IBoundsProperties IMarkerElement
MarkerElement
IClassify
Classify
Classify
IDataNormalization IHistogram IStatisticsResults ITableHistogram
IRubberBand
Rubber band
RubberBand
A rubber point object allows the user to input and move points on the display
LineMovePointFeedback
IActiveViewEvents IConnectionPointContainer IDisplayAdmin IDisplayEvents IGraphicsComposite IGraphicsContainerProperty IMapFrame IMapFrameEvents IMapGrids ITransformEvents
FeatureLayer
ICompositeLayer ICompositeLayer2 IDataLayer IDataLayer2 IDisplayAdmin IDisplayFilterManager IIdentify IIdentify2 IIMSMapLayer ILayerDrawingProperties ILayerEffects ILayerInfo ILayerPosition
IMSMapLayer
MapFrame
A map surround frame manipulates the frames of map elements such as North arrows and legends
LineElement
IGraphicsComposite IMapFrameEvents IMapSurroundEvents IMapSurroundFrame ITransformEvents
TableHistogram
A rubber circle object allows the user to input circles on the display A rubber envelope object allows the user to input and move envelopes on the display
ModifyDimensionFeedback
NewLineFeedback
MapSurroundFrame
GraphicsLayer
IClassifyMinMax IIntervalRange
DefinedInterval
The defined interval classification produces classes that are divided by regular fixed numeric increments
The table histogram is a data structure used to set data to a data classification
RubberCircle
RubberPoint
IClassifyMinMax
EqualInterval
The equal interval classification is similar to defined interval, except that the first interval starts at the lowest value
RubberEnvelope
A rubber polygon object allows the user to input and move polygons on the display
MoveEnvelopeFeedback
NewMultiPointFeedback
A data graph element manipulates the frame containing a graph A picture element represents Windows raster or vector graphic objects
IBoundsProperties IFrameDraw IFrameElement IFrameProperties IOlePictureElement IPictureElement
TextElement
OleFrame
IAttributeTable ICadDrawingLayers ICadTransformations IClass IConnectionPointContainer IDataLayer IDataLayer2 IDataset IDisplayAdmin IDisplayFilterManager IDisplayRelationshipClass IDisplayTable IFeatureLayer IFeatureLayer2 IFeatureLayerDefinition IFeatureSelection IFind IGeoFeatureLayer IHotlinkContainer IHotlinkMacro IHyperlinkContainer IIdentify IIdentify2 ILayer2 ILayerDrawingProperties ILayerEffects ILayerExtensions ILayerFields ILayerInfo ILayerPosition ILegendInfo IMapLevel IObjectClassSchemaEvents IPropertySupport IRelationshipClassCollection IRelationshipClassCollectionEdit ITable ITableFields ITableSelection
ICadLayer ICad3DRenderMode ICadDrawingLayers ICadTransformations IConnectionPointContainer IDataLayer IDataLayer2 IDisplayAdmin IIdentify ILayerEffects ILayerExtensions ILayerInfo ILayerPosition
CadLayer
IConnectionPointContainer IDataLayer IDataLayer2 IDisplayAdmin IIdentify ILayerEffects ILayerEvents ILayerDrawingProperties ILayerExtensions ILayerInfo ILayerPosition ILegendInfo IRasterCatalogLayer
RasterCatalogLayer
Documented in chapter 13, "Integrating raster data"
*
INorthArrow
LegendItem
Legend items are the individual parts of a legend
IGraphicsComposite IMarkerNorthArrow IPropertySupport ITransformEvents
NorthArrow
The North arrow object is a base class for all north arrow types
IHorizontalBarLegendItem IVerticalLegendItem
HorizontalBarLegendItem HorizontalLegendItem
MarkerNorthArrow
Marker North arrows use a character marker symbol An overview displays the full map extent of a dataframe, together with a box graphic showing the current map extent
CadFeatureLayer
Hyperlink
DataGraphElement
DimensionLayer
ITableFrame
IMoveGeometryFeedback
NaturalBreaks
The natural breaks classification produces classes which highlight natural groupings by minimizing variance within a class and maximizing variance between classes
A rubber line object allows the user to input and move polylines on the display
RubberLine
A rubber rectangular object allows the user to input and move polygons, which are constrained to be rectangular, on the display
MoveGeometryFeedback
NewPolygonFeedback
TableFrame
A fill shape element is a graphic of a closed area
PictureElement
IBoundsProperties IFillShapeElement
FillShapeElement
IDeviationInterval
StandardDeviation
The standard deviation classification creates classes that represent dispersion about the mean value
Selection tracker
ISelectionTracker
SelectionTracker
Creates a feedback on the display for moving an image of symbolized elements or features
IMoveLineFeedback
MoveImageFeedback
EmfPictureElement
ICircleElement
CircleElement
IEllipseElement
EllipseElement
MultiPatchElement
Quantile
The quantile classification creates as close as possible to equal numbers of values in each class
ICalloutTracker
MoveLineFeedback
IResizeEnvelopeFeedback IResizeEnvelopeFeedback2
CalloutTracker
EnvelopeTracker
LineTracker
PointTracker
PolygonTracker
IMovePointFeedback
ITrackCancel
CancelTracker
IAnchorPoint IRotateTracker
MovePointFeedback
ResizeEnvelopeFeedback
IRectangleElement
RectangleElement
IElementEditVertices IPolygonElement
PolygonElement
AnchorPoint
RotateTracker
IScaleTracker
ScaleTracker
IMovePolygonFeedback
A rotate tracker manages the user interface for rotating features or elements
A scale tracker controls the user interface for scaling features or elements
MovePolygonFeedback
Creates a feedback on the display for stretching all the vertices on a polyline
StretchLineFeedback
IVertexFeedback
VertexFeedback
SpatialBookmark
IAOIBookmark
IAttributeTable IClass IDataLayer IDataLayer2 A hyperlink displays IDataset linked data, such as text IDisplayAdmin files or Web pages, IDisplayFilterManager IDisplayRelationshipClass when you click it IDisplayTable IFDOAttributeConversion IFDOGraphicsLayer IFeatureLayer IFeatureLayer2 CompositeIFeatureLayerDefinition ICompositeGraphicsLayer IFeatureSelection ICompositeLayer GraphicsIFind IGeoDatasetSchemaEdit Layer IHotlinkContainer IGraphicsLayerScale IHotlinkMacro IHyperlinkContainer IIdentify IIdentify2 ILayer2 A composite graphics layer ILayerEffects manages other graphics layer, but is ILayerEvents ILayerExtensions also a graphics layer itself ILayerFields ILayerInfo ILayerPosition IMapLevel IObjectClassEvents IObjectClassSchemaEvents ISpatialBookmark IPropertySupport SpatialIPersist IRelationshipClassCollection IPersistStream Bookmark IRelationshipClassCollectionEdit ITable ITableFields ITableSelection
IAttributeTable IBarrierProperties IBarrierProperties2 ICadDrawingLayers ICadTransformations ICoverageAnnotationLayer ICoverageAnnotationLayer2 IDataLayer IDataLayer2 IFeatureLayer IFind ILayerFields ILayerInfo ITableFields
IAttributeTable IClass IConnectionPointContainer IDataLayer IDataLayer2 IDataset IDisplayAdmin IDisplayRelationshipClass IDisplayTable IGeoReference IIdentify ILayerDrawingProperties ILayerEffects ILayerEvents ILayerExtensions ILayerFields ILayerInfo ILayerPosition ILegendInfo IObjectClass IRasterLayer IRelationshipClassCollection IRelationshipClassCollectionEdit ITable ITableFields ITableSelection
IHorizontalLegendItem
IOverview
Overview
IHorizontalLegendItem INestedLegendItem
RasterLayer
Documented in chapter 13, "Integrating raster data" IVerticalLegendItem
NestedLegendItem
ScaleText
VerticalLegendItem
ILegendClassFormat IPersist IPersistStream
A scale text map surround is a text element that describes the map's scale
Patch
LegendClassFormat
Scalebar
CadAnnotationLayer
FDOGraphicsLayer
A dimension layer displays descriptive text and supporting graphics (such as leader lines) that are associated with map features
A CadAnnotationLayer is used to control the symbology of the annotation features from a CAD layer
IAttributeTable IBarrierProperties IBarrierProperties2 ICoverageAnnotationLayer ICoverageAnnotationLayer2 IDataLayer IDataLayer2 IFeatureLayer IFind ILayerFields ILayerInfo ITableFields A coverage annotation
IConnectionPointContainer IDataLayer IDataLayer2 IDisplayAdmin IDisplayFilterManager IIdentify ILayerDrawingProperties ILayerEffects ILayerEvents ILayerExtensions ILayerFields ILayerInfo ILayerPosition ILegendInfo ITableFields ITinLayer
IScaleLine
ISingleFillScaleBar
ILinePatch
ScaleLine LinePatch
SingleFillScaleBar
IDoubleFillScaleBar
DoubleFillScaleBar
TinLayer
IAreaPatch
AreaPatch
SteppedScaleLine
SingleDivisionScaleBar
CoverageAnnotationLayer
IAnnotationExpressionEngine ICodedValveAttributes IPersist IPersistStream
Scale line scale bars are represented with a single line symbol
AnnotationExpressionEngine
IBarrierCollection
Labeling
LabelEngineLayerProperties
IClone ILineLabelPosition IPersist IPersistStream
BarrierCollection
PointPlacementPriorities
An area of interest is a map extent you would create when zooming in or panning the display
AOIBookmark
IFeatureBookmark
A feature bookmark stores information about a particular feature so that it can be quickly found again
FeatureBookmark
Annotate layer properties holds a set of labeling properties for a feature layer
AnnotateLayerPropertiesCollection
AnnotationVBScriptEngine
AnnotationJScriptEngine
An annotation Java Script engine specifies a label expression based on Java Script
IBasicOverposterLayerProperties IBasicOverposterLayerProperties2 IClone IOverposterLayerProperties IPersist IPersistStream
Point placement priorities specify conflict resolution weights for labels placed relative to point features
IClone ILineLabelPlacementPriorities IPersist IPersistStream
LineLabelPlacementPriorities
Label engine layer properties specify labeling properties for a feature layer
LineLabelPosition
Line label position specifies the desired label position and placement option for labels placed relative to line features
Basic overposter layer properties specify label placement and conflict resolution properties
BasicOverposterLayerProperties
Line label placement priorities specify conflict resolution weights for labels placed relative to line features
ESRI ArcObjects is the development platform for the ArcGIS family of applications such as ArcMap, ArcCatalog, and ArcScene. The ArcObjects software components expose the full range of functionality available in ArcInfo, ArcEditor, and ArcView to software developers.
Copyright 2001 ESRI. All right reserved. ESRI, ArcView, and the ESRI globe logo are trademarks of ESRI, registered in the United States and certain other countries; registration is pending in the European Community. ArcGIS, ArcObjects, ArcCatalog, ArcScene, ArcInfo, ArcEditor, ArcToolbox, 3D Analyst, and ArcMap are trademarks of ESRI and www.esri.com is a service mark of ESRI.
ArcObjects is the development platform for ArcGIS Desktop, a suite of GIS software systems: ArcInfo, ArcEditor, and ArcView. These systems serve GIS professionals with a spectrum of geographic data management, spatial editing, and cartographic visualization functionality. The ArcGIS Desktop systems each contain a configuration of applications, such as ArcCatalog, ArcMap, ArcToolbox, and ArcScene, and can host a variety of extension products such as Spatial Analyst, Geostatistical Analyst, 3D Analyst, and others. This object model diagram shows the ArcGIS subsystems and their components that coordinate all geographic data management. These are the ArcObjects components documented in volume two of Exploring ArcObjects. You will find updates to ArcObjects developer resources at www.esri.com/arcobjectsonline.
Diagram key
Inbound interface Outbound interface
Types of Classes An abstract class cannot create new objects; it is a specification for instances of subclasses (through type inheritance.) A coclass can directly create objects by declaring a new object. A class cannot directly create objects, but objects of this class can be created as a property of another class or instantiated by objects from another class. Types of Relationships
Chapter 10 Spatial reference coclass Spatial reference class Spatial reference abstract class
Type inheritance
This diagram illustrates the implicit type inheritance model in the ArcGIS 8.1 component objects. Software interfaces are not duplicated in the child classes. The objects to the left show a sample view of type inheritance. The objects below show a flat view of the objects with their full list of interfaces. The two views are equivalent, but the type inheritance view gives insight into the structural composition of the object model. IRowBuffer IRowBuffer
TM
abstract class
Instantiation
Geodatabase class
Geometry class
Type inheritance
Interface
Associations represent relationships between classes. They have defined multiplicities at both ends. Type inheritance defines specialized classes of objects that share properties and methods with the superclass and have additional properties and methods. Note that interfaces in superclasses are not duplicated in subclasses. Instantiation specifies that one object from one class has a method with which it creates an object from another class. Geodatabase abstract class Geometry abstract class
RowBuffer
coclass
Composition
RowBuffer
Chapter 11 Editor coclass Chapter 12 Network coclass Chapter 13 Raster coclass IRow IRowBuffer IRowEvents IValidate IFeature IFeatureBuffer IFeatureDraw IFeatureEdit IRow IRowBuffer IRowEvents IValidate
class
Composition is a relationship in which objects from the "whole" class control the lifetime of objects from the "part" class. An N-ary association specifies that more than two classes are associated. A diamond is placed at the intersection of the association branches. A multiplicity is a constraint on the number of objects that can be associated with another object. Association and composition relationships have multiplicities on both sides. This is the notation for multiplicities:
1 - One and only one (if none shown, "1" is implied) 0..1 - Zero or one M..N - From M to N (positive integers) * or 0..* - From zero to any positive integer 1..* - From one to any positive integer
Row
Association
1..*
Multiplicity
Row
Editor class
Network class
Raster class
Special Interfaces (Optional) represents interfaces that are inherited by some subclasses but not all. The subclasses list the optional interfaces they implement. (Instance) represents interfaces that are only on specific instances of the class. (<classname>) indicates the name of the helper class required to support this event interface in Visual Basic.
Feature
Feature
IGeoDataset IRasterCatalogTable IConnectionPointLayer IDataLayer IDataLayer2 IDisplayAdmin IGeoDataset IIdentify ILayer ILayerDrawingProperties ILayerEffects ILayerEvents ILayerExtensions A raster layer ILayerInfo combines raster data ILayerPosition and instructions to ILegendInfo IPersistStream visualize, or render, IRasterCatalogLayer
IWorkspaceFactory IWorkspaceFactory2
WorkspaceFactory
IWorkspaceHelper
RasterCatalogTable
WorkspaceHelper
A workspace extension extends the functionality of a workspace
A name object identifies and locates a database or map object and supports methods to instantiate the actual object
Name
The dataset name objects identify and locate datasets within a workspace
The ArcInfoWorkspaceFactory is the entry point to access the geodatabase for ArcInfo coverages and tables
IWorkspaceFactory IWorkspaceFactory2
IName
ArcInfoWorkspaceFactory CadWorkspaceFactory
OLEDBWorkspaceFactory ShapefileWorkspaceFactory
WorkspaceExtension
0..1
Workspace
IDataset IDatasetAnalyze (optional) IDatasetEdit IDatasetEditInfo ISchemaLock (optional) IVersionedObject IVersionedObject2
ArcInfoWorkspaceFactory
IWorkspaceName
Name
ISupportErrorInfo IWorkspaceFactory IWorkspaceFactory2
A workspace is a container of spatial and nonspatial datasets such as feature classes, raster datasets, and tables
IWorkspaceName IWorkspaceName2
WorkspaceName
DatasetName
Dataset
RasterWorkspaceFactory
IDataset IRasterWorkspace IRasterWorkspace2 ISupportErrorInfo IWorkspace
IGxObjectFilter
WorkspaceName
GxFilterRasterDatasets
IMSWorkspaceFactory
IRemoteDatabaseWorkspaceFactory ISetDefaultConnectionInfo ISetDefaultConnectionInfo2
SdeWorkspaceFactory AccessWorkspaceFactory
ILocalDatabaseCompact
IDatabaseCompact (optional) IDatabaseConnectionInfo (optional) IDataset IDatasetContainer IFeatureWorkspace IFeatureWorkspaceAnno (optional) IFeatureWorkspaceManage IFeatureWorkspaceSchemaEdit IGeodatabaseRelease (optional) ISpatialCacheManager ISQLSyntax ITransactions (optional) ITransactionsOptions (optional) IWorkspace IWorkspaceConfiguration (optional) IWorkspaceDomains (optional) IWorkspaceDomains2 (optional) IWorkspaceEdit IWorkspaceEvents IWorkspaceExtensionManager (optional) IWorkspaceProperties (optional) IWorkspaceSpatialReferenceInfo
RasterWorkspace
CadDrawingName
IFeatureDatasetName
IDatasetFileNameStat IRasterDatasetName
RasterDatasetName
TableName
VersionedWorkspace
IEnumConflictClass
EnumConflictClass
A conflict class enumerator returns all classes containing conflicts after performing a reconcile
Workspace
DatasetName
A raster dataset represents an existing dataset stored on disk or in a database in a particular raster format
Workspace
A domain is used to specify the permissible values that a field in an object class may take
RelationshipClassName
ObjectClassName
A versioned workspace supports multiuser editing and multiple representations of features classes and tables in a relational database system
IEnumVersionInfo
Versioning
EnumVersionInfo
IClass IConflictClass ITable ITableCapabilities IVersionedTable
CodedValueDomain
IGeometricNetworkName
TinName
Table
CoverageName
IDatasetName IDatasetNameFileStat IMetadata IMetadataEdit IName INativeTypeInfo IPersistStream IRasterDatasetName
IDataset IDatasetAnalyze IDatasetFileStat IGeoDataset IGeoDatasetSchemaEdit IMetadata IMetadataEdit INativeTypeInfo IRasterBandCollection IRasterDataset IRasterPyramid ISupportErrorInfo ITemporaryDataset IWorldFileExport
RasterDataset
RasterDataset
IGeoDataset IRaster IRasterAnalysisProps IRasterBandCollection IRasterDefaultProps IRasterProps ISupportErrorInfo
A raster is a dynamic, inmemory representation of pixels that derives from a raster data source on disk
IAttributeTable IClass IConnectionPointContainer IDataLayer IDataLayer2 IDataset IDisplayAdmin IDisplayRelationshipClass IDisplayTable IGeoDataset IGeoReference IIdentify ILayer ILayerDrawingProperties ILayerEffects ILayerEvents ILayerExtensions ILayerFields ILayerInfo ILayerPosition ILegendInfo IObjectClass IPersistStream IRasterLayer IRelationshipClassCollection IRelationshipClassCollectionEdit ITable ITableFields ITableSelection
RasterLayer
A raster catalog layer is a special type of layer used to display raster catalogs
RasterCatalogLayer
A raster catalog table is a special type of table used to display multiple raster datasets as a single entity
this data
RasterLayer
IIdentifyObj IRasterIdentifyObj
RasterIdentifyObj
*
ColorSymbol
*
IDisplayAdmin IIdentify ILegendInfo IPersistStream IRasterDisplayProps IRasterRenderer
1..*
A raster renderer is an abstract class that provides the basic tools for raster rendering operations
IFeatureClassName
Raster
A coded-value domain is used to specify a set of permissible values that a field may take
IClone IRangeDomain IPersist
FeatureClassName
ArcInfo coverage
IDifferenceCursor
RangeDomain
ITableSort
IVersionInfo
DifferenceCursor
* A difference cursor returns all the differences between two versions based on a difference type
IDataset IDatasetAnalyze (optional) IDatasetEdit IDatasetEditInfo ISchemaLock (optional)
A CoverageName identifies and locates a dataset object and supports methods to instantiate the actual named object
ICoverageFeatureClassName IDatasetNameFileStat IFeatureClassName INativeTypeInfo
RasterDatasetName
IEnumDataset IEnumRasterBand
Raster
IRasterClassifyColorRampRenderer IRasterClassifyUIProperties IRasterDataExclusion IRasterRendererClassInfo
Raster
RasterRenderer
RasterRenderer
A stretch renderer stretches the values from the dataset along a color ramp
IWorkspaceProperty
WorkspaceProperty
1..*
A range domain is used to specify the legal minimum and maximum values that a field may have
VersionInfo TableSort
A property set is a generic class that is used to hold a set of properties for anything A table sort controls the order in which rows are returned from a table or feature class Version information contains read-only information to describe version properties
IVersionManager IVersionManagerEvents IConflictDisplay IConflictsWindow IConflictsWindow2 IExtension
Dataset
CoverageFeatureClassName
RasterBands
The pixel block is a generic container for a pixel array that can be read from any raster or raster band
IPixelBlock
VersionManager
0..*
IConfigurationKeyword
ConfigurationKeyword
*
Dataset
Dataset
PropertySet
ConflictsWindow
A configuration parameter specifies a physical storage parameter for data created in an ArcSDE database
ConfigurationParameter
IQueryDef
QueryDef
IGeodataSchemaEdit IGeoDataset
IEnumIDs
Geodatabase
EnumIDs
An enumeration of IDs represents a set of object identifiers A table is a collection of rows with attributes stored in columns
IClass ITable ITableCapabilities
A raster dataset name maintains name and other information for a raster dataset
RasterClassifyColorRampRenderer
RasterStretchColorRampRenderer
IRasterUniqueValueRenderer IRasterRendererClassInfo
The raster bands object allows a developer to easily enumerate through a set of raster bands
IClass IDataset IGeoDataset IMetadata IMetadataEdit INativeTypeInfo IObjectClass IRasterBand IRasterDataset IRasterProps IRasterPyramid IRasterTable IRasterTransaction IRawPixels ISupportErrorInfo ITable
A classify renderer divides the data values for a dataset into classes and assigns each class to a specific color
IRasterRGBRenderer IRasterStretch
A CoverageFeatureClassName identifies and locates a feature class in a coverage and is used for obtaining some basic properties of the feature class
The version manager provides a user interface to create and manage version properties
FeatureDataset
The ArcInfoItems object is used to manage the item set, or collection of items in an INFO table
PixelBlock RasterBand
RasterRGBRenderer
A unique value renderer displays each unique value in the dataset using a different color
IRasterGeometryProc
RasterUniqueValueRenderer
RasterBand
IRasterColormap
An RGB renderer compositely draws three bands of a raster dataset, one to each of the red, green, and blue channels of the display
IRasterCursor
A raster geometry proc can be used to perform geometric operations, such as flip, mirror, rotate, and polynomial warping, on a raster
IRasterSdeConnection IRasterSdeServerOperation IRasterSdeStorage ISupportErrorInfo IRasterPicture
RasterGeometryProc
The IArcInfoTable interface is used to access and manage the items in an INFO table
Table
IArcInfoItems IArcInfoItemsEdit
A raster band name maintains name and other information for a raster band
RasterCursor
A raster cursor is a mechanism for iterating through all of the pixel blocks in a raster
IRasterEncoder ISupportErrorInfo
SidEncoder
GeoDataset
A query definition represents a database query on one or more tables or feature classes
ArcInfoItems
IDatasetName IMetadata IMetadataEdit IName INativeTypeInfo IPersistStream IRasterBandName
The Sid encoder compresses a raster dataset into MrSID format A raster colormap provides access to the colormap of a raster band
RasterSdeLoader
RasterPicture
FeatureDataset
IRowBuffer
ISelectionSet ISelectionSet2
SelectionSet
Table
A relationship class represents relationships through embedded foreign keys
IClone IFields IFields2 IFieldsEdit IPersist
The ICoverageFeatureClass interface provides information on an individual feature class of an ArcInfo coverage
FeatureClass
1..*
IArcInfoItem IArcInfoItemEdit
RasterBandName
RasterColormap
A raster defaults environment allows the user to customize raster default behavior
IFormatData IFormatList IFormatTest
A raster SDE loader creates and loads raster data into an SDE database
A raster picture is a lightweight object that can be used to view some raster formats in a simple manner
ArcInfoItem
Fields
Indexes
The ArcInfoItem object represents a field of the INFO table, and is used to create and manage individual fields
IRasterHistogram
SDERasterTableName
IRasterStatistics
RasterHistogram
IRasterDefaultsEnv IRasterDefaultsEnv2
RasterDefaultsEnv
FormatList
IPnt
IRasterRendererMaker
DblPnt RasterFormatInfo
A format list can identify all supported raster formats and provide information about them
RasterRendererMakerDefault
RowBuffer
A row buffer is used for data loading with cursors A query filter restricts the set of rows retrieved from a table
Relationship Class
IRasterFormatInfo
1..*
IClone IField IFieldEdit IModelInfo IPersist
1..*
IClone IIndex IIndexEdit
Field
Index
IObjectLoaderUI IObjectLoaderUIProperties
1..* 0..1
An SDE raster table name maintains name and other information for an SDE raster
RasterStatistics
QueryFilter
Row
ISpatialFilter
SpatialFilter
AttributedRelationshipClass
An attributed relationship class is a table that stores relationships. Many-tomany relationships can be stored in this class
ObjectLoaderUI
GeometryDef
The object loader user interface is the same as that of the ArcMap object loader
IClassHelper
13
FieldError
IDatabaseCompact (optional) IDatabaseConnectionInfo (optional) IDataset IDatasetContainer IFeatureWorkspace IFeatureWorkspaceAnno (optional) IFeatureWorkspaceManage IFeatureWorkspaceSchemaEdit IGeodatabaseRelease (optional) ISpatialCacheManager ISQLSyntax ITransactions (optional) ITransactionsOptions (optional) IWorkspace IWorkspaceConfiguration (optional) IWorkspaceDomains (optional) IWorkspaceDomains2 (optional) IWorkspaceEdit IWorkspaceEvents IWorkspaceExtensionManager (optional) IWorkspaceProperties (optional) IWorkspaceSpatialReferenceInfo
A raster statistics object provides access to pixel statistics from a raster band
Raster format information provides information about a raster format specific to the user interface
The raster renderer maker default object determines the renderer used to display a raster by default
A row is a record in a table. All rows in a table have the same set of fields
IObject IRowSubtypes
Each table has a set of fields that describe the data format of attributes. If a field represents a geometry, GeometryDef specifies its particulars. An index can be optionally specified on a field
ClassHelper
A class helper is an intermediate object used to avoid circular references between an object class and a class extension
IFieldChecker
FieldChecker
Object
ICursor
A spatial filter is a query filter that includes spatial and attribute constraints
IRule
IClassExtension
ObjectClass
*
Rule
Cursor
GeometricNetwork
A feature is a geographic object with a geometric shape
A cursor can iterate over a set of rows in a table or insert new rows
Rule
IConnectivityRule
Rules are associated with feature classes or object classes and are used to validate features or objects
ClassExtension
0..1
Class extension
A class extension is a way for a programmer to add class-wide customization, such as a custom form for data inspection
IEnumFieldError
EnumFieldError
Feature
IFeatureCursor
ConnectivityRule
IRelationshipRule
RelationshipRule
FeatureCursor
Geometric network
IAnnotationFeature IDimensionFeature INetworkFeature INetworkFeatureEvents
IConfirmSendRelatedObjectEvents (optional) IObjectClassExtension IObjectInspector (optional) IObjectClassDescription (optional) IObjectClassEvents (optional) IObjectClassValidation (optional) IRelatedObjectClassEvents (optional) IRelatedObjectClassEvents2 (optional)
ObjectClassExtension
Workspace
See chapter 8, 'Accessing the Geodatabase' IDataset IDatasetAnalyze (optional) IDatasetEdit IDatasetEditInfo ISchemaLock (optional)
Extension
IFlagDisplay IFeatureDraw
FlagDisplay
A flag display maintains the starting point for traces and path findings
0..*
IAttributeRule
NetworkFeature
Network features participate in a geometric network. Each feature is associated with one or many elements in a logical network
DimensionFeature
AnnotationFeature
FeatureClass
EdgeConnectivityRule
AttributeRule
IFeatureClassExtension IFeatureClassCreation (optional) IFeatureClassDescription (optional) IFeatureClassDraw (optional) IFeatureClassEdit (optional) INetworkClassDescription (optional)
FeatureClassExtension
0..1
A feature data converter lets you convert data between geodatabases, shapefiles, and coverages An annotation feature class extension manages the drawing of annotation features
Dataset
See chapter 8, 'Accessing the Geodatabase' IJunctionFlagDisplay
ObjectLoader
INetworkWorkspace INetworkWorkspace2
NetworkAnalystExt
NetworkWorkspace
INetElementClass
JunctionFlagDisplay
IJunctionConnectivityRule IJunctionConnectivityRule2
JunctionConnectivityRule
FeatureDataConverter
IEnumInvalidObject
IJunctionFeature
Feature elements encapsulate the geometry of connection points on complex junction features
IEdgeFeature
JunctionFeature
IFeatureElement IFeatureElementEdit
EdgeFeature
DimensionClassExtension
AnnotationFeatureClassExtension
IObjectClassDescription
Data converter
An object class description helps automate the creation of new object classes
EnumInvalidObject
NetElementClass
A network element class provides access to the IDs of the object classes participating in the network
NetworkAnalysisExt
A network analysis extension manages the parameters found within the Utility Network Analysis toolbar
EdgeFlagDisplay
DimensionShape
*
IRelationship
Relationship
A relationship defines a general association between two objects or features
FeatureElement
ISimpleEdgeFeature ISimpleNetworkFeature
Relationship
IDimensionStyles IPersistStream
DimensionStyles
1..*
IFeatureClassDescription
ObjectClassDescription
A feature class description helps automate the creation of new feature classes
An invalid object enumerator represents a set of objects that failed a data conversion process
IInvalidObjectInfo
Network
Network
IForwardStar
IComplexEdgeFeature IComplexNetworkFeature
ComplexEdgeFeature
IDimensionGraphic
ISimpleJunctionFeature ISimpleNetworkFeature
A simple junction feature has one junction element in the logical network
SimpleJunctionFeature ComplexJunctionFeature
DimensionGraphic AttributedRelationship
0..*
InvalidObjectInfo
The Network object is the logical network associated with a geometric network. It represents the linear connectivity among a set of network features
ForwardStar
A forward star returns all the adjacent elements given a junction and edge element. It is used extensively when writing solvers
ITraceTasks IUtilityNetworkAnalysisExt
UtilityNetworkAnalysisExt
INetElementBarriers INetElementBarriers2
NetElementBarriers
SimpleEdgeFeature
A complex edge feature has one to many edge elements in the logical network A dimension graphic draws dimensions
FeatureClassDescription
A network class description helps automate the creation of new network feature classes
A utility network analysis extension provides trace and path finding capabilities to a Utility Network Analyst toolbar
ISelectionSetBarriers
IEnumNetEID IEnumNetEIDBuilder
SelectionSetBarriers
A complex junction feature has one to many junction and edge elements in the logical network
A simple edge feature has one edge element in the logical network
SimpleRelationship
An attributed relationship stores attributes on a relationship and also represents many-to-many relationships
0..*
DimensionStyle
UtilityNetwork
IStreetNetwork
StreetNetwork
EnumNetEIDArray
INetworkClassDescription
NetworkClassDescription
INetSolver INetSolverWeights
A route measure event geoprocessor facilitates event overlay, dissolve, and concatenation
IMetadata IMetadataEdit
A utility network is a network where flow is directed. You can establish flow direction on this type of network
NetSolver
Network
0..*
ITraceTask ITraceTaskResults
TraceTask
A trace task executes a defined trace or path-finding routine
TraceTask
Dataset
INetworkLoader INetworkLoader2 INetworkLoaderProgress INetworkLoaderProps ISupportErrorInfo
A network solver defines the trace environment before executing one of the trace methods from the trace flow solver
ISupportErrorInfo ITraceFlowSolver ITraceFlowSolver2
NetSolver
ITracePathTaskResults
ISynchronizationHelper
FGDCSynchronizationHelper
The FGDC synchronization helper helps translate dataset properties into metadata properties
RelationshipClass
Table
IRouteMeasureEventGeoprocessor ISupportErrorInfo
SelectionSet
Metadata
XmlPropertySet
IXmlPropertySetEdit IDataset IDatasetAnalyze (optional) IDatasetEdit IDatasetEditInfo ISchemaLock (optional)
MemoryRelationshipClass
A memory relationship class is a type of simple relationship class where the origin and destination classes can be from different workspaces
IFeatureClass (optional) IObjectClass IRelQueryTable IRelQueryTableInfo IRelQueryTableManage IVirtualTable
Dynamic segmentation
RelQueryTable
RouteMeasureGeoprocessor
ILocator ILocatorFullName
NetworkLoader
Locator
A network loader creates a geometric network along with its logical network
TraceFlowSolver
Table
A locator knows how to transform a spatial description into a shape
IRouteLocator INetWeight INetWeightEdit
A trace flow solver performs tracing operations on a logical network A network weight is used to limit tracing in a network and denote the cost of tracing through a network element
The find accumulation task finds the accumulated cost of an upstream trace
FindAccumulationTask FindAncestorsTask
ITracePathTaskResults
FindPathUpstreamTask TraceDownstreamTask
The find path upstream task finds the optimal path based on elements flowing upstream
Dataset
IName
IQueryFilter IQueryFilter2
QueryFilter
RouteMeasureLocator
INetWeightAssociation INetWeightAssociationEdit
NetWeight
INetFlag
NetFlag
NetFlag
A network flag is a location on a network. It is used as input for a network solver
The find ancestors task finds the common ancestors in an upstream trace from two or more flags
The trace downstream task finds all elements that can be reached in a downstream flow from the current flags
ObjectClass RouteMeasureLocator
NetWeightAssociation
The find connected task finds all elements that can be reached from the current flags
FindConnectedTask FindDisconnectedTask
ITracePathTaskResults
TracePathTask
The trace path task finds the optimal path between flag displays
XML property set edit is an alternative to using an XML property set for changing metadata
XmlPropertySetEdit
Name
IClass ITable ITableCapabilities
Table
IDatasetName
IMemoryRelationshipClassFactory
MemoryRelationshipClassFactory
ICursor
ISpatialFilter
SpatialFilter
A RelQueryTable is a table with rows and columns derived from a joined pair of tables
FeatureClass
A route measure locator is a specific kind of route locator that requires a route identifier and one or two measure values
JunctionFlag
EdgeFlag
The find disconnected task finds all elements that cannot be reached from the current flags
TraceUpstreamTask
The trace upstream task finds all elements that can be reached in an upstream flow from the current flags
NetElementDescription
A network element description is a container to hold information about a network element to be used in calls in INetTopologyEdit
DatasetName
IClassSchemaEdit IClassSchemaEdit2 IModelInfo IObjectClass IObjectClassInfo IObjectClassInfo2 ISubtypes IValidation IValidation2
8
An XYEventProperties provides information about an XYEventSource
IXYEventProperties
ObjectClass
XYEventSourceName
A memory relationship class factory manages the memory relationship classes that exist in the application
Cursor
IRelQueryTableFactory
RelQueryTableFactory
RouteEventProperties
IEventSourceErrors IRouteEventSource
RouteEventSource
* *
An edge flag is a network flag that occurs somewhere along an edge. The position is measured as a percent along the edge
The find loops task finds elements that can be reached from more than one direction
FindLoopsTask
IFeatureCursor (optional)
FeatureClass
RelQueryCursor
IName
Name
IRouteMeasurePointProperties
RouteMeasurePointProperties
IRouteLocation ISupportErrorInfo
A route location describes either a precise location along a route or a portion of a route between a from- and to-measure
IRouteMeasurePointLocation IName
RouteMeasureLocation
12 Editing in ArcMap
TM 1..* 1..*
ISnapAgent
IDatasetName
IRouteMeasureLineProperties
XY events
XYEventProperties
IXYEventSource
DatasetName RelQueryRow
RouteMeasureLineProperties
Name
RouteMeasurePointLocation RouteMeasureLineLocation
XYEventSource
IRouteMeasureLineLocation
An XYEventSource is a point feature class with features dynamically generated from coordinates in a table
XYEvent2FieldsProperties
An XYEvent2FieldsProperties specifies the fields needed to generate geometry for an XYEventSource where at least two fields are required
A RelQueryTable name is an object that represents a RelQueryTable. A RelQueryTable can be created from a RelQueryTable name
RelQueryTableName
IRelationshipClassName
RelationshipClassName
ILocatorName
IDatasetName
LocatorName
A route measure locator name refers to a route measure locator
DatasetName
A route event source name object refers to a route event source
IMemoryRelationshipClassName
A memory relationship class name is an object that represents a memory relationship class. A memory relationship class can be created from a memory relationship class name
MemoryRelationshipClassName
RouteMeasureLocatorName
RouteEventSourceName
A geometry environment is a singleton object that stores global variables used by other geometry objects. It lets you create geometry objects from different kinds of input
AffineTransformation2D
IClone IGeometry ITransform2D ISupportErrorInfo
Transformation
Transformation
Transformations are used by spatial reference and geometry transformation objects
Geometry
EditTask
GeometryEnvironment
IClone IGeometry ITransform2D ISupportErrorInfo
A feature is associated with one of these types of geometry: points, multipoints, polylines, or polygons.
IGeometryCollection
GeometryCollection
A geometry collection is a collection of part geometries used to construct a single high-level geometry
A 2D affine transformation defines a two-dimensional affine transformation matrix and is used to create an arbitrary twodimensional transformation
Geometry
*
Geometry
IArea IEnvelope IEnvelope2 IGeometry2 IHitTest IMAware IPersist IPersistStream IProximityOperator IRelationalOperator IZAware
A point is a zero-dimensional geometry. Points are defined with x,y coordinate pairs with optional altitudes, measures, and point IDs.
IClone IConstructGeometryCollection IEnumGeometry IGeometry IGeometry2 IGeometryBag IGeometryCollection IRelationalOperator ISpatialIndex ITopologicalOperator
GeometryBag
Envelope
IConstructMultiPatch IGeometryCollection IHitTest IMAware IMCollection IMultiPatch IPersist IPersistStream IPointCollection IPointIDAware ITransform3D IZAware IZCollection
MultiPatch
documented with 3D geometry objects
IConstructPoint IConstructPoint2 IGeometry2 IHitTest IMAware IPersist IPersistStream IPoint IPointIDAware IProximityOperator IRelationalOperator ITopologicalOperator ITransform3D IZAware
Point
IConstructMultipoint IGeometry2 IGeometryCollection IHitTest IMAware IMCollection IMultipoint IPersist IPersistStream IPointCollection IPointCollection2 IPointIDAware IProximityOperator IRelationalOperator ISpatialIndex ITopologicalOperator ITopologicalOperator2 IZAware IZCollection
IConstructMultiPatch IGeometryCollection IHitTest IMAware IMCollection IMultiPatch IPersist IPersistStream IPointCollection IPointIDAware ITransform3D IZAware IZCollection
3D geometry
*
MultiPatch
IClone IGeometry IGeometry2 IGeometryCollection IMAware IPointCollection IPointIDAware ISupportErrorInfo ITransform2D ITriangleFan IZAware
Spatial reference
The geographic coordinate system defines a coordinate system that describes the positions of features on the earth using latitude and longitude values
IGeographicCoordinateSystem IGeographicCoordinateSystem2 IGeographicCoordinateSystemEdit IPRJSpatialReference ISRPersistStream IClone IPersist IPersistStream IESRISpatialReference ISpatialReference ISpatialReference2 ISpatialReferenceInfo ISupportedErrorInfo
IGeoTransformation
The geotransformation class specifies the methods used by all geographic transformations
GeoTransformation
TriangleFan
A triangle fan is a surface patch consisting of triangle surfaces between two consecutive points connected around a single central point
SpatialReference
The spatial reference is the base for three types of coordinate systems: projected, geogaphic, and unknown The unknown coordinate system is used when the coordinate system is not known or unavailable
IMolodenskyTransformation
The abridged Molodensky transformation uses three parameters (dX, dY, dZ) to convert between geographic coordinate systems (datums)
ICoordinateFrameTransformation
AbridgedMolodenskyTransformation
IGridTransformation
GridTransformation
Grid transformations perform accurate coordinate conversions using a grid, or matrix, of control points held in a file
IExtension
IActiveViewEvents IEditEvents IEditEvents2 IEditLayers IEditor IEditProperties IEditSketch IEditSketch2 IExtension IExtensionAccelerators IExtensionManager IPersist IPersistStream ISnapEnvironment
SnapAgent
Editor
IFeatureSnapAgent
FeatureSnap
Editor
1..*
IEditSketchExtension
Feature snap agents are a class of snap agents that help position features and the edit sketch by snapping them to other features
Point
A multipatch is a threedimensional collection of surface patches; triangle fans, triangle strips, and rings
*
IClone IGeometry IGeometry2 IGeometryCollection IMAware IPointCollection IPointIDAware ISupportErrorInfo ITransform2D ITriangleStrip IZAware
TriangleStrip
A triangle strip is a surface patch consisting of triangle surfaces between three consecutive points
GeographicCoordinateSystem
SpatialReference
IUnknownCoordinateSystem IPRJSpatialReference IProjectedCoordinateSystem IProjectedCoordinateSystem2 IProjectedCoordinateSystemEdit ISRPersistStream
UnknownCoordinateSystem
The coordinate frame transformation object uses seven parameters (dX, dY, dZ, rX, rY, rZ, dS) to convert between geographic coordinate systems (datums)
IGeocentricTranslation
CoordinateFrameTransformation
NADCONTransformation
The NADCON transformation is a grid-based transformation method that converts geographic coordinates between the NAD 1927 and the NAD 1983 datums
Extension
EditSketchExtension
IAttributeWindow
Multipoint
A curve is an abstract segment-based geometry. Curves may be single segments, single paths, a collection of paths, single rings, or a collection of rings
Curve
Segments are the parametric curves between two endpoints. Segments may be linear lines or true nonlinear circular arcs, elliptic arcs, or B zier curves
ICurve2 IProximityOperator ISegment ISegmentID A circular arc is part of a ISegmentM circle. It is commonly used ISegmentZ
Geometry
Segment
Curve
An envelope is the rectangular bounding box of a geometry defined by maximum and minimum coordinate and attribute values
A multipoint is an unordered collection of points. Features with multipoint geometries represent a set of points that share a common set of attributes
IArea IRing
Ring
*
Datum
A projected coordinate system object includes a geographic coordinate system, a projection, a set of projection parameters, and a linear unit
The geocentric translation transformation uses three parameters (dX, dY, dZ) to convert between geographic coordinate systems (datums)
ILongitudeRotationTransformation ILongitudeRotationTransformationEdit
GeocentricTranslation
AttributeWindow
IConflictDisplay IConflictsWindow IConflictsWindow2
IDigitizerButtons IDigitizerSetup
DigitizerExtension
ITopoEditor
Edit sketch extensions override the default edit sketch behavior to provide a custom editing experience for specific feature classes
HARNTransformation
The attribute window is the ArcMap editor's attribute editing dialog box
ConflictsWindow
TopoEditor
The digitizer extension allows the ArcMap editor to work with a digitizing board and puck The topological editor extension enables the ArcMap editor to perform shared geometry editing
IEditSelectionCache IEditSelectionCache2
Projection
The longitude rotation transformation converts between two prime meridians by applying a shift to the longitude values
IMolodenskyTransformation
LongitudeRotationTransformation
The HARN transformation is a highly accurate grid-based transformation method that converts geographic coordinates between the NAD1983 datum and the HARN readjustments (used in the United States)
Path
Segment
IConstructLine ILine ILine2
IArea IRing
Ring
*
CircularArc
Line
IEllipticArc IConstructEllipticArc
EllipticArc
IBezierCurve IConstructBezierCurve
IConstructCurve IGeometry2 IGeometryCollection IHitTest IMAware IMSegmentation IMCollection IPersist IPersistStream IPointCollection IPointIDAware IPolycurve IPolycurve2 IProximityOperator IRelationalOperator ISegmentCollection ISpatialIndex ITopologicalOperator ITopologicalOperator2 IZ IZAware IZCollection
Ray
A ray is an infinite one-dimensional line defined by an origin point and a three-dimensional direction of infinite extension from the origin
IClone ISupportErrorInfo IVector IVector3D
Vector3D
Sphere
A sphere is a three-dimensional surface that is a specified radius from a central origin point
A 3D vector has a specific direction and magnitude, but no fixed location. A 3D vector can be used to define directions and axes
A datum represents a reference system for latitudelongitude coordinates and is defined by a spheroid and the spheroid's position relative to the center of the earth
AngularUnit
A projection object specifies the mathematical transformation to convert between geographic and planar coordinates
The Molodensky transformation uses three parameters (dX, dY, dZ) to convert between geographic coordinate systems (datums)
MolodenskyTransformation
ICommand ISnappingWindow ISpatialReferenceInfo
EditSelectionCache
An edit selection cache stores the selection for fast hit testing
IPositionVectorTransformation
Polycurve
The angular unit specifies the measurement units used in a geographic coordinate system
Parameter
The position vector (Bursa-Wolf) transformation object uses seven parameters (dX, dY, dZ, rX, rY, rZ, dS) to convert between geographic coordinate systems (datums)
PositionVectorTransformation
SnappingCommand
IFeatureCache IFeatureCache2
SpatialReferenceInfo
The snapping command is the ArcMap editor's snapping window where snap agent properties are set
ISketchOperation ISketchOperation2
BezierCurve
Polycurve
IArea IPolygon IPolygon2
A ring is a closed path; the begin and endpoints are the same. Rings make up polygons
IMSegmentation2 IPolyline IPolyline2
Spheroid
The parameter can be used to define and modify the values for specific properties for a projected coordinate system
Spatial ReferenceEnvironment
The spatial reference info retrieves information about a spatial reference object
SketchOperation
IObjectInspector
FeatureCache
IESRISpatialReference
ESRISpatialReferenceInfo
SketchTool
FeatureInspector
The feature inspector is the control inside the attributes dialog box that enables attribute editing
The sketch tool is the editor's main tool for creating an edit sketch
IEditEvents2
Polyline
Polygon
A line is a straight segment between two points. Lines are used for straight constructions, such as a road segment or a parcel boundary
An elliptic arc is part of an ellipse. It is used for the geometry of a transitional feature such as a highway ramp
A B zier curve is a parametric curve defined by a set of third-order polynomials through four control points
The spheroid object models the approximate shape of the earth's surface
PrimeMeridian
LinearUnit
CompositeGeoTransformation
The ESRI spatial reference info provides methods to import and export components to and from spatial reference objects
IGeoTransformationOperationset ISupportErrorInfo
EditEvents2
EditEvents2 enables Visual Basic developers the opportunity to respond to the events grouped under IEditEvents2 fired by the Editor object
GeoTransformationOperationSet
A polyline is an ordered collection of paths that can be disjoint or connected. Polylines are used to represent the geometry of all linear features
A polygon is a collection of rings that are partially ordered by their containment relationship. Polygons are used to represent the geometry of areal features
10
A prime meridian object specifies the line of zero longitude for the coordinates in a geographic coordinate system.
The linear unit specifies the measurement units used in a projected coordinate system.
The composite geotransformation allows you to set up a transformation path between two datums by defining two or more geotransformation objects and their associated direction
The geotransformation operation set stores a set of geographic transformation operators (a geotransformation object and its direction)
11
ESRI ArcObjects is the development platform for the ArcGIS family of applications such as ArcMap, ArcCatalog, and ArcScene. The ArcObjects software components expose the full range of functionality available in ArcInfo, ArcEditor, and ArcView to software developers.
Copyright 2001 ESRI. All right reserved. ESRI, ArcView, and the ESRI globe logo are trademarks of ESRI, registered in the United States and certain other countries; registration is pending in the European Community. ArcGIS, ArcObjects, ArcCatalog, ArcScene, ArcInfo, ArcEditor, ArcToolbox, 3D Analyst, Street Map USA, and ArcMap are trademarks of ESRI and www.esri.com is a service mark of ESRI.
ArcObjects is the development platform for ArcGIS Desktop, a suite of GIS software systems: ArcInfo, ArcEditor, and ArcView. These systems serve GIS professionals with a spectrum of geographic data management, spatial editing, and cartographic visualization functionality. The ArcGIS Desktop systems each contain a configuration of applications, such as ArcCatalog, ArcMap, ArcToolbox, and ArcScene, and can host a variety of extension products such as Spatial Analyst, Geostatistical Analyst, 3D Analyst, and others. This object model diagram shows some of the extensions created to the ArcGIS Desktop systems. These are the ArcObjects components documented in supplemental electronic chapters of Exploring ArcObjects. You will find updates to ArcObjects developer resources at www.esri.com/arcobjectsonline.
Diagram key
Inbound interface Outbound interface
Types of Classes An abstract class cannot create new objects; it is a specification for instances of subclasses (through type inheritance.) A coclass can directly create objects by declaring a new object. A class cannot directly create objects, but objects of this class can be created as a property of another class or instantiated by objects from another class. Types of Relationships Chapter 14 3D Analyst coclass Chapter 15 StreetMap coclass Chapter 16 Geocoding coclass
Type inheritance
This diagram illustrates the implicit type inheritance model in the ArcGIS 8.1 component objects. Software interfaces are not duplicated in the child classes. The objects to the left show a sample view of type inheritance. The objects below show a flat view of the objects with their full list of interfaces. The two views are equivalent, but the type inheritance view gives insight into the structural composition of the object model. IRowBuffer IRowBuffer 3D Analyst class StreetMap class Geocoding class
TM
abstract class
Instantiation
Type inheritance
Interface
Associations represent relationships between classes. They have defined multiplicities at both ends. Type inheritance defines specialized classes of objects that share properties and methods with the superclass and have additional properties and methods. Note that interfaces in superclasses are not duplicated in subclasses. Instantiation specifies that one object from one class has a method with which it creates an object from another class.
RowBuffer
coclass
Composition
RowBuffer
IRow IRowBuffer IRowEvents IValidate IFeature IFeatureBuffer IFeatureDraw IFeatureEdit IRow IRowBuffer IRowEvents IValidate
class
Composition is a relationship in which objects from the "whole" class control the lifetime of objects from the "part" class. An N-ary association specifies that more than two classes are associated. A diamond is placed at the intersection of the association branches. A multiplicity is a constraint on the number of objects that can be associated with another object. Association and composition relationships have multiplicities on both sides. This is the notation for multiplicities:
1 - One and only one (if none shown, "1" is implied) 0..1 - Zero or one M..N - From M to N (positive integers) * or 0..* - From zero to any positive integer 1..* - From one to any positive integer
Row
Association
1..*
Multiplicity
Row
Special Interfaces (Optional) represents interfaces that are inherited by some subclasses but not all. The subclasses list the optional interfaces they implement. (Instance) represents interfaces that are only on specific instances of the class. (<classname>) indicates the name of the helper class required to support this event interface in Visual Basic.
Feature
Feature
ArcCatalog extensions
A locator is an object that can create geometric descriptions of locations from non-spatial descriptions of locations
IGxDatabaseExtension
GxDatabaseExtension
See Chapter 7, 'Working with the Catalog'
GxObject
See Chapter 7, 'Working with the Catalog'
Name
See chapter 8, 'Accessing the Geodatabase'
IAttachedLocator ISupportErrorInfo
AttachedLocator
Locator
ILocatorUI
IRowBuffer
Geodatabase extensions
IClassExtension
RowBuffer LocatorUI
ClassExtension GxGeocodingServiceExtension
A GxGeocodingServiceExtension extends ArcCatalog to display the contents of database locator workspaces
GxLocator
LocatorNameEnumerator
LocatorName
AddressLocator
ILocatorManager ISupportErrorInfo
LocatorManager
0..*
ILocatorWorkspaceName ISupportErrorInfo
An ESRI address locator is an address locator that uses the ESRI geocoding engine
AddressLocatorUI
A locator manager opens locator workspaces and returns attached locators from datasets
A locator workspace name object is a lightweight object that represents a locator workspace
ILocatorAttach ILocatorWorkspace ISupportErrorInfo
LocatorWorkspaceName
Row
IConfirmSendRelatedObjectEvents (optional) IObjectClassExtension IObjectInspector (optional) IObjectClassDescription (optional) IObjectClassEvents (optional) IObjectClassValidation (optional) IRelatedObjectClassEvents (optional) IRelatedObjectClassEvents2 (optional)
ObjectClassExtension
See Chapter 8, 'Accessing the Geodatabase'
IGxObjectFactory
GxObjectFactory
See Chapter 7, 'Working with the Catalog'
GxNewLocator
ESRIAddressLocator
Object
See Chapter 8, 'Accessing the Geodatabase' IGeocodingIndexCompute IRelatedObjectClassEvents
LocatorWorkspace
A locator workspace stores locators and locator styles
IReferenceDataTables ISupportErrorInfo
IDatabaseLocatorWorkspace
DatabaseLocatorWorkspace
An ESRI FDO address locator is an ESRI address locator that uses feature-data-object data sources as reference data
ESRIFDOAddressLocator
Geocoding
IEnumReferenceDataTable ISupportErrorInfo
GeocodingIndexClassExtension
A geocoding index class extension in an object class extension for automatically maintained geocoding indexes
GxLocatorFactory
The GxLocatorFactory extends ArcCatalog to display the contents of local locator workspaces
GxObjectContainer
See Chapter 7, 'Working with the Catalog'
ReferenceDataTableEnumerator
Feature
See Chapter 8, 'Accessing the Geodatabase'
IFeatureClassExtension IFeatureClassCreation (optional) IFeatureClassDescription (optional) IFeatureClassDraw (optional) IFeatureClassEdit (optional) INetworkClassDescription (optional)
FeatureClassExtension
See Chapter 8, 'Accessing the Geodatabase'
IGxObjectFilter
GxObjectFilter
See Chapter 7, 'Working with the Catalog'
GxLocatorFolder
A database locator workspace is a locator workspace that resides in an ArcSDE database A local locator workspace is a locator workspace that resides on your local file system
IReferenceDataFile ISupportErrorInfo
ILocalLocatorWorkspace
A locator style is a template that you can use to create new locators
IClone ILocator ILocatorStyle ISupportErrorInfo
LocalLocatorWorkspace
A StreetMap address locator is an ESRI address locator that uses StreetMap data as reference data
StreetMapAddressLocator
A reference data table enumerator contains an enumeration of reference data tables used by a locator
A geocoding index object is a custom object that comprises automatically maintained geocoding indexes
IGeocodedFeatureClass IRelatedClassEvents
IGxLocatorFilter
GeocodedFeatureClassExtension
GxFilterGeocodingServices
A GxFilterGeocodingServices is a GxObjectFilter that you can use to allow users to browse for geocoding services
ReferenceDataTable
1..*
A geocoded feature class extension is a feature class extension for automatically maintaining geocoded feature classes
LocatorStyle
IEnumLocator ISupportErrorInfo
0..*
LocatorEnumerator
A reference data table describes a feature-data-object data source used as reference data by a locator
IPropertySet
GenericLocatorStyle
ESRIAddressLocatorStyle
An ESRI address locator style is a locator style that you can use to create new ESRI address locators
IEnumReferenceDataIndex ISupportErrorInfo
ReferenceDataIndexEnumerator
IEnumReferenceDataField ISupportErrorInfo
A generic locator style is a locator style that you can use to define properties for your own custom locators
IReferenceDataTables
A reference data index enumerator contains an enumeration of reference data indexes 0..*
ReferenceDataFieldsEnumerator
ArcMap extensions
IExtension
The find address object extends the find dialog to allow users to geocode addresses
IFinder ILocatorExtensionEvents
Extension
1..*
IReference-DataField (Optional)IReferenceDataFieldEdit ISupportErrorInfo
FindAddresses
ESRIFDOAddressLocatorStyle
IReferenceDataFile
StreetMapAddressLocatorStyle
ReferenceDataIndex
ReferenceDataField
An ESRI FDO address locator style is a locator style that you can use to create new ESRI FDO address locators
A StreetMap address locator style is a locator style that you can use to create new StreetMap address locators
A reference data field describes a field in a reference data table that contains address information
LocatorExtension
IAddressFindData
AddressFindData
15
The locator extension extends ArcMap to manage a set of locators in a ArcMap document
An address find data object represents a candidate for an address found using the find dialog
3D Analyst objects
IApplication IDockableWindowManager IExtensionManager IMultiThreadedApplication IObjectFactory ISxApplication IVBAApplication IWindowPosition
Application
See Chapter 3, 'Customizing the User Interface'
The triangulated network object is used for surface modeling and other forms of spatial analysis
Tin
TM
SxDocument
SxDocument represents the scene document that can be persisted to disk Nodes are the most basic element of a TIN
ITinNode
WorkspaceFactory
See Chapter 8, 'Accessing the Geodatabase'
IGxObjectFactory IGxObjectFactoryMetadata
GxObjectFactory
See Chapter 7, 'Working with the Catalog'
GxObject
IActiveViewEvents IBasicMap IPersistStream IScene ISelectionEvents
ITinTriangle
ITinEdge
Scene
TinNode
TinTriangle
TinEdge
IGxObjectContainer IGxPasteTarget
StreetMapNativeType
StreetMapWorkspaceFactory
GxObjectContainer
GxStreetMapFactory
IGxCachedObjects IGxDataset IGxObject IGxObjectEdit IGxObjectInternalName IGxObjectProperties IGxObjectUI IGxObjectContainer IGxThumbnail IMetadata IMetadataEdit INativeTypeInfo IObjectClassSchemaEvents
Non-graphic layers are used to view data other than primitive graphics. Examples include feature, raster, TIN, CAD, and IMS layers
Triangles are formed by connected nodes and represent areas A container for recording data and events that occur in a scene
IActiveViewEvents IDisplay3D ISceneGraph ISceneGraphEvents ISceneGraphEventsDisp ISceneRendererEvents
IGxObjectFilter
GxObjectFilter
See Chapter 7, 'Working with the Catalog'
ILayer IGeoDataset
GxDataset
See Chapter 7, 'Working with the Catalog'
Layer
SceneGraph
1..*
RasterAnalysis
Controls analysis environment properties like extent, cellsize, mask, and output workspace
IExtension
Extension
See Chapter 3, 'Customizing the User Interface'
GxFilterStreetMapFeatureClasses
IExtensionConfig
GraphicsLayer3D
3DProperties is a layer extension that controls how a layer gets viewed in 3D. Different 3DProperties classes are implemented for different layer types
ICamera I3DProperties IDataLayerExtension IPersist IPersistStream
SceneViewer
RasterInterpolation Op
IRasterAnalysisEnvironment IRasterMakerOp ISupportErrorInfo
StreetMapExtension
GxStreetMapDataset
RasterMakerOp
The StreetMap extension extends an application to provide access to StreetMap data sources as feature classes
Camera Basic3DProperties
The camera controls the perspective of a 3D view TM
IMathSupportOp IRasterAnalysisEnvironment
16
RasterMathSupportOp
Feature3DProperties
Raster3DProperties
Tin3DProperties
3D Analyst
IMessageDispatcher
Provides basic aritmetic operators such as addition, subtraction, and floating point truncation
RasterReclassOp
MessageDispatcher
14
The MessageDispatcher controls navigation ability and cancel tracking while in custom code loops
The 3D Analyst extension object. It is used for licensing and to obtain global raster settings
DddEnvironment
RasterSurfaceOp