Modeling
About Archicad's design tools, element connections, modeling concepts, etc.

Zones - subtract doors from Perimeter?

Anonymous
Not applicable
Any ideas how to make Zones subtract Door width from Perimeter in the Zone Stamp?

It should be possible, since Zones can subtract Windows and Doors from wall area in calculations, so Zones can detect Door width.
6 REPLIES 6
Laszlo Nagy
Community Admin
Community Admin
Kliment,
There are certain GDL Global Variables that return certain values:

Check this out:

http://helpcenter.graphisoft.com/guides/gdl-guide-for-archicad-18/chapter-12-miscellaneous/fix-named...

Specifically:

ROOM_DOORS_WID and ROOM_WINDS_WID return the width of Doors and Windows, respectively, within the Zone.

ROOM_NET_PERIMETER is the full perimeter.

I think one can create a parameter and assign to this parameter the value:

ROOM_NET_PERIMETER - ROOM_DOORS_WID - ROOM_WINDS_WID

Then this parameter can be listed in a schedule.

I hope this makes sense.
I have not tried it but it should work.
Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac28
Anonymous
Not applicable
Thanks, Laszlo! I was hoping for hidden chechbox I hadn't found which could do it! 😉 I think the battle with the Zone GDL script is a lost one for me.

Anyway the only use of Perimeter I see is to find the length of floor skirting, but then you'll need to subtract the door width.
Anonymous
Not applicable
Hi Laszlo,
I'm struggling with the same problem; I need the perimeter of the room except the door width.

I made a new parameter and assigned a value to it like this:

TJs_PERIMETER = ROOM_NET_PERIMETER - ROOM_DOORS_WID

It show up in the schedule (after I added it), but it contains no value - just three dots.

What type should the parameter be, and where should I put the assignment to make it work?

Thanks!
--
Regards,
Tor Jørgen Stray Zahl Pettersen
Laszlo Nagy
Community Admin
Community Admin
Try to assign this value in the Parameter Script:

http://helpcenter.graphisoft.com/guides/gdl-guide-for-archicad-18/chapter-9-non-geometric-scripts/th...

With a line similar to this:
PARAMETERS TJs_PERIMETER = ROOM_NET_PERIMETER - ROOM_DOORS_WID
I don't exactly know if this in itself is enough for it to work because I haven't scripted any GDL for quite a while. Maybe someone who knows can chime in.
Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac28
Anonymous
Not applicable
Hi Lazlio,
and thank you for your answer.

I have attached a picture that shows where I declare the parameter, where I assign it and the resulting scheme (with three dots as the value).

To me it seems that the assignment does not take place... maybe there are some other scripts that gets called and does the actual calculation, that does not know of my parameter?

Any ideas, anyone?

Thanks!
--
Regards,
TJ
Laszlo Nagy
Community Admin
Community Admin
In your file, in the Zone Categories Dialog, did you change the assignment of the Zone Stamp GDL file to the Zone Category you use for these Zones?

I tried this and worked perfectly to me:
1. Saved the Zone Stamp under a new name, created the Parameter and assigned to it the value in the Parameter Script. Then save changes.
2. In the Zone Categories Dialog I assigned this new Zone Stamp to the desired Zone Categories.
3. In the Scheme Settings Dialog, using the Fields panel's Use Object Parameters button found the Parameter I created and added it to the fields to be scheduled.
4. Generated the schedule which displayed results correctly.
Loving Archicad since 1995 - Find Archicad Tips at x.com/laszlonagy
AMD Ryzen9 5900X CPU, 64 GB RAM 3600 MHz, Nvidia GTX 1060 6GB, 500 GB NVMe SSD
2x28" (2560x1440), Windows 10 PRO ENG, Ac20-Ac28