GDL
About building parametric objects with GDL.

Listing for single components from GDL objects

Jochen Suehlo
Moderator

Hi All,
I would like to discuss a topic that has been on my mind for a long time, but for which I have not yet found a 100% satisfactory solution.
It is about component lists of individual components from GDL objects.
Example: There are 40 GDL objects which consist of a total of 150 different individual parts (components), whereby there are individual objects which consist of 2 or 3 components and others which can consist of up to 50 components. As all objects are highly parametric, the number of components is always different for each placed object.
As a schedule, all installed individual components of all placed objects should now be listed in a common table, whereby components with the number 0 should not appear. The following should be listed as a minimum requirement: order number, description, quantity. The manufacturer of the components and price should also be listed as an option.
It is not possible to generate the desired type of listing via an interactive schedule. This would require one parameter per listing point, i.e. at least 450 parameters for 150 components, which are very difficult to handle in an interactive schedule and also always output the zero values. Furthermore, it is not possible to output a 3-column table in the form described above.
As a workaround, it is conceivable to output the whole thing as an interactive schedule, then save it as tab text and read in this text using a GDL object, which in turn outputs the list exactly in the desired table form with all formatting.
This procedure is feasible, but the programming is very complex and more time-consuming for the user who wants to generate the listing than an analysis at the push of a button.
Another possibility, which I am currently practising, is to use the old component lists, which may disappear with a future update of Archicad.
To create such a list, it is necessary to use a Property Script which outputs the individual components with the COMPONENT command. The result is almost the desired one, but has the following shortcomings:
a) You can actually only output 3 values with the COMPONENT command, the number, a description code and a description text. An additional output of the price or the manufacturer is not possible
b) Since I want to filter the list by manufacturer, among other things, I do this with a Model View Option object.
But the MVO cannot be saved as part of the view settings, because the according field is greyed out
c) The view of the listing which was created in the view map, disappears sometimes for unknown reasons (MACOS AC 27)
d) It is not possible to save the listing as Excel file
e) If you save the component list as tab text, you can then open this file with Excel (much better with Numbers on Mac), and in Excel all special characters like the German "Umlaute" are converted to cryptical characters.

I am very interested in an exchange on the topic and would be very happy to receive detailed comments on this topic. Who has developed a better working system?

Unfortunately, all inquiries on this topic to Graphisoft did not lead to any alternative proposals. If there really aren't any better alternatives, I would very much like Grapfhisoft to develop a really well-functioning component evaluation from GDL objects for this.

Jochen Suehlo . AC12-27 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de
3 REPLIES 3
Pertti Paasky
Expert

Hi Joachim.

I would solve the pproblem by using text and data add-on.

Every object sends data by data add on of it´s content. . Then in the spesific textfile there appears a line after keyword of Your information.

The keyword includes the GLOB_INTGUID + parameterID so that it is unique. You can update the line  when needeed.

The list can be read by Text add on. In GDL You can sort and manipulate text data .

Here are some lines to get  the idea.

Sorry, I can´t help more right now.

 

GDL DATA I/O ADD-ON

intquid,
ch1 = OPEN ("DATA", "file1", "SEPARATOR=';', MODE = RO, DIALOG")
paramId=1
OUTPUT ch1, GLOB_INTGUID+str("%.0m",paramId) , item1, number_of_items1:paramId=paramId+1
OUTPUT ch1, GLOB_INTGUID+str("%.0m",paramId) , item2, number_of_items2:paramId=paramId+1
...
OUTPUT ch1, GLOB_INTGUID+str("%.0m",paramId) , itemn, number_of_itemsn:paramId=paramId+1
CLOSE channel

ch1 = OPEN ("DATA", "file1", "SEPARATOR=';', MODE = RO, DIALOG")
nr = INPUT (ch1, "key1", 1, v1, v2)

ch1 = OPEN ("TEXT", "file1", "SEPARATOR = ';', MODE = RO")
nr = INPUT (ch1, i, 2, v1, v2) ! input of two values from the firstcolumn of the first row
!
- AC-24 FIN - WIN 10 - HP Zbook -
“A winner is just a loser who tried one more time.”
George M. Moore, Jr.
Jochen Suehlo
Moderator

Thank You Pertti,
This is a different approach, which also requires a relatively large amount of effort. I think that it is then better to use the old list schedule and to edit and format the text file exported from there after reimporting it into a GDL object.
By the way, how do you prevent double entries in the DATA addon export file? I have not succeeded.

Jochen Suehlo . AC12-27 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de

I prevent double entries by using unique keys. 

- AC-24 FIN - WIN 10 - HP Zbook -
“A winner is just a loser who tried one more time.”
George M. Moore, Jr.