Tracking Event Layer Keyframe Import


Accepting a feature layer or standalone table with attributes defining the position of and time of an event (such as the location of an airline), and a ID fieldname which will link occurances of the same group (such as the path of an airplane with a flight ID), as well as a layer which to animate, an ArcScene animation which controls moving objects representing these events through the locations will be built.

Additional parameters control the filtering of events via their selection or time range, a height offset and\or z conversion, and how the layer rotates through these locational changes.

After the events are imported as layer keyframes and grouped by ID into animation tracks, a designated layer is cloned and added into a group layer for each feature group (such as an airplane flight). Therefore, each group of events are bound to a layer animation track which defines how the feature in this animated layer will move over the course of the animation, or event time range.

In other words, consider a group of point features in a feature class, all possessing a time stamp for when the event occured. All features are grouped by a common ID, are defined at different locations, and include a time stamp. Looking at these grouped features within a featureclass one at a time in the the order and sequence of their time stamps would demonstrate their movement along a path. In this way, for example, airplane flights could be tracked and stored. This tool will allow the import of these features (or as defined in a standalone table, instead), into ArcScene animation tracks. Programmatically, this sample aims to demonstrate how animation keyframes, in this case, layer keyframes, can be created and added to animation tracks.

How to use:

    Steps for adding a command/tool from a DLL:

  1. Register the DLL: sxTrackingEventImport.dll. You can register a DLL on Windows by typing in the Start Menu\Run dialog box 'regsvr32 ' and the path to the dll file.
  2. In the Customize dialog, click on 'Add from file', and browse to select 'sxTrackingEventImport.dll'.
  3. Under the Commands tab, find the '3D Analyst Developer Samples (Animation)' and drag the 'Point Tracking Animation Import' command onto a toolbar or menu. Dismiss the Customize dialog.

    Using the Tool:

  1. Start ArcScene and load the layers of interest. Run the 'Point Tracking Animation Import' command.
  2. Choose the 'Tracking Point Layer' from which to import the layer keyframes. Select the field names which specify:

    * the field with the date\time stamp in the (mm/dd/yy hh:mm:ss) format

    * the 'Event Group ID Field' - all features\keyframes will be grouped according to the occurances of these values- such as an airline flight number

    * Position of the event- specify to use either the feature geometry itself, or (as in the case of a standalone table) the fields where the location is defined

    * Height- specify to use either the geometry or an attribute for the Z value of the event; Z offset and conversion can also be specified

    * Time Range- the full range of records, or those records within a specific time range can be imported

    * Animation\rotation- selecting the 'Minimize rotation between keyframes' option will set the azimuth property for each keyframe based on its and the next event in the group's location. This will rotate the direction the layer is pointing along the path. However, for an path which moves through various postions that should not be considered in factoring the azimuth, such as a flight from LA to NY to Miami which should not be turning towards Miami until reaching NY, selecting the 'Blend between keyframes' option will add a duplicate keyframe for each event with the last azimuth position so that the rotation effect is not consider throughout the entire path, but from location to location.

    * Layer to animate- select a layer which will be cloned and bound to each animation track created (ie. a CAD drawing of a plane)

    * # of tracks to import- a maximum number of tracks to be created can be specified for efficency

    Note: since the sorting of a string field such as the specified date\time stamp field will put the date "12/31/02 22:00:00" before "12/31/02 3:00:00", it is suggested to limit the import records by applying and using a selection of the input source which can be successfully sorted by date. Additional, be aware of the time range of the imported records, since the speed in which the animation appears is proportional to the time range of the input data. Features representing events over several days, for example, may take an exceptional amount of time to animate in ArcScene. Again, a selection to the input data may be useful.


Requires: An ArcScene session with a properly formatted point layer with a temporal attribute, and a layer which to bind to the animation tracks and animate.

Difficulty: Beginner

Visual Basic
File Description
basTrackingImport.bas A module containing the 'ImportTrackingPointsToLayerKeyframes' function and other supporting routines.
basTrackingEventImportTool.bas A module to format the parameters for, and run, the 'ImportTrackingPointsToLayerKeyframes' command.
frmPTTrackingImport.frm The main dialog for the command.
PTTrackingImportCMD.cls ICommand implementation for the command.
3D Analyst Developer Sample utilties This project also references shared code located in Visual Basic code modules. To compile this project, these files are necessary in the location: '<ARCGIS INSTALL PATH > \ArcObjects Developer Kit\Samples\3D Analyst\Utilities\ '.

Key CoClasses: AnimationTrack
Key Interfaces: IAnimationTrack, IKeyframe, IAnimationTracks
Key Members: IAnimationTrack::InsertKeyframe