Developer forum
cancel
Showing results for 
Search instead for 
Did you mean: 

Using Dictionary in Parameters?

DGSketcher
Virtuoso
In AC24 I have noticed in the Array option has been removed and replaced with Dictionary.
Can we display the contents?
How do we to edit these values?

I can't access this type of variable in my objects.
Apple iMac macOS Big Sur / AC24UKI (most recent builds)
7 REPLIES 7

A_ Smith
Contributor
AFAIK "array option" was and is available to every type of parameter (length, angle, real number and so on)
AC 22, 24 | Win 10

DGSketcher
Virtuoso
Thanks, that gets the Array option back, memory failure on my part.

So, Dictionary values... these seem to be useless in the Parameter list. You can't assign a subkey value like _mydict.x as the "." is invalid in a parameter name and there is nowhere to actually enter a value. Can someone explain why Dictionary is listed as a Parameter type? Is this just incomplete programming?
Apple iMac macOS Big Sur / AC24UKI (most recent builds)

runxel
Mentor
This was probably introduced to be able to pass whole dictionaries to macros.
(Which is a really great thing, ngl)
I can't see any other reason, tho.
AC 24 [ger] | Win 10 | Developer of the GDL plugin for Sublime Text |
«Furthermore, I consider that Carth... yearly releases must be destroyed»

Peter Baksa
Graphisoft
Graphisoft
DGSketcher wrote:

So, Dictionary values... these seem to be useless in the Parameter list. You can't assign a subkey value like _mydict.x as the "." is invalid in a parameter name and there is nowhere to actually enter a value. Can someone explain why Dictionary is listed as a Parameter type?
Hi DGSketcher,

There are a few limitations with dictionary parameters:
- defaults can't be set in the parameter list in the GDL editor. Parameter values can be set from the parameter script, which become default if you check the parameter script and save the object. Defaults can also be set in the parameter list of HSF source code.
- they can't be used on the UI as input
- they can't be used for editable hotspots
- they can't be shown in IES
- VALUES and LIBRARYGLOBAL commands don't work with dictionaries

The main use is for macros, where they aren't set by the user but some calculation.
Péter Baksa
Software Engineer, Library as a Platform
GRAPHISOFT SE, Budapest

DGSketcher
Virtuoso
Thank you Peter, that is helpful. GDL programming is only a hobby for me so sometimes the constraints & uses you have described aren't always obvious to less experienced programmers. I have confronted the UI recently and this has also caused some confusion regarding the assignment of values to parameters. As I see it you can assign single and array values in the Parameter list, Parameters can't be set from the 2D & 3D script but their values can be changed within the script, The Parameter Script is where Parameter values are normally constrained and adjusted in reaction to other Parameter changes, and the UI Script allows the UI_INFIELD{#} command to set parameters & also double as value lists. Perhaps a Tips & Tricks page on the GDL site could help new users determine where best to assign values to a parameter.
Apple iMac macOS Big Sur / AC24UKI (most recent builds)

DGSketcher
Virtuoso
Still chipping away at this...

So I now have my working GDL object with a Dictionary full of useful arrayed values e.g. MyDict.Name, MyDict.X, MyDict.Y etc. I now need to get these values out to labels & macros. The labels I assume I can get to read them via REQUEST but I still can't find any documentation on how to expose the dictionary to a label or push the values to a macro. Anyone got any pointers on how and the associated syntax please?
Apple iMac macOS Big Sur / AC24UKI (most recent builds)

DGSketcher
Virtuoso
Answering my own Q here... Having read the user manual in a bit more detail, under the section describing the DICT function there is an explanation of "Macro calls and requests:
• in macro calls, dictionary type values can be sent to the macro if there is a dictionary type parameter on the receiving end,..." and with regards to REQUEST options, currently there is no request supporting dictionaries.
Apple iMac macOS Big Sur / AC24UKI (most recent builds)

Still looking?

Browse more topics

Back to forum

See latest solutions

Accepted solutions

Start a new discussion!