BIM Coordinator Program (INT) April 22, 2024
Find the next step in your career as a Graphisoft Certified BIM Coordinator!
GDL
About building parametric objects with GDL.

Standard Door Leaf Options

hgodhani98
Contributor

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

3 REPLIES 3
Barry Kelly
Moderator

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.

One of the forum moderators.
Versions 6.5 to 27
Dell XPS- i7-6700 @ 3.4Ghz, 16GB ram, GeForce GTX 960 (2GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Lingwisyer
Guru

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 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win11 | i9 10850K | 64GB | RX6600 Win10 | R5 2600 | 16GB | GTX1660
Erwin Edel
Rockstar

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

 

ErwinEdel_0-1687765133577.png

 

Erwin Edel, Project Lead, Leloup Architecten
www.leloup.nl

ArchiCAD 9-26NED FULL
Windows 10 Pro
Adobe Design Premium CS5
Learn and get certified!