Learning MicroStation VBA

Chapter 25: Level Events

Overview

Levels are so important to the organization of a design file that an interface is provided just for Level events.

The ILevelChangeEvents interface exposes only one event which handles these twelve types of changes:

  • AfterChangeActive

  • AfterCreate

  • AfterDelete

  • BeforeChangeActive

  • BeforeDelete

  • ChangeAttribute

  • ChangeCode

  • ChangeDisplay

  • ChangeName

  • ChangeName

  • ChangeParent

  • TableRedo

  • TableUndo

Although the change type names are self-explanatory, we had better look at the actual event before continuing.

Private Sub ILevelChangeEvents_LevelChanged( _        ByVal ChangeType As MsdLevelChangeType, _        ByVal TheLevel As Level, _        ByVal TheModel As ModelReference)        End Sub

Three parameters are passed to us in the LevelChanged event. The first gives us the type of change. This is provided in the form of an enumeration constant. Values for the ChangeType parameter are:

MsdLevelChangeType.msdLevelChangeAfterChangeActive = 9MsdLevelChangeType.msdLevelChangeAfterCreate = 2MsdLevelChangeType.msdLevelChangeAfterDelete = 3MsdLevelChangeType.msdLevelChangeBeforeChangeActive = 17MsdLevelChangeType.msdLevelChangeBeforeDelete = 18MsdLevelChangeType.msdLevelChangeChangeAttribute = 8MsdLevelChangeType.msdLevelChangeChangeCode = 5MsdLevelChangeType.msdLevelChangeChangeDisplay = 7MsdLevelChangeType.msdLevelChangeChangeName = 4MsdLevelChangeType.msdLevelChangeChangeParent = 6MsdLevelChangeType.msdLevelChangeTableRedo = 15MsdLevelChangeType.msdLevelChangeTableUndo = 14<a name="955"></a><a name="beginpage.981473AD-88F1-4889-AECE-961CF675C3BF"></a>

Let's begin by using a function to convert the constant provided to a string and a simple Debug.Print statement. This allows us to implement the interface and experiment with it to see when and how Level events are handled.

Implements ILevelChangeEvents'before change active shows the old level name   Private Sub ILevelChangeEvents_LevelChanged( _        ByVal ChangeType As MsdLevelChangeType, _        ByVal TheLevel As...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Depolarizers
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.