Libraries & objects
About Archicad and BIMcloud libraries, their management and migration, objects and other library parts, etc.

Value list for arrayed parameters

Barry Kelly
Moderator
I know how to set up a VALUE list for a standard parameter.

VALUES "param_name" "value_1', "value_2", ......

But is it possible to set a value list for an arrayed parameter?
Something like ...
VALUES "param_name [1][1]" "value_1', "value_2", ......


I have a window that has a variable number of horizontal and vertical panels.
Each of these panels can be fixed (F), awning (A) or louvre (L).
At the moment I have each panel listed with a separate parameter as that is the only way I can get the value list to work.

Am I overlooking something obvious or can it not be done?

Barry.
One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
15 REPLIES 15
Anonymous
Not applicable
Hi

if you are just wanting to set the values for the parameter array, then just click the array button next to the parameter you are setting up? if that makes sense.
Barry Kelly
Moderator
sdb wrote:
Hi

if you are just wanting to set the values for the parameter array, then just click the array button next to the parameter you are setting up? if that makes sense.
I want to give the user a list of values to choose from.
Just as you can with a standard parameter.
Barry.
One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Anonymous
Not applicable
Barry wrote:
But is it possible to set a value list for an arrayed parameter?
Something like ...
VALUES "param_name [1][1]" "value_1', "value_2", ......
I don't think it is possible.
I would use hotspots to make a three positions switch.
Easy way to graphically change the types of window, in 3D or 2D.
	dim windowType[]

	dMin = -0.15    ! for example
	dMax =  0.15

	for k = 1 to nb
		dist = min (max (dMin, dist), dMax)   
	
		if dist < dMin / 2 then
			dist = dMin
			windowType = 'A'
		else
			if dist <  dMax / 2 then
				dist =  0.00
				windowType = 'F'
			else
				dist =  dMax
				windowType = 'L'
			endif
		endif
	next k

	parameters dist = dist
rocorona
Booster
to choose a value for an array parameter, the pull-down menu would be a table, not a simple list... Nice, but not possible (yet)
_________________

--Roberto Corona--
www.archiradar.com
AC18 - ITA full on Win10
_________________
_________________
Barry Kelly
Moderator
Olivier wrote:
I don't think it is possible.
I would use hotspots to make a three positions switch.
Easy way to graphically change the types of window, in 3D or 2D.
Thanks Oliver.
This is exactly what I am doing.
The thing is my window can have anything from 1 to 6 panels horizontally and 1 to 6 panels vertical.
So anything from 1 to 36 panels and each can be set to awning, louvre or fixed individually.
So I was hoping arrays could help.
I am using arrays for the frame positioning but it seems it is not possible for the frame type.

It can still be done - I just need to repeat the script 36 times!

Barry.
One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Barry Kelly
Moderator
rocorona wrote:
Nice, but not possible (yet)
That's what I expected.
Barry.
One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Jochen Suehlo
Moderator
If I understand you right, you want to use the same 3 values for every parameter. This is possible only in the User Interface; say fx is an array parrameter:

VALUES "fx" "Festverglast",
"Drehkipp links",
"Drehkipp rechts",
"Dreh links"

Then you have to use the User Interface to have single Value lists. The normal parameter list cannot do this, as the other users wrote.
Use something like this:

led=24
FOR k=1 TO 18
UI_INFIELD{2} fx, 185,dy-4,100,16
dy=dy+led
NEXT k
Jochen Suehlo . AC12-27 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de
Anonymous
Not applicable
Joachim wrote:
If I understand you right, you want to use the same 3 values for every parameter. This is possible only in the User Interface; say fx is an array parrameter:

VALUES "fx" "Festverglast",
"Drehkipp links",
"Drehkipp rechts",
"Dreh links"

Then you have to use the User Interface to have single Value lists. The normal parameter list cannot do this, as the other users wrote.
Use something like this:

led=24
FOR k=1 TO 18
UI_INFIELD{2} fx, 185,dy-4,100,16
dy=dy+led
NEXT k
Guten tag Joachim,

Thanks for this nice workaround! I completly missed this possibilty.
You are right, UI allows to do this with just one parameter.

In the attached example, I just added a User Interface.
Mixed (or not) with "Hotspots Switch", it can be an interesting solution.
Thanks again.

Cheers,
Olivier
Anonymous
Not applicable
Hello,

Here's another, a floating tooltip with textual content.
!--values
values 'a' 0.5, 0.75, 1
if a<0.75 then parameters tip[1]= '[LEFT] middle right'
if a=0.75 then parameters tip[1]= 'left [MIDDLE] right'
if a>0.75 then parameters tip[1]= 'left middle [RIGHT]'
!--

!--2D
hotspot2 0, 0
line2 0, 0, a, 0
hotspot2  0, 0, uid+1, a, 1
hotspot2 -1, 0, uid+2, a, 3
hotspot2  a, 0, uid+3, a, 2, tip[1]
uid= uid+3
!--





--
Regards, Juha