Showing results for 
Search instead for 
Did you mean: 
Showing results for 
Search instead for 
Did you mean: 
2024 Technology Preview Program

2024 Technology Preview Program:
Master powerful new features and shape the latest BIM-enabled innovations

About building parametric objects with GDL.

Novice GDL question - which 3D object type to use?

Jim Allen

Apologies if this has been covered elsewhere, I've been looking at a lot of GDL posts and documentation, and I've both learned a lot and been very confused, probably both in equal measure.


I want to create an object which is in effect a 2D and 3D gradient labelling tool. I want to insert it onto a mesh, and then stretch the length and rotate as required, then go to the 3D window and use a hotspot to anchor the non-base end of the symbol to a point on the mesh to give me the z height difference to calculate the slope, and have the gradient displayed in 2d and/or 3D with options for angle, percentage or slope ratio.


The purpose of this object is twofold, the first is simply to label gradients in 3D. Where I work, most of my sites have slopes and gradients. I often have deal with site gradients and cut and fill, so use terrain modelling on most projects. Designing ramps is a ball-ache, and they are expensive and ugly to construct. If I can design them out, so much the better.


Any slope shallower than 1:20 is a 'gradient path' and doesn't need all the complexity of a ramp.


I like to use meshes in 3D and push and pull the nodes to shape the terrain as part of my design approach. Having a tool like this would actually make the design process a lot easier because I could push and pull my mesh, adjust the label and check compliance. 


I started with the Archicad Slope 25 symbol which I have duplicated and edited. This is a screenshot of the modified object:

Screenshot 2023-01-13 at 10.49.53.png


This is broadly how it's scripted:


Screenshot 2023-01-12 at 16.25.24.png

 So far so good. I can take the values for the polyline and hotspots and translate them to 3D, and hopefully that will work except I'm not sure which script to use.


What I in effect want is to be able to define a 'slab' which will rotate in 3d (or 'tilt') when I move the editing hotspot in the z axis, so it looks something like this:


Screenshot 2023-01-13 at 10.27.20.png

Without the circles and labels obviously.


The 3D text will be in a similar position to the 2D text if things work out - but inclined in the plane of the arrow. I want the 2D and 3D appearance to be ostensibly the same.


There is a lot of information on GDL, but not all of it is clear, simple and comprehensive, and it doesn't seem to tell you what the properties of them all are, and what their limitations are, and what they are best suited to.


Should I use a PRISM for this, or can I use an EXTRUDE instead? I just want to translate the 2d xy coordinates to 3D (because it seems easiest and I'm very new at this, and still a bit of a GDL idiot) and have the geometry update itself when I move the 3d hotspot.


Alternatively - is there a better option available that I have missed. Aligning the 3d text will require some head-scratching, but one thing at a time.


Any help and guidance would be greatly appreciated!

Archicad 27 UKI | OS X 12.7.1 Monterey

It would depend on the source data being checked by the IF statement as to the best way to consolidate the checks. As @Lingwisyer has suggested, assigning numeric values to a string list is one option, but another approach would be be to process the product code(?) strings with the various tools in GDL e.g. SPLIT, STRSUB, to break down the name into key parts from the manufacturer's catalog and then action the relevant 2D/3D script sub routine.

Apple iMac Intel i9 / macOS Sonoma / AC27UKI (most recent builds.. if they work)