EDN Code Exchange

Updated Feb 09, 2010
Samples

Editor Log

Description:

The purpose of the Editor Assistant is to give users a method for storing editing environments. Once stored, these environments can be used to quickly execute editing processes in ArcMap. For instance, when the task is to create a new building, the user needs to set the target layer, the edit task, the snapping environment, and activate the Sketch Tool. By storing these settings in an edit environment, everything can be set with a single button click. Editing environments can consist of one or all of the following settings: current tool or command, current task, target layer/subtype, snapping environment, selectable layers, and visible layers.

Within this sample, editing environments are stored and executed as "Steps". Steps can be stored and executed in sequence to form a "Procedure". For instance, the Procedure to split a parcel might consist of steps to select the parcel, split with the cut polygon task, and update attributes. Steps and Procedures can be stored with folders to allow for quicker access. At this point the sample does not have any methods to save steps outside of an ArcMap session, but they will persist in a map document when saved. To share a set of steps and procedures you will need to share the map document they are stored in.

Refer to the Editor Log document found in the same directory as the code for this sample for more infomation on how to use the sample.
Products:

ArcEditor: VB6

Platforms: Windows

Requires: An edit session

Minimum ArcGIS Release: 9.0

How to use:
  1. Click on the _Install.bat file in the directory for this sample to register all components in their appropriate categories. After running the batch file, start ArcMap.
  2. Load editable data into ArcMap and begin editing (click Start Editing on the Editor pulldown).
  3. Click on the Log tab on the Table of Contents.
  4. Click on the Add Folder button at the bottom of the tab to create a new folder. Steps and Procedures must live inside a folder, so you need to create at least one top level folder.
  5. Right click on the folder you just added and select the Add Procedure option. Type in the name of the procedure you would like to add and click the OK button.
  6. Create the edit environment you would like to save by activating the appropriate tool, setting the task, setting the target layer, setting the selectable layers, etc. Right click on the Procedure you created and select the Add Step option. Give your step a name and check off the options you would like to store. Click the OK button when finished.
  7. Add additional Steps to the Procedure as necessary.
  8. To execute a Step, simply double click on it, or select it and click on the Execute button.
  9. To execute a Procedure, double click on it, or select it and click on the Execute button. Doing this will execute the first Step in the Procedure. When you have finished the Step, click on the Next Step button (the Execute button is rename to Next Step when executing a Procedure) and the next Step will be executed. Continue until the last Step has been executed and then click on the Finish button.

VB6
File Description
frmEditorLog.frm Form holding the contents of the Editor Log tab.
frmResources.frm Form holding icons used for the buttons.
frmStep.frm Form for adding additional edit environments (Steps).
modGlobals.bas Basic module containing global routines.
EditorLogEnv.cls Class for storing the edit environments (Steps).
EditorLogExt.cls Extension class for the Editor Log.
EditorLogNextStep.cls Command class for executing the next step in a Procedure.
EditorLogWinCmd.cls Command for bringing up the Editor Log Dockable Window.
EditorLogWindow.cls Class containing the dockable window code for the Editor Log.
EditorLogPrj.vbp The project file for the Editor Log Extension.
EditorLog.doc Additional documentation for the sample.



Key CoClasses:Editor, FeatureLayer
Key Interfaces: IEditLayers, IEditor, IFeatureLayer, ILayer, ISnapEnvironment
Key Members:IEditLayers::CurrentLayer, IEditor::CurrentTask, IFeatureLayer::Selectable, ILayer::Visible, ISnapEnvironment::SnapAgent