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

Arrays and inputing values from a list

jshuether
Enthusiast
I have an array set up to define a grid of windows. The array contains the horizontal widths and vertical width. I would like to define what each window is in the grid from a list of values.

The parameters h and v would be integers >0 and a global_mod_par would populate the "window" array with the quantity of horizontal and vertical windows, but I'd like to establish what each window sash is.

Essentially I want the sript to be something like

window=type

values "type" "fixed", "casement", "awning"

However, all the windows would be the same and I'm not sure how to sript it to have control over each individual window sash.

Any ideas?
ArchiCAD 25

Windows 10
9 REPLIES 9
Jochen Suehlo
Moderator
I am not shure, if I understand you right.
I think, you should define a 2 dimensional Array Parameter named "window" and write as you did in Parameter script:
values "type" "fixed", "casement", "awning"
Now you can select in the User Interface (with UI_INFIELD{2}) selectable
fields for every window sash with the 3 possibilities.
Jochen Suehlo . AC12-27 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de
Ralph Wessel
Mentor
jshuether wrote:
I have an array set up to define a grid of windows. The array contains the horizontal widths and vertical width. I would like to define what each window is in the grid from a list of values.
If you want an object with that kind of behaviour, the Modular Joinery object may be what you're after. It will allow you to configure any array of doors, windows, and panels (including nested frames).
Ralph Wessel BArch
Software Engineer Speckle Systems
jshuether
Enthusiast
Joachim,
Thanks for guiding me to UI_INFIELD{2}. I figured I would have to utilize the Interface Script but I didn't know where to start.

Ralph,
I created my window object years ago (out of necessity), and every so often I update it and expand its capabilities (not to mention expand my GDL capabilities). I'm also starting to script a cabinet object with the same concept. I am curious about the Modular Joinery object; I'm sure it is everything I need and more; however, I'm not sure how to acquire the object.

Scott
ArchiCAD 25

Windows 10
Ralph Wessel
Mentor
jshuether wrote:
I am curious about the Modular Joinery object; I'm sure it is everything I need and more; however, I'm not sure how to acquire the object.
Distribution is managed by Graphisoft UK. Your ArchiCAD reseller should be able to source it for you from them.
Ralph Wessel BArch
Software Engineer Speckle Systems
Anonymous
Not applicable
Is there anyone here is the US using the Modular Joinery object? Can you give us detail on how you went about getting it?

My reseller is listed as "Graphisoft US". I requested this object from them. I never heard back. So I'm curious to know if anyone was successful in obtaining it.

Thanks, Greg
Erich
Booster
Nope...
Erich

AC 19 6006 & AC 20
Mac OS 10.11.5
15" Retina MacBook Pro 2.6
27" iMac Retina 5K
Aussie John
Newcomer
You can 'call' a window in a script that then places it. Calling it multiple times can give you the array. You can either use the default values of the called window or use new ones in your new parameters.
Cheers John
John Hyland : ARINA : www.arina.biz
User ver 4 to 12 - Jumped to v22 - so many options and settings!!!
OSX 10.15.6 [Catalina] : Archicad 22 : 15" MacBook Pro 2019
[/size]
Anonymous
Not applicable
My reseller got it for me......
Anonymous
Not applicable
jshuether,


I think it can't be a value list for an index of array.

It's may a similar script that you want:

----------------------------------------------------------------------


VALUES "H" RANGE (0, ]
VALUES "V" RANGE (0, ]

IF GLOB_MODPAR_NAME="H" OR GLOB_MODPAR_NAME="V" THEN
FOR I=1 TO H
FOR Q=1 TO V
window =""
PARAMETERS window
=""
NEXT Q
NEXT I
ENDIF

DIM xx0 [][]
FOR I=1 TO H
FOR Q=1 TO V
xx0
=10*I+Q
PARAMETERS xx0
=10*I+Q
NEXT Q
NEXT I

VALUES "xx" xx0 ! code of grids

VALUES "type" "fixed", "casement", "awning"
wtype=type

hh=INT(xx/10)
vv=xx-hh*10

window [hh][vv]=wtype
PARAMETERS window [hh][vv]=wtype

----------------------------------------------------------------------

You have to create the parameters: h, v, xx, type, window



Cheers,