General#

The ArcFM and ArcGIS platform provides multiple extension points and while we cannot address them all we have included abstract implementations for the most common extensions made while working with these software packages.

Class Description
BaseMxCommand Creating a button within the ArcMap application.
BaseGxCommand Creating a button within the ArcCatalog application.
BaseExtension Creating an extension within the ArcMap application.
BaseTool Creating a tool within the ArcMap application.
BaseAbandonAU Creating a custom trigger for abandoning features.
BaseAttributeAU Creating a custom trigger for a field when the object is created, updated or deleted.
BaseSpecialAU Creating a custom trigger for the object when it is created, updated or deleted.
BaseRelationshipAU Creating a custom trigger for when a relationship is created, updated or deleted.
BasePxSubtask Creating a sub-routine that can be assigned to tasks within the Process Framework.
... There are many more that haven’t been listed for the sake of brevity.

Model Names#

The ArcFM Solution provides a way to identify ESRI tables and fields based on a user defined key that are call Class, Field and Database Model Names. These model names can be for cross-database or generic implementations. However, they must be accessed using a singleton object, which tends to lead to the creation of class helper.

In order to simplify the accessing of model name information, several extension methods were added to the ESRI objects that support ArcFM Model Names.

The extension methods for the IFeatureClass and ITable interfaces that have been added.

Method Description
IsAssignedClassModelName Used to determine if a class model name(s) has been assigned.
IsAssignedFieldModelName Used to determine if a field model name(s) has been assigned.
GetRelationshipClass Used to locate the relationship that has been assigned the class model name(s).
GetRelationshipClasses Used to gather a list of the relationships that has been assigned the class model name(s).
GetField Used to locate the IField that has been assigned the field model name(s).
GetFields Used to gather a list of of the IField objects that has been assigned the field model name(s).
GetFieldIndex Used to locate the field index that has been assigned the field model name(s).
GetFieldIndexes Used to gather a list of all of the field indexes that has been assigned the field model name(s).
GetFieldName Used to locate the field name that has been assigned the field model name(s).
GetFieldNames Used to gather a list of all of the field names that has been assigned the field model name(s).
... There are many more that haven’t been listed for the sake of brevity.

A list of extension methods for the IWorkspace interface that have been added.

Method Description
IsAssignedDatabaseModelName Use to determine if the database model name(s) has been assigned.
GetFeatureClass Used to obtain the IFeatureClass that has been assigned the class model name(s).
GetFeatureClasses Used to obtain all of the IFeatureClass tables that have been assigned the class model name(s).
GetTable Used to obtain the ITable that has been assigned the class model name(s).
GetTables Used to obtain all of the ITable tables that have been assigned the class model name(s).
... There are many more that haven’t been listed for the sake of brevity.