The documentation on the new OneConfiguration system is a little bit lean so I went through the msconfig.cfg (from MicroStation Update 16 and OpenRoadsDesigner 10.10) to see how it worked. All the variables made my eyes glaze over so I needed a solid example of what was going on. Thought i'd post this here to see if I screwed up somewhere or maybe it'll help others.
I used the existing MicroStation Update 16 MetroStation example workspace/workset as a basis, then picked a one_group_name and a one_subgroup_name, then followed through where config files would load from.
My example is based on OpenRoads Designer. OpenRoads Designer has components of its workspace that need to be used with specific version of ORD. These components (I think they're all dgnlibs, but could be wrong) are tied to the schema used by that version of OpenRoads. In our particular workspaces we occasionally need to support both older versions of this schema and current versions. Which version each of our projects uses is usually not our call, but our client's call so we can't say we'll be moving everything to one version across the company in lock step.
OpenRoads currently does not have a variable defining the schema version so the one in my example is made up (i'll add some config stuff later that shows how you could set it).
# Assuming variables are set as follows: _USTN_WORKSPACENAME = Example _USTN_WORKSETNAME = MetroStation _USTN_PRODUCT_ONE_GROUPNAME = $(_ENGINENAME) _USTN_PRODUCT_ONE_SUBGROUPNAME = "Schema10_10" # or Schema10_11 for example # If loaded using OpenRoads Designer, config files would be loaded from the following locations: Configuration\ConfigurationSetup.cfg Configuration\WorkSpaceSetup.cfg Configuration\WorkSpaceSetup_OpenRoadsDesigner.cfg Configuration\Organization\*.cfg Configuration\Organization\OpenRoadsDesigner\*.cfg Configuration\Organization\OpenRoadsDesigner\Schema10_10\*.cfg Configuration\WorkSpaces\Example.cfg Configuration\WorkSpaces\Example\*.cfg Configuration\WorkSpaces\Example\Standards\*.cfg Configuration\WorkSpaces\Example\Standards\OpenRoadsDesigner\*.cfg Configuration\WorkSpaces\Example\Standards\OpenRoadsDesigner\Schema10_10\*.cfg Configuration\WorkSpaces\Example\WorkSets\MetroStation.cfg Configuration\WorkSpaces\Example\WorkSets\MetroStation\Standards\*.cfg Configuration\WorkSpaces\Example\WorkSets\MetroStation\Standards\OpenRoadsDesigner\*.cfg Configuration\WorkSpaces\Example\WorkSets\MetroStation\Standards\OpenRoadsDesigner\Schema10_10\*.cfg
So, for example, for the Organization level I can put all the resources used by all products (fonts, some cells & line styles, common levels, etc..) in folders under Organization, and resources common to all vesions of OpenRoadsDesigners (specific road fonts maybe or additional levels) in folders under OpenRoadsDesigner and dgnlibs specific to the 10.10 ORD schema in OpenRoadsDesigner\Schema10_10
Now when a new schema is introduced we just need to take the resources that are schema specific, upgrade them, add whatever new things we want, and put them in a Schema10_11 folder. We don't have to touch any of the resources that aren't schema specific.
Couple of additional notes:
# Last bit of code. Here is one way to create your own Schema variable: %if $(_USTN_PRODUCT_FULLMARKETINGNAME) == "OpenRoads Designer CE - 2021 Release 1" _USTN_PRODUCT_ONE_SUBGROUPNAME = "Schema10_10" %elif $(_USTN_PRODUCT_FULLMARKETINGNAME) == "OpenRoads Designer CE - 202X Release Something" _USTN_PRODUCT_ONE_SUBGROUPNAME = "Schema10_11" %endif # Another way, since the ConfigurationSetup.cfg file is still product specific is # just put the variable in the ConfigurationSetup.cfg for that product.
Kevin, Just FYI, it is the intent that _USTN_PRODUCT_ONE_GROUPNAME and _USTN_PRODUCT_ONE_SUBGROUPNAME will be hard coded in the products. Group Names will be something like Civil, Building, Plant, etc. and will work similarly to the way OpenPlant product work now. If you have a chance, look up the presentation I gave last year for PW Accelerate. Streamline Your ProjectWise Workspaces with One Configuration. More information will be forth coming in the next few releases.
Answer Verified By: Marc Thomas
Thanks for the extra info! That helps a lot. I actually think hard-coding them in will make this a lot easier to implement. I'll check out the presentation.