Level overrides key-in with nested references


       
  Applies To     
       
  Product(s): MicroStation  
  Version(s): V8, V8i  
  Environment:  N\A  
  Area:  Reference  
  Subarea:  N\A  
  Original Author: Bentley Technical Support Group  
       

 

Using Key-In to Level Set Overrides

Level overrides key-in for Active File and attached Reference File:

LEVEL SET OVERRIDE COLOR # file:all all

 

For Nested Reference files you need to set several things to make the Key-In work correctly.

Set variable:

MS_LEVEL_EDIT_NESTED_ATTACHMENT_LEVELS = 1

Set key-in "set refleveloverrides on"  this will retain your settings.

Set key-in:  level set override color # file:*.*->*.* all
(# has to be set to color desired)

If you wanted all the Level Overrides for nested References to change to the color red, it would be: 
level set override color 3 file:*.*->*.* all

If you want to target specific levels, the key-in would be:
level set override color # file:*.*->*.* level_name

If there was a nested level called 'Walls' and you want to change the override color to green, the key-in would be:
level set override color 2 file:*.*->*.* Walls



Solution

If the Key-in doesn't work - use macro

The following code proves the concept in VBA:

Sub ChangeOverrideColor()
' KeyinArguments is Bentley variable to transfer arguments into VBA
' for this method it is used to enter file, level and color information:
' key-in vba run <(><<)>module>.ChangeOverrideColor [[<(><<)>filefilter>
]<(><<)>levelfilter> ]<(><<)>colornumber>

' Consider this a PROOF OF CONCEPT only, without warranty!

Dim Arguments() As String
Dim LevelFilter As String
Dim FileFilter As String
Dim ColorNr As Long

Arguments() = Split(KeyinArguments, " ")
ColorNr = Val(Arguments(UBound(Arguments)))
If UBound(Arguments) > 0 Then LevelFilter = Arguments(UBound(Arguments)
- 1) Else LevelFilter = "*"
If UBound(Arguments) > 1 Then FileFilter = Arguments(UBound(Arguments) -
2) Else FileFilter = "*"

ChangeOverrideColor_Models ActiveModelReference, ColorNr, LevelFilter,
FileFilter
RedrawAllViews

End Sub

Private Sub ChangeOverrideColor_Models(CurrentModel As ModelReference,
ColorNr As Long, LevelFilter As String, FileFilter As String)
Dim CurrentAttachment As Attachment

ChangeOverrideColor_Levels CurrentModel, ColorNr, LevelFilter,
FileFilter
For Each CurrentAttachment In CurrentModel.Attachments
ChangeOverrideColor_Models CurrentAttachment, ColorNr, LevelFilter,
FileFilter
Next CurrentAttachment

End Sub

Private Sub ChangeOverrideColor_Levels(CurrentModel As ModelReference,
ColorNr As Long, LevelFilter As String, FileFilter As String)
Dim CurrentLevel As Level

For Each CurrentLevel In CurrentModel.Levels
If CurrentLevel.Name Like LevelFilter _
And CurrentModel.DesignFile.Name Like FileFilter _
Then CurrentLevel.OverrideColor = ColorNr
Next CurrentLevel

End Sub