We value your input!
Please participate in Archicad 28 Home Screen and Tooltips/Quick Tutorials survey

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

another try at room aware parts

Anonymous
Not applicable
Hello all,

thanks for all the info on these boards - i've come lurking by often when stumped by my gdl documentation. very helpful, this is a great resource.

regarding my question - is it possible to query the model with a REQ or REQUEST to get a zone name if i can provide the zone number to the statement?

i have read about the issues with using REQUEST zone_relations, and went ahead and tried myself. yep, doesn't work, even with the return variables predefined as text types.

so, my door parts cannot reliably report what zone (room!) they are in.

but, in my case my doors are numbered by room number, so the part can come up with it's room number by just looking at the ID value. soo... the parts could report their room number on a schedule if i could request a zone name using the zone number. not what zone the part is in, just what zone name is associated with the provided zone number.

any help or ideas would be greatly appreciated. i have read back through all the search references on this i can find and don't believe this has been covered. i've also tried to wade through the online references but cannot put my finger on the request statement.. if there is one.

oh, I'm using ArchiCAD 11 on XP pro pc

thank you!
4 REPLIES 4
Anonymous
Not applicable
The "Zone_Relations" request only returns info about the zone (or zones in the case of doors and windows) that the part resides in.
Ian wrote:
so, my door parts cannot reliably report what zone (room!) they are in.
The NCS door marker can display the zone number if that is what you want (the location of the marker itself, or some other editable hotspot in the marker, I don't remember now, is what counts).

And you schedule it with criteria doors and fields zone name or number, with any door.

The schedule will not trigger the object's parameter script so both paths, request-based-marker-text and scheduling, are independent.
Barry Kelly
Moderator
dummy=REQUEST("Zone_relations", "", cat_1, code_1, name_1, num_1, cat_2, code_2, name_2, num_2)

If you place this in your door part (master script) you will find that the zone name ("name_1" for the first zone and "name_2" for the second) will be correct.

The problem is with the returned value for "cat_1" & "cat_2" - these will also be the zone name rather than the zone category.

There is no need to pre-define "name_1" as a parameter (text or otherwise).
It is simply ready for use as in .... text2 0,1, name_1 ... or as an output to a text file.
Of course this is all from within the door library part.

But you can also set this value as a parameter (PARAMETERS name_1 = name_1) in the master script so I guess you could use it in interactive schedules.

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
thank you for responses. i have investigated these methods, and tried to explain this in the original post. my specific question :

is it possible to query the model with a REQ or REQUEST (or IND?) to get a zone name if i can provide the zone number to the statement?

the zone_relations request is giving me variables that don't act like string types, so per other suggestions on this board i tried pre-defining the variables as string types. still no go, AND i could pull these values directly into the schedule (no GDL) using 'FROM ROOM' and 'TO ROOM' schedule values, but these values are inconsistent and unusable. So even if i could get values from the zone_relations request, they are not adequate.

so, i do not need the part to report what zone it is in, instead I'm wondering if there is a way to request a zone name if i can supply the function with the zone number as an input?

thank you again