I'm working on modifying some commands in our configuration, and had a couple questions.
I've looked online to better understand what the "$" does within these files. For example:
MS_CONFIG_DIR: $(MS_CONFIG_DRIVE)Microstation/Config/
I understand that the command line is referencing a previously established variable (MS_CONFIG_DRIVE) but I don't understand what the $ is doing. Is it telling microstation to look for a previously established variable, named after the $ and between the two parenthesis?
I'm also looking to understand the difference between the ":" and "=" within the config documents.
I've seen:
MS_CONFIG_DRIVE: Y:/
as well as:
MS_DESIGNMODELSEEDNAME = 2D Design
On the surface, it seems like both operators work in a simlar fashion.
More specifically, I was attempting to set up an if / then statement to reference local files if the network drive was unavailable:
MS_CONFIG_DRIVE = C:/Program Files (x86)/Bentley/MicroStation V8i (SELECTseries)/
%if exists (Y:/)
MS_CONFIG_DRIVE = Y:/
%endif
But first I had tried:
MS_CONFIG_DRIVE: C:/Program Files (x86)/Bentley/MicroStation V8i (SELECTseries)/
Then first example worked correctly, but the second one did not. I would appreciate any advice. Our company no longer employees the CAD guru who set up our files, and I am working to better understand how this all fits together.
Thanks.
Hi Adam,
at first, two notes:
Adam Halls said:I've looked online to better understand
Did you read MicroStation documentation? Configuration concepts, including configuration variables, are described there pretty well in my opinion.
Adam Halls said:what the "$" does within these files.
The $ letter does nothing! You have always to think in a context of complete syntax.
Adam Halls said:Is it telling microstation to look for a previously established variable, named after the $ and between the two parenthesis?
There are two variants used with a substantial difference:
$(<CfgVarName>)
evaluates the variable value every time when the definition is used, whereas
${<CfgVarName>}
evaluates the value once only (when the configuration file is processed).
See the syntax definition in MicroStation documentation for more details.
Adam Halls said:I'm also looking to understand the difference between the ":" and "=" within the config documents.
Again, it's well described in MicroStation documentation, so I think it's not necessary to repeat the description here.
Adam Halls said:Then first example worked correctly, but the second one did not. I would appreciate any advice.
Without knowing context (which here means to see the full debug log file), it's hard to say.
But I guess, because ":" is a condition assignment, the variable was defined already, so no new value was assigned.
Adam Halls said:I am working to better understand how this all fits together.
At first, study MicroStation documentation. Without understanding what is written there, "to try something" is just a time wasting effort leading to confusion only.
With regards,
Jan
Bentley Accredited Developer: iTwin Platform - AssociateLabyrinth Technology | dev.notes() | cad.point