2025-11-27 06:32 PM
Hello,
I need for a very specific use case to list the Attribute Index of Composites in Plan (with a Label??) and also to List the Index-Nr. of the COmposites in a Schedule.
I cound not find any possibility in this direction an I would be happy if somebody can help od suggest workarrounds or maybe Library parts that can read this information.
Thanks in advance
Gabriel
2025-11-28 09:29 AM
I believe the only way to display an attribute index number in label would be to access it via GDL.
However from looking here you can only read the composite name WALL_COMPS_NAME and the is no parameter for composite index.
https://gdl.graphisoft.com/reference-guide/wall-door-window-and-wall-end-parameters/
2025-11-28 10:31 AM - edited 2025-12-01 02:37 AM
As Scott said I don't think it is possible.
You can REQUEST a name in GDL based on the index number, but you can't request the index number based on the name as far as I know.
If you just need to know the index number for a composite you can print a list from the Attribute Manager.
It will list the index, name and if it is being used in the file.
Barry.
2025-11-30
07:42 AM
- last edited on
2025-12-02
06:19 AM
by
Laszlo Nagy
You could still do it with GDL, and there are two options - one is to maintain a list of IDs in GDL, manually. You only need to add the composite IDs you are using and tagging and order you add them does not matter.
The other option would be to export the text file like Barry suggested and you can then read that text file with GDL and extract information that way.
If you don't want to deal with GDL you might be able to do it with property expression and some IF comparisons
@Barry Kelly I know you can request Surfaces (Materials) and Building materials by ID but can you actually get composites? They have always been missing for some reason.
DIM compositesList [][]
compositesList [1][1] = 1 !ID
compositesList [1][2] = "Your composite 1 name"
compositesList [2][1] = 2 !ID
compositesList [2][2] = "Your composite 2 name"
...
Request name of the composite and store it in returnCompName for example
...
Then loop through the array and compare name to get the ID
FOR i = 1 to VARDIM2(compositesList)
IF returnCompName = compositesList[i][2] THEN
compID = compositesList[i][1]
GOTO "BreakLoop"
ENDIF
NEXT i
"BreakLoop":
TEXT2 0,0, compID
2025-12-01 02:41 AM
@Davor P wrote:
@Barry Kelly I know you can request Surfaces (Materials) and Building materials by ID but can you actually get composites? They have always been missing for some reason.
No, there are no composites in GDL, probably because you can not use composites in GDL, just fills, surfaces and building materials.
Barry.