We value your input! Please participate in Archicad 28 Home Screen and Tooltips/Quick Tutorials survey
2023-06-23 07:48 PM - last edited on 2023-06-29 02:28 PM by Daniel Kassai
Hello all,
I have started to learn about the Archiad's GDL script and was wondering if I could add some parameters to an existing Archicad object to create custom configuration. I will explain what I am trying to do. The current door panel types in Archicad US25 has a horizontal 4 panel door. I am wondering if there is any adjustments I can make in the GDL script to add a horizon 5 or 6 panel door? I do not have much knowledge about the script tool, and so I am thinking there would be an easy way by adding a few lines of code or parameters I could add to achieve the desired results.
Thank You
Archicad 25 (6005 USA) MacOS Monterey 12.6.7
2023-06-24 10:45 AM
A few lines of code is wishful thinking.
The Graphisoft doors and windows are rather complicated, and not something I would tackle unless you are quite good at GDL scripting.
Also, you will find it tricky to amend a Graphisoft library object and you have to unpack the LCF file (that is not a problem in itself).
But any time the library is updated, you will have to make all of the modifications again.
Or you 'Save As' a new object with a new name, but you may also have to 'Save As' some of the CALLed macros with a new name and also amend their CALLS with the new name.
You are probably better of creating your own 'custom' door leaf, and simply using that in the standard door object.
Draw the leaf with slabs (or what ever elements you want).
The more detail you put into it, the better it will look.
Model the slab at project zero with the bas of the slab at zero height.
The thickness of the slab is above zero - that is the inside of the door.
The actual size and thickness are not so important, as it will be rescaled to suit the size of the door frame you use it in.
But you want to model it as close to the size you want, because it will resize the glazing panels and dividing frames.
Select the slabs and then go to the FILE menu > Library and Objects > Save Selection As > custom door leaf (or something similar to that - I don't have Archicad open at the moment).
Barry.
2023-06-26 03:39 AM - edited 2023-06-26 03:44 AM
If you really need a 5+ panel door, you could look at subscribing to the 4D Library or Infinite Openings by CADSwift. The 4D Door sometimes had slider positioning issues depending on the reveal side, but Ben Cohen, the libraries creator, is generally very helpful. Have not personally tried Infinite Openings but it looks good, and the creator, Kristian Bursell, is on here as well.
Ling.
AC22-23 AUS 7000 | Help Those Help You - Add a Signature |
Self-taught, bend it till it breaks | Creating a Thread |
Win11 | i9 10850K | 64GB | RX6600 | Win10 | R5 2600 | 16GB | GTX1660 |
2023-06-26 09:39 AM
If you know a little bit of GDL, it is quite handy to have a collection of your own parametric door leafs.
It's mostly about making a lot of PRISM_ statements and some ADDZ if you have different thicknesses for panels and what not.
I set up parameters at the top with somewhat logical names, so I don't have to input the same dimensions over and over and to allow quick editing.
Bottom example uses Dutch words for the parameters, but I'm sure you can figure it out. You can paste this in the 3D script. The only real parameters I've added are 'mat1' and 'mat2' for the leaf and glass materials.
Save your object as a custom door leaf type and it should show up.
It should be a door leaf with a bottom panel and glazing divided in 2x3. Standard being 880x2.315 mm for the leaf here.
addx a/2
c=zzyzx
ddd=c
a=a
b=b
v=d
!mat1=e
!handtype=f
!g=g
!mat2=g
tsz=0
roehor=2
roever=3
links=0.139
rechts=0.139
bov=0.139
ond=0.190
tus=0.140
mid=0.850
glaslat=0.011
paneelrand=0.040
material mat2
prism_ 15, ddd,
-a/2, 0, 15,
a/2, 0, 15,
a/2, b, 15,
-a/2, b, 15,
-a/2, 0, -1,
-a/2+links, ond, 15,
a/2-rechts, ond, 15,
a/2-rechts, mid-tus, 15,
-a/2+links, mid-tus, 15,
-a/2+links, ond, -1,
-a/2+links, mid, 15,
a/2-rechts, mid, 15,
a/2-rechts, b-bov, 15,
-a/2+links, b-bov, 15,
-a/2+links, mid, -1
addz (ddd-0.012)/2
prism_ 5, 0.012,
-a/2+links+paneelrand,ond+paneelrand, 15,
a/2-(rechts+paneelrand),ond+paneelrand, 15,
a/2-(rechts+paneelrand), mid-tus-paneelrand, 15,
-a/2+links+paneelrand, mid-tus-paneelrand, 15,
-a/2+links+paneelrand,ond+paneelrand, -1
del 1
addz (ddd-0.006)/2
prism_ 10, 0.006,
-a/2+links+glaslat, ond+glaslat, 15,
a/2-rechts-glaslat, ond+glaslat, 15,
a/2-rechts-glaslat, mid-tus-glaslat, 15,
-a/2+links+glaslat, mid-tus-glaslat, 15,
-a/2+links+glaslat, ond+glaslat, -1,
-a/2+links+paneelrand,ond+paneelrand, 15,
a/2-(rechts+paneelrand),ond+paneelrand, 15,
a/2-(rechts+paneelrand), mid-tus-paneelrand, 15,
-a/2+links+paneelrand, mid-tus-paneelrand, 15,
-a/2+links+paneelrand,ond+paneelrand, -1
del 1
addz 0.003
kx = -a/2+links+glaslat
ky = mid+glaslat
dx = (a-(rechts+glaslat+links+glaslat)-glaslat*(roehor-1)) / roehor
dy = (b-(bov+glaslat)-(mid+glaslat)-glaslat*(roever-1)) / roever
for iy = 1 to roever step 1
for ix = 1 to roehor step 1
put kx, ky, 15,
kx+dx, ky, 15,
kx+dx, ky+dy, 15,
kx, ky+dy, 15,
kx, ky, -1
kx = kx+dx+glaslat
next ix
kx = -a/2+links+glaslat
ky = ky+dy+glaslat
next iy
prism_ 5+nsp/3, ddd-0.006,
-a/2+links, mid, 15,
a/2-rechts, mid, 15,
a/2-rechts, b-bov, 15,
-a/2+links, b-bov, 15,
-a/2+links, mid, -1,
use (nsp)
prism_ 10, ddd-0.006,
-a/2+links, ond, 15,
a/2-rechts, ond, 15,
a/2-rechts, mid-tus, 15,
-a/2+links, mid-tus, 15,
-a/2+links, ond, -1,
-a/2+links+glaslat,ond+glaslat, 15,
a/2-(rechts+glaslat),ond+glaslat, 15,
a/2-(rechts+glaslat), mid-tus-glaslat, 15,
-a/2+links+glaslat, mid-tus-glaslat, 15,
-a/2+links+glaslat,ond+glaslat, -1
del 1
material mat1
addz ddd/2-0.007
for ii = 1 to roever*roehor step 1
prism_ 5, 0.007,
get (15)
next ii
del 1