BIM Coordinator Program (INT) April 22, 2024
Find the next step in your career as a Graphisoft Certified BIM Coordinator!
Collaboration with other software
About model and data exchange with 3rd party solutions: Revit, Solibri, dRofus, Bluebeam, structural analysis solutions, and IFC, BCF and DXF/DWG-based exchange, etc.

Height of object instances as a parameter?

Mats_Knutsson
Advisor
Hi folks,
I've got a really neat chair object from the manufacturer. The object can have three pre-set heights. When I create a schedule I want to sort this object according to its height but I can only find the "default" height and not the actual height of the placed instance. I've tried the regular "height" as well as library part parameter ZZYZX. In the attach I've illustrated two chairs with different heights and I'd like to schedule these as two different items. I would not like to use "Top elevation" since the chairs can be placed on different elevations.
How2?
Cheers,
Mats
AC 25 SWE Full

HP Zbook Fury 15,6 G8. 32 GB RAM. Nvidia RTX A3000.
6 REPLIES 6
Barry Kelly
Moderator
How do you change the height of the chair object?
You have to schedule that object parameter.

So if the object parameter allows you to set the height '700', '900' or '1100', then you can schedule that parameter.
But if you set the height in the object by 'height 1', 'height 2' or 'height 3' or something similar you will not have an actual height parameter to schedule.

Basically if there is a parameter in the object that shows you the actual height you can schedule that.
If the actual height is not shown in the object parameters then you are out of luck.
Unless you want to create a Property with an expression formula to calculate the height you want to see.
Or edit the object to create a usable parameter.

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
Mats_Knutsson
Advisor
Barry wrote:
How do you change the height of the chair object?
You have to schedule that object parameter.

So if the object parameter allows you to set the height '700', '900' or '1100', then you can schedule that parameter.
But if you set the height in the object by 'height 1', 'height 2' or 'height 3' or something similar you will not have an actual height parameter to schedule.

Basically if there is a parameter in the object that shows you the actual height you can schedule that.
If the actual height is not shown in the object parameters then you are out of luck.
Unless you want to create a Property with an expression formula to calculate the height you want to see.
Or edit the object to create a usable parameter.

Barry.
Hi Barry,
Thing is I have many objects written in different decades...by different persons/companies... The example chair has its height parameter in "seat height" while another use regular ZZYZX etc. I'm creating a streamlined template for our interior designers and the template contains a company standard library, favourites and a very streamlined navigator setup. Since they are interior designers they constantly need new objects. However we use a lot of objects made by manufacturers and we have no control over those objects.

Expressions: I don't know how to get the bounding box height of a placed element with expressions and I'm not sure it's even possible!?

I know I can add data to the favourites so that I can separate them but at least I want to examine if there's a smarter more automatic way. Many of these objects from manufacturers are very nice to work with with lots of smart settings and I know our architects will give me evil eye when I'm delivering the message that the incredibly smart BIM-program Archicad can't schedule the actual height of things they model in a consistent way. Not to mention the schedules can't do anything decent regarding summarizing things. I already got a whole group's common evil eyes yesterday when they wanted to have a simple total price column (price per item X quantity).

The quick and dirty solution as I see it is to place the object with the different configurations I want, morph them and save as individual dumb objects. Not funny and tomorrow the architects will come with a bunch of new objects that doesn't want to play...

/Mats
AC 25 SWE Full

HP Zbook Fury 15,6 G8. 32 GB RAM. Nvidia RTX A3000.
Barry Kelly
Moderator
Mats_Knutsson wrote:
Thing is I have many objects written in different decades...by different persons/companies... The example chair has its height parameter in "seat height" while another use regular ZZYZX etc.

Tricky problem.
Ideally you will want all of the objects to have the same parameter so it can easily be scheduled.
Is it possible to amend these objects?
I think that would be easier than playing with properties with expressions.


If the heights are set in different ways in each object, then it will be messy to create a property with expressions to create a single common property that all of these objects can have associated to them.
The expression will need to identify the library part name (LPN) (which it can do).
Then if LPN = object_1 the height property = ZZYZX.
If LPN = object_2 then height property = seat height parameter.
If LPN = object_3 then height property = some other parameter.

It will need to filter through all objects to set the height property correctly to match which ever parameter it is set by.
I hope that makes sense.


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
Mats_Knutsson
Advisor
Barry wrote:
Mats_Knutsson wrote:
Thing is I have many objects written in different decades...by different persons/companies... The example chair has its height parameter in "seat height" while another use regular ZZYZX etc.

Tricky problem.
Ideally you will want all of the objects to have the same parameter so it can easily be scheduled.
Is it possible to amend these objects?
I think that would be easier than playing with properties with expressions.


If the heights are set in different ways in each object, then it will be messy to create a property with expressions to create a single common property that all of these objects can have associated to them.
The expression will need to identify the library part name (LPN) (which it can do).
Then if LPN = object_1 the height property = ZZYZX.
If LPN = object_2 then height property = seat height parameter.
If LPN = object_3 then height property = some other parameter.

It will need to filter through all objects to set the height property correctly to match which ever parameter it is set by.
I hope that makes sense.


Barry.
It makes sense yes but the expression is kind of the same as using schedules and picking the crucial parameter from every object that doesn't use "standard" definition. The template is supposed to be a plug-and-play which means no need for any of our Archicad support group. I think I'll need to make it mandatory to enter configuration in a property (to some extents I can pre-set this in the favourites). The interior architects need freedom and since we don't know what kind of objects we'll use a dumb property is the only way to go.

Thanks for your support!
AC 25 SWE Full

HP Zbook Fury 15,6 G8. 32 GB RAM. Nvidia RTX A3000.
Like Barry I would advise editing the GDL code by just adding the following to the master script:
assuming the "seat height" parameter is "seatHeight" or similar.

zzyzx = seatHeight
parameters zzyzx = zzyzx
If the object is locked then you wont be able to do this, however, I doubt that someone who is not intelligent enough to use the correct height parameter in their code would care to protect their code. where does the object come from?

Perhaps I should be creating an "Infinite Furniture" object that works with manufacturers content in the same way "Infinite Openings" does.
Creator of Cadswift's parametric GDL libraries
Creator of Infinite Openings and Component Catalogues
Push the envelope & watch it bend
website: https://cadswift.com.au/
YouTube: https://www.youtube.com/user/CADSwift/playlists
Mats_Knutsson
Advisor
Kristian wrote:
Like Barry I would advise editing the GDL code by just adding the following to the master script:
assuming the "seat height" parameter is "seatHeight" or similar.

zzyzx = seatHeight
parameters zzyzx = zzyzx
If the object is locked then you wont be able to do this, however, I doubt that someone who is not intelligent enough to use the correct height parameter in their code would care to protect their code. where does the object come from?

Perhaps I should be creating an "Infinite Furniture" object that works with manufacturers content in the same way "Infinite Openings" does.
Infinite objects! Thumbs up
AC 25 SWE Full

HP Zbook Fury 15,6 G8. 32 GB RAM. Nvidia RTX A3000.
Learn and get certified!