I am defining multiple custom GUI DGNLIBs (ribbon customizations) with the configuration variable MS_GUIDGNLIBLIST. It seems that the program (ORD 10.10.21.4) intermittently decides to include or not include one or more of the custom DGNLIBs. This occurs across multiple machines and there seems to be no rhyme or reason as to what makes this problem replicate. Sometimes a user will enter a new session of ORD and all the cusomt ribbons appear. Other times, they just get one or two of them.
Has anyone encountered this, and if so what is the solution/workaround?
Here is a snippet of the code in one of the bootstrapped cfg files, though there are additional definitions of the variable in other files as well:
%ifdef FDOT_OBM_APP MS_GUIDGNLIBLIST > $(PGA_WORKSPACESTANDARDS)Dgnlib/GUI/PGA-OBM-Ribbon.dgnlib %endif %ifdef FDOT_ORD_APP MS_GUIDGNLIBLIST > $(PGA_WORKSPACESTANDARDS)Dgnlib/GUI/PGA-ORD-Ribbon.dgnlib MS_GUIDGNLIBLIST > $(PGA_WORKSPACESTANDARDS)Dgnlib/GUI/PGA-Qtys-Ribbon.dgnlib %endif
When it fails have you had the user key-in show configuration and then send you the text file that opens?
that file will show you what the guidgnliblist is set to. I'm wondering if the Config file is failing and the dgnlib doesn't get added to the variable properly, or it is added but ORD isn't reading the file correctly.
only 2 other things I can think of:
Hi Eddie,
You can run the %ifdef Flow Directives in one block, it's possible that might change the behaviour?
Pease try omitting the first %endif as shown below:
%ifdef FDOT_OBM_APP MS_GUIDGNLIBLIST > $(PGA_WORKSPACESTANDARDS)Dgnlib/GUI/PGA-OBM-Ribbon.dgnlib%ifdef FDOT_ORD_APP MS_GUIDGNLIBLIST > $(PGA_WORKSPACESTANDARDS)Dgnlib/GUI/PGA-ORD-Ribbon.dgnlib MS_GUIDGNLIBLIST > $(PGA_WORKSPACESTANDARDS)Dgnlib/GUI/PGA-Qtys-Ribbon.dgnlib%endif
Regarding the 'if defined' Flow Directives, there are two options that work identically. %ifdef is included in the help documentation and simplifies the syntax by removing spaces from the Flow Directive and eliminating the need for brackets around the variable. I'm guessing the %if defined (VAR) version continues to be used in our delivered files for consistency with earlier file content. I'll flag this with development, the existence of two versions is confusing.
The statements listed below result in:
MYVAR1 = OneMYVAR2 = Two
%ifdef MYVAR1%echo "$(MYVAR1)"%endif
%if defined (MYVAR2)%echo "$(MYVAR2)"%endif
Marc
I think if defined() allows you to use more complex expressions and ifdef doesn't. So you can do:
%if defined(variable) && exists("path")
Hi Kevin, thank you I just tested that sequence and it fails with %ifdef as you noted.
A bug was filed for this a few weeks ago, please can any of you who would like to see this resolved file a Service Request mentioning bug 1056865 "If def" and "If defined" configuration micros should work same. Doing so will increase the priority of the bug.
I have added a note on this particular statement and a link to this thread to the bug.
Hi Marc, thank you for the idea. I tried your suggestion and that fails (none of the custom DGNLIBs load).
Eddie Giese, PEProduction Manager | Senior Roadway Engineer | AssociateLicensed in FL & PAACEC FDOTConnect Instructor on behalf of FDOT
Patel, Greene & Associates, LLC PowerGEOPAK V8i SS10 (08.11.09.918)OpenRoads Designer 2022 R3 (10.12.2.4)ProjectWise Explorer CE 10.0.3.453OpenRoads Conceptstation CONNECT Edition (10.0.16.84)LumenRT Pro CONNECT Edition (16.17.60.73)