License delivery maintenance is planned for Saturday, July 26, between 12:00 and 20:00 CEST. During this time, you may experience outages or limited availability across our services, including BIMcloud SaaS, License Delivery, Graphisoft ID (for customer and company management), Graphisoft Store, and BIMx Web Viewer. More details…
2025-01-18
12:03 AM
- last edited on
2025-01-22
12:09 AM
by
Laszlo Nagy
Hi,
I have the following code that creates an array. When I go to the UI preview window, it results in an array dialogue (see image 1). Is there a way to make it into a dropdown list instead? I can do it with parameter lists but I was hoping I could do it with arrays, but they seem super complex...
!! Master Script
DIM Test_Nam[5]
Test_Nam[1] = `Option 1`
Test_Nam[2] = `Option 2`
Test_Nam[3] = `Option 3`
Test_Nam[4] = `Option 4`
Test_Nam[5] = `Option 5`
PARAMETERS Test_Nam[1] = Test_Nam[1]
PARAMETERS Test_Nam[2] = Test_Nam[2]
PARAMETERS Test_Nam[3] = Test_Nam[3]
PARAMETERS Test_Nam[4] = Test_Nam[4]
PARAMETERS Test_Nam[5] = Test_Nam[5]
values{2} "Test_Nam", 0, "Option 1",
1, "Option 2",
2, "Option 3",
3, "Option 4",
4, "Option 5"
!! UI Script
ui_infield{2} "Test_Nam", 110, 100, 100, 160
My hope is to declare an array and then have the User Interface select an item from that array.
Many thanks,
From Matt
Solved! Go to Solution.
2025-01-18
01:51 PM
- last edited on
2025-01-22
12:10 AM
by
Laszlo Nagy
Try this:
DIM _Test_Nam[5] , numbers[5]
_Test_Nam[1] = `Option 1`
_Test_Nam[2] = `Option 2`
_Test_Nam[3] = `Option 3`
_Test_Nam[4] = `Option 4`
_Test_Nam[5] = `Option 5`
numbers[1]=1
numbers[2]=2
numbers[3]=3
numbers[4]=4
numbers[5]=5
values{2} "Test_Nam", numbers, _Test_Nam
2025-01-18 07:08 PM
If you want to use a general code, I recommend declaring the array values in the master script and applying them in a simple way in the parameter script and interface script in the commands. Here is an example:
! Master-Script
DIM _einheit_V_text[], _einheit_V_pic[], _einheit_V_value[]
i = 1
_einheit_V_text[i] = "Kubikmeter" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Liter" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Kubikzentimeter" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Kubikmillimeter" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Kubikfuß" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Kubikzoll" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Kubikyards" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Gallone" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
! Parameter-Script
VALUES{2} "int_einheit_V", _einheit_V_value, _einheit_V_text
! Interface-Script
UI_OUTFIELD "", 10, 10, 100, 20
UI_INFIELD{3} "int_einheit_V", 120, 10, 100, 20,
8, "",
0, 0, 0, 0, 0, 0,
_einheit_V_pic, _einheit_V_text, _einheit_V_value
As you see, you can shorten the code of VALUES{2} and UI_INFIELD{3}
2025-01-18 01:15 AM
It is possible, I believe I ended up finding what I needed to know on alternative sites, that being said I'll have to open things up but I'll post some examples after I finish some work if someone else doesn't post in the meantime
2025-01-18
01:51 PM
- last edited on
2025-01-22
12:10 AM
by
Laszlo Nagy
Try this:
DIM _Test_Nam[5] , numbers[5]
_Test_Nam[1] = `Option 1`
_Test_Nam[2] = `Option 2`
_Test_Nam[3] = `Option 3`
_Test_Nam[4] = `Option 4`
_Test_Nam[5] = `Option 5`
numbers[1]=1
numbers[2]=2
numbers[3]=3
numbers[4]=4
numbers[5]=5
values{2} "Test_Nam", numbers, _Test_Nam
2025-01-18 03:51 PM
For a nice display in the UI you should use ui_infield{3} with 8 as method:
ui_infield{3} "myParam", posx, posy, inFldWdt, inFldHgt,
8, "", 3, 1, 0, 0, 0, 0,
"", "Option 1", 1,
"", "Option 2", 2,
"", "Option 3", 3
.....
2025-01-18 07:08 PM
If you want to use a general code, I recommend declaring the array values in the master script and applying them in a simple way in the parameter script and interface script in the commands. Here is an example:
! Master-Script
DIM _einheit_V_text[], _einheit_V_pic[], _einheit_V_value[]
i = 1
_einheit_V_text[i] = "Kubikmeter" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Liter" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Kubikzentimeter" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Kubikmillimeter" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Kubikfuß" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Kubikzoll" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Kubikyards" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
_einheit_V_text[i] = "Gallone" : _einheit_V_pic[i] = "" : _einheit_V_value[i] = i : i = i + 1
! Parameter-Script
VALUES{2} "int_einheit_V", _einheit_V_value, _einheit_V_text
! Interface-Script
UI_OUTFIELD "", 10, 10, 100, 20
UI_INFIELD{3} "int_einheit_V", 120, 10, 100, 20,
8, "",
0, 0, 0, 0, 0, 0,
_einheit_V_pic, _einheit_V_text, _einheit_V_value
As you see, you can shorten the code of VALUES{2} and UI_INFIELD{3}
2025-01-20 12:55 AM
Hi Pertti,
That is such a great solution, and it produces the drop down list perfectly. I had no idea I could declare more than one array on the same line until I saw it here and in Jochen's response. So much knowledge you all have!!! Thank you so much Pertti, from Matt
2025-01-20 12:58 AM
Hi Jochen,
This is very cool, an expandable solution with clean scripting - very fun! Thank you so much for your answer and elegant coding. I now can have fun with arrays! Many thanks Jochen from Matt
2025-01-20 01:02 AM
Thank you Runxel, I do like both the infield{2} standard and the infield{3} with method 8 option for visual appearance. 95% of my battle is just getting the code to work! Wishing you all the best, from Matt
2025-01-20 01:04 AM
Thank you Seneca, most appreciate your being available. Several great solutions below from Pertti, Jochen. Wishing you all the best, Matt