Our workspace uses the Project menu to specify Client and task. Task being Survey or Design, Client being well, client - DOT, federal agency, county or municipality, etc.
This is done by adding some hidden variables that are used at the site level but assigned in the Project.pcf. Doing this gets the client variables in front of any user variables to modify the normal priority of user and project variables. Our folder structure is segregated by year and then a main project folder.
To assign reference file search folders, we use an MVBA to create a variable pointing to the project's root folder and use that variable for any variable that needs know the project folder locations. It is necessary to do this because the _DGNDIR variable is not assigned until one is actually in a file. This works so well that I was even able to place a parallel workspace for SE on our network for the occasional times that we need to work on an old project. This required an MBE macro to replace the MVBA macro - which was able to do by running an MDL function within the MBA macro to read a CFG file, created a few lines earlier, to assign some new variables. The same macro then deletes the temporary CFG file as it is not needed any more and I do not want to leave the server or the user's PC cluttered with temporary files.
However, on some projects, I need to modify the standard search folders for various reasons. Rather than add unique PCF files for those projects, I am considering the practice of placing a CFG folder in a project and placing any special variable assignments in a CFG file in that folder. Then I would add code to my MVBA to look for this file in this folder and if found read its contents.
I was hoping to find that someone else is doing something similar to see it they have any pointers on what worked and what did not work. TIA
Bump!
Posted this in 2009. Have managed to live without this so far, but some new issues are causing me to think that this is a workflow whose time has come.
If anyone has any thoughts., please post.
FYI
The following code is what we used in V7 to emulate what we did in V8. I found that while there were MDL functions that I could call to define a CFG variable, I could not figure out how to pass the value of a variable. So for fixed values, I could use this:
status = MbeCExpressionLong("mdlSystem_defineCfgVar(""_AB_Survey"", ""Survey\\"", 4)")
But to get values that were derived at run time, I found I could build a temporary CFG file, and then use this code to read the file and one read, erase the file.
'These variables need to vary which required a different solution. We found we could
'create a scratch CFG file and read it to assign any remaining variables.
Open "AB_TEMP.CFG" For Append Access Write Lock Read Write As #1
Print #1, "_AB_Proj_Name = " & us_AB_Proj_Name
Print #1, "_AB_Proj_Year = " & us_AB_Proj_Year
Close
' MbeSendKeyin "DR=AB_TEMP.CFG" ' Uncomment if debugging is required. Allows one to View
' the CFG file if necessary.
' Use this mdl function to process the newly created scratch CFG file.
status = MbeCExpressionLong("mdlSystem_processCfgVarFile(""AB_TEMP.CFG"",4)")
' Delete the scratch CFG file as it has served its purpose
Kill "AB_TEMP.CFG"
So I wondered, is there a VBA functions that can read a CFG file or do I need to also use the MDL function?
Charles (Chuck) Rheault CADD Manager
MDOT State Highway Administration
Does it have to read the cfg or can the variables already be set. Variables and their values are easy to call up in VGA.
Don't know if you ever found a way around this Chuck, but you can always use variables in your standard cfg files to look to see if a cfg file exists and use the variables. I use this method over using pcf files so I can get to the point where I can even lock variables before the user ucf file loads. Saves a lot of hassles.
Worth reading:
https://communities.bentley.com/other/old_site_member_blogs/peer_blogs/b/bear_blog/posts/the-build-part-7-who-needs-pcf-files
and
https://communities.bentley.com/other/old_site_member_blogs/peer_blogs/b/bear_blog/posts/tech-tip-easy-method-of-locking-variables
Wow - blasts from the past. I've moved on and now am playing in a ProjectWise sandbox. That is quite the different beast. Still dealing with CFG idiosyncrasies. The original implementation here still required a local workspace. We found our databases were so old that certain elements of the PW server would not function properly, so we have had to maintain this workflow.
We recently found a fix, but with so many projects in the pipeline, have been reluctant to migrate them to a managed version of the workspace. But all new projects are getting a project folder assigned to a managed workspace. Even with this, we still need dual workspaces as we prepare our migration to Open Roads Designer. We needed to revamp out current workspace to the point that it is practically a rewrite, while also migrating the original workspace to function as a managed workspace with little (or no) change in general appearance or functionality.