first I would like to complement Eric Wilk from FC-CADlink on his
most helpful book "ARCHICAD - From CAD to quantity survey".
If any of you are still baffled by the "Calculate Menu (now hidden...)" -
This is a real Eye-Opener!!!
Now to the trick question (see attached image):
A. In a simple wall, I calculate the plaster finish area by using the
"Surface A" reference Quantity.
B. However, in a situation like a Tiled Bathroom Wall, the surface is
covered by TWO different Materials:
- The Tiles themselves, to the hight of 1.8m, which I calculate as
"Length" X 1.8
- The remaining Plaster above the Tiles
The Plaster surface is a "Left-Over" quantity (The tiles have a
"fixed height" of 180cm, The wall hight, however, can change from
situation to situation), and by reason, should be derived by calculating
Total of "Surface A" - Area of Tiles = Plaster.
In my database, I set up a Tile component which has a ratio of 1.8
to the length of a wall, and a Plaster component with a ratio of 1 to
The question is this:
How can one create a "Property Object" (that can link to such walls)
in which both components are "read" from the database and then
have a GDL script within the Property Object subtract "Tiles" from
My GDL is a bit rusty, but I am sure it can be done via the Properties
script and a database lookup (I Better get that new book by CADImage!)
PS: The issue is calculating the quantities per a SINGLE wall, so
using an extra "tile" object or wall is not the solution.
You have already answered your own question.
In your property script you need ... Surface_A-(LENGTH_A*1.8 ).
This of course will assume that every wall you run the sript on will have 1.8m tile height.
You can tell your script to only look at walls with a certain composite name.
That way you can creat composites for walls with and without tiles or even ties of different heights.
But still run the script on all walls and only get the output you want.
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
Thanks for the suggestion!
I am having a really bad day here, clients, phones etc,
and trying to sus the GDL syntax from my very limited
sources is driving me nuts!
My old GDL cookbook 2 seems to skip the issue of
Property Scripts and the GDL manual is plain too cryptic...
Can you post a user-friendly sample of how this is scripted
I'm sure once someone shows me the way to go about this
it would seem obviously simple to me too 🙂!
The GDL manual does not give adequate examples of Property Scripts, however there are sample scripts in the standard library that you can study. And, of course, you have Eric Wilk's book.
Something else you might consider for the example you give is to use a Component Schedule, which schedules the pieces of a complex profile wall (or composite). If your tile is always at the same height, as you say, model a tile skin in your CP wall, and place your vertical stretch lines in the plaster area above it - so that the tile is always that high yet the wall can be made taller.
If the numbers coming out of the Component Schedule (set up in your Project Map) are not exactly what you need, you can publish the schedule as a text (CSV) file which can be linked to an Excel spreadsheet, or Access/Filemaker database for further computation and reporting - most of which is easier than writing Property Scripts.
Of course, if you want an entirely-inside-ArchiCAD solution, then back to GDL and property scripts and Eric's book. 😉
One of the forum moderators AC 27 USA and earlier • macOS Ventura 13.6.2, MacBook Pro M2 Max 12CPU/30GPU cores, 32GB
Thanks - I actually came across this post a couple of hours back 🙂
What's up with Djordge these days? Still in Dubai?
In this case I need the "entirely-inside-ArchiCAD solution", as I am
linking AC to a national Quantity Survey Database, using the exact same
Chapters & Keys - so it is rather easy to import hundreds of list items
(via excell) into the AC database, including prices as they update quarterly,
and also in the end, outputting the same keyed quantities from AC back
into the national DB - to be incorporated in the more conventional format,
Err... the database has over 3000 line items!!!
Here is the obvious and dead simple solution (See attachments in this and following posts):
1. All Components are linked into a Property Object from my custom DB.
2. In case of the Plaster component (the one from which we need to subtract
the area covered by the Tiling), the trick is as follows:
- Link in the Plaster Component as usual
- Change the "Proportional With..." field from "Surface A" to "CUSTOM"
- In the CUSTOM field, type the following expression:
3. These Global parameters were found at the end of the GDL manual, and
I am certain that other formulas can be developed from here (see
4. Shown is the end result after importing in Excell. Notice the total
partition surface as calculated for the cement bricks (The test wall was 200/300cm)
I don't actually use the database to calculate the quantities - maybe I should look into that.
Barry, I can't disclose the full method devised by Eric Wilk,
at least not without his consent, but using Excell allows one
to very easily manage whole datasets within the AC database.
One should definitely look into that!
A very similar method is used by CADimage for their Keynotes solution!
I attach a property script to the walls.
In that script i would just use the formula ...
Q: Which part of the GDL object do you use to input the script?
I tried various places (Master Script, Property Script...), but
non returned the result needed.
Do you set up specific parameters ("plaster area") in the parameters