[ORD] ...\Configuration\Organization\ pathed to network drive?

Apparently, just including this directory at the network level is not enough. Not surprising, because I haven't seen anything to redirect to it...

I would like to include some organizational standards (at the network level because I don't plan on doing anything more on the local level than I have to) but I'm not certain how to accomplish that without jumping ahead of system files or redirecting incorrectly.

What would be the best way to do this? I could add an %include somewhere, but at what level would I do that? Before Workspace? During Workspace? Add something to ConfigurationSetup.cfg or WorkSpaceSetup.cfg?

  • @svancleave - yes I have looked at those variables along with the "version" ones (version ones not reliable)

    @Rod - yes I have looked at doing this as well

    was just curious on how Kevin was doing it ?

    we have some clients with different versions of standards as well as different versions of the software (different projects of course) - so I cant neccessarily base things on client.

    maybe I am just over thinking....

    Timothy Hickman

    CADD Manager | CADD Department

    timothy.hickman@colliersengineering.com

    Main: 877 627 3772| 

    1000 Waterview Drive Suite 201 | Hamilton, New Jersey 08691

  • Most of the version specific stuff comes from our client workspaces so I put version detection in at that level. Our corporate level doesn't really have version specific stuff, but I do have some stuff I only load for OpenRoads and I just handle that with:

    %if $(_ENGINENAME) == "OpenRoadsDesigner"
    
    or
    %if exists($(_USTN_ORGANIZATION)$(_ENGINENAME)/)
    

    My WorkSpaceSetup.cfg does configure a number of variables I can use for more detailed version detection:

    #-----------------------
    # Product Version
    #-----------------------
    %if defined(_USTN_PRODUCT_VERSION_GENERATION)
    	__PRODUCT_VERSION_MAJOR = $(_USTN_PRODUCT_VERSION_GENERATION).$(_USTN_PRODUCT_VERSION_MAJOR)
    	__PRODUCT_VERSION_MINOR = $(__PRODUCT_VERSION_MAJOR).$(_USTN_PRODUCT_VERSION_MINOR)
    	__PRODUCT_VERSION_FULL  = $(__PRODUCT_VERSION_MINOR).$(_USTN_PRODUCT_VERSION_BUILD)
    %else
    	# Get version info from registry using PRODUCTCODEGUID
    	__REG_VERSION = ${registryread{"HKEY_CLASSES_ROOT\Installer\Dependencies\${MS_PRODUCTCODEGUID}\Version"}}
    	# Versions read from the registry end in a \ and the last version number is 3 digits long
    	# The \ in the version can be treated as a directory path. (But append a \ to the front for it to work)
    	# THe . in the version can be treated as a file extension.
    	__PRODUCT_VERSION_FULL  = lastdirpiece (\$(__REG_VERSION))          # remove the leading & trailing \
    	__PRODUCT_VERSION_MINOR = noext ($(__PRODUCT_VERSION_FULL))         # remove the build number from the full version
    	__PRODUCT_VERSION_MAJOR = noext ($(__PRODUCT_VERSION_MINOR))        # remove the minor number from the minor version
    %endif
    __PRODUCT_NAME = $(_USTN_PRODUCT_NAME)
    __ERROR_INFO = [$(COMPUTERNAME), $(USERNAME), $(_USTN_PRODUCT_FULLMARKETINGNAME) $(__PRODUCT_VERSION_FULL)]
    
    # Rendition server account version bypass
    %if $(COMPUTERNAME) == "rendsvr1" || $(COMPUTERNAME) == "rendsvr2"
    	__VERSION_CHECK_BYPASS = 1
    %endif
    

    (sorry about all the double _ that, when testing I wanted them to sort first and never really removed them)

    I've never needed the full version number yet, so the fact that one reads a 2 digit build number and one a 3 hasn't come up yet but it's really only an issue with 10.09 ORD/OBM and ProjectWise Managed Workspaces (for some reason the _USTN_PRODUCT_VERSION_* variables don't exist until the product actually launches so only registry reads work in PW managed workspaces). Hopefully that bug gets fixed in PW before I need it.

    This allows me to test to specific versions of products in workspaces, instead just on full versions. Example below allows me to allow 3 different products to use a particular workspace throwing an error for anything else. More could be added by copying/pasting that last block of TEST_VER/REMAIN_VER as needed.

    #-----------------------
    # Version Check
    #-----------------------
    # Define which versions are allowed to use this workspace.
    # Separate different versions with \'s, do not put spaces around \'s
    # Version numbers can be the major (xx.xx) or minor (xx.xx.xx) version
    __ALLOWED_VERSIONS = MicroStation 10.17\OpenRail Designer 10.10.21\OpenBridge Modeler 10.10.20
    
    # Error message info for user on version mismatch
    __ALLOWED_VER_MSG  = MicroStation 10.17, OpenRail Designer 10.10.21, or OpenBridge Modeler 10.10.20
    
    %undef __VERSION_CHECK
    
    __CUR_VERSION_MAJOR = $(__PRODUCT_NAME) $(__PRODUCT_VERSION_MAJOR)
    __CUR_VERSION_MINOR = $(__PRODUCT_NAME) $(__PRODUCT_VERSION_MINOR)
    
    %if defined(__VERSION_CHECK_BYPASS)
    	__VERSION_CHECK = Pass: Bypass
    %else
    	TEST_VER   = filename(${__ALLOWED_VERSIONS})
    	REMAIN_VER = dir(${__ALLOWED_VERSIONS})
    	%if ${TEST_VER} == ${__CUR_VERSION_MAJOR} || ${TEST_VER} == ${__CUR_VERSION_MINOR}
    		__VERSION_CHECK = Pass: ${TEST_VER}
    	%endif
    
    	TEST_VER   = lastdirpiece(${REMAIN_VER})
    	REMAIN_VER = parentdir(${REMAIN_VER})
    	%if ${TEST_VER} == ${__CUR_VERSION_MAJOR} || ${TEST_VER} == ${__CUR_VERSION_MINOR}
    		__VERSION_CHECK = Pass: ${TEST_VER}
    	%endif
    
    	TEST_VER   = lastdirpiece(${REMAIN_VER})
    	REMAIN_VER = parentdir(${REMAIN_VER})
    	%if ${TEST_VER} == ${__CUR_VERSION_MAJOR} || ${TEST_VER} == ${__CUR_VERSION_MINOR}
    		__VERSION_CHECK = Pass: ${TEST_VER}
    	%endif
    	
    	%undef TEST_VER
    	%undef REMAIN_VER
    %endif
    
    %if !defined(__VERSION_CHECK)
    	%error Incorrect product used. Allowed versions: $(__ALLOWED_VER_MSG) $(__ERROR_INFO)
    %else
    	%undef __CUR_VERSION_MAJOR
    	%undef __CUR_VERSION_MINOR
    %endif

    I can also use those version numbers in folders if I need separate out specific resources:

    • # Load resources for ProductName XX.XX.XX
    • RESOURCE_DIR = $(_USTN_WORKSPACESTANDARDS)$(_ENGINENAME)_$(__PRODUCT_VERSION_MINOR)/

     

  • We don't use Client WorkSpaces as our WorkSpace level, outside of PW it's included in the WorkSet.cfg so it can differ per project. Inside of PW i have individual CSB's I assign at the Customer level (these get applied after Organization level but before WorkSpace level).

    My client workspaces are identified by Client name, rough ORD/OBM version and client release date. For example I have both:

    • Kansas DOT 10.08 2021-05-18
    • Kansas DOT 10.10 2022-08-24

    So existing projects already using KDOT's 10.8 can continue doing so until they need to upgrade, and new projects using the 10.10 version can start immediately and not wait for the other projects to upgrade. And when a project does upgrade they just change the %include in the workset, or we apply the new Client CSB to their project

     

  • thanks for the info.

    I am thinking along the same lines. I was anticipating a whole lot of "if" statements. 

    Timothy Hickman

    CADD Manager | CADD Department

    timothy.hickman@colliersengineering.com

    Main: 877 627 3772| 

    1000 Waterview Drive Suite 201 | Hamilton, New Jersey 08691