Applies To | |||
Product(s): | MicroStation | ||
Version(s): | V8, V8i | ||
Environment: | N\A | ||
Area: | Reference | ||
Subarea: | N\A | ||
Original Author: | Bentley Technical Support Group | ||
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
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