Recently on bentleyuser.org...


About bentleyuser.org

© bentleyuser.org 2019

Printed from www.bentleyuser.org © TMC Publications (UK) Ltd 2010

MicroStation 201 - Level Symbology Pt 2
by Karen Fugle - 22 October 2004

What's this, I thought we'd finished?
So did I but then I woke up at 4am remembering the bit I forgot to put in! The Update Levels from Library tool!

So what does the Update Levels From Library tool do?
Precisely what it says. If you have a file selected from the tree in Level Manager and select the Update Levels from Library tool it will reset all your levels to match the original definition in the source library.



Why would I want to do this?
Several reasons, your office Cad Manager might have added some extra levels to the dgnlib that you may need to use immediately, or you may wish to alter the Bylevel appearance (if you are not locked from doing so) of elements temporarily or maybe, just maybe, you've made an absolute mess of the symbology and you need to tidy it up to company standard!
Of course you probably just want to update your Bylevel settings, as you would still want your override settings to look how you want them too.

Can I restrict what gets updated from the dgnlib source?
Yes you can. There are a few configuration variables you can use to get the desired results.

Restricting Users from editing levels:
Have you set your company standards as Bylevel?
Then Use MS_LEVEL_EDIT_ATTRIBUTE_LIST to restrict users from editing the ByLevel defaults.

MS_LEVEL_EDIT_ATTRIBUTE_LIST = overridesymbology
This setting defines the options you want editable - so to restrict users from editing the Bylevel settings you need to say ""only edit override symbology attributes please.""

In fact your list will probably say more than just overridesymbology as your users will probably need to edit other columns in Level Manager too. To do this you simply add the options, separated by a coma. Mine says;
MS_LEVEL_EDIT_ATTRIBUTE_LIST= OverrideSymbology,GlobalDisplay,GlobalFreeze,Lock,Plot

Restricting Users from updating levels:
MS_LEVEL_SYNC_ATTRIBUTE_LIST = Bylevelsymbology
Bylevel symbology is what I want updated when I synchronise (match) levels from the dgnlib using the Update Levels from Library tool. This is because all my company standards on colour are set to Bylevel. I want the override symbology to stay the same, as the user intended it to be, so I will not add this to the list.

You may prefer to use:
MS_LEVEL_AUTO_SYNC_ATTRIBUTE_LIST = Bylevelsymbology
This automatically synchronises the levels whenever a file is opened. It's worth noting a disadvantage of this however. Users cannot set temporary symbology between sessions, as it will always reset when you open the file. Manual updates allow the best flexibility.

And while we are at it - controlling the update of reference files:
The settings above only apply to levels in the active file. You can also synchronise reference levels independently from the active file. For example, when reloading a reference file you probably want your override symbology to stay altered, but for company standards you would wish the Bylevel symbology to change back to standard;
MS_REF_REATTACH_LEVEL_SYNC_ATTRIBUTE_LIST = Bylevelsymbology
Ok, so technically if you are using MS_LEVEL_EDIT_ATTRIBUTE_LIST = overridesymbology; meaning that users can only edit overrides and not the bylevel symbology (remember, the list is what you wish to be editable), then you shouldn't really need this line.

See how confusing this is Bentley? Please please change these config lines to be like the USTN_CAPABILITY ones i.e.
MS_LEVEL EDIT_ATTRIBUTE_LIST = -Bylevelsymbology
or
MS_REF_REATTACH_LEVEL_SYNC_ATTRIBUTE_LIST = +Overridesymbology
Then we can visibly see straight away what we want to control in a sensible and logical manner - no guess work needed!

MS_UPDATE_KEEP_UNUSED_LIBRARY_LEVELS =1
If set to 1, keying in DGNLIB UPDATE LEVELS will not delete all unused library levels.
What are you on about Bentley?

Lets try and get this straight...
When you use a level from a library, the level is actually created in your active file. If elements on that level are then deleted, the blank unused level remains in your active file. This means if you detach the dgnlib or send the file out to someone, they will see a list of blank unused levels. Using the Update Levels from Library tool will delete all these levels from your active file so that if the file is issued, only the used levels will appear. When MS_UPDATE_KEEP_UNUSED_LIBRARY_LEVELS is set to 1, these blank levels will not be deleted from your active file. Why you would ever want this I haven't figured out yet!

I'm confused.
That's 'cos you belong in the 101 section, leave the 201 section for the big guys!

You're mean.
I know :)

Anything else crazy lady?
Small bit of advice...have a play around; you can get some interesting results at times:

Bug Alert!
Got different dgnlibs for different projects? If you have overridden a company dgnlib (standards.cfg) with a project one (.pcf) then beware. If you are in your file with the project dgnlib, using the Update Levels from Library tool can bring in the old dgnlib and give it a gobbledegook file name! (This happens when using the keyin DGNLIB UPDATE LEVELS too!) The only way to rid your file of them is to file>compress. If you get this happening or any other bugs then remember to log it with your support! If you don't log it, it won't get fixed! (This is a friendly community reminder bought to you by the bug alert patrol.)