2025-09-21 10:40 PM
I'm relatively new to AC and maybe I'm missing something:
With the dimensioning tool, I can't seem to figure out how to use associative dimensions with objects (e.g. the built in mirror object from AC). I can only use the non-associative ones... If I move/resize the mirror then the dimensions aren't correct anymore.
2025-09-22 03:37 AM
Make sure you are dimensioning to a moveable node of the object and not an edge.
The dimension marker should be a round cross hair as you pick the dimension points.
If they are a square cross hair, then they will not be associated.
And make sure the dimension is not set as 'Static' in the dimension settings.
Barry.
2025-09-22 12:28 PM - edited 2025-09-22 12:32 PM
What do you mean with movable node? So this is a mirror object from the Archicad built in library and I've tried all possible surfaces/edges/nodes (the points that appear when I drag/move the object) - they are all square non associative cross hairs. The faucet below which is a .rfa import also has the same issue. The dimension tool's "Static Dimension" setting is unticked.
With other objects like walls/slabs etc. the round cross hair appears.
Thanks for your help.
2025-09-23 02:54 AM
When you select the object, you will see black round hotspots or pink (coloured) diamond hotspots.
The black ones are just regular hotspots and dimensions do not associate to them.
The pink diamond hotspots are moveable and the dimension will associate to them with the circular cross hair.
Whether an object has moveable hotspots or not depends on how it was scripted.
What confuses it a bit is that in some objects, the black hotspot can be stretched for the height, but these will still not associate to a dimension.
Other elements like walls, beams roof, etc (not objects) will be stretchy with black hotspots and the dimensions will associate to these - confusing I know.
It is only when choosing the dimension points, can you tell if they are associated or not.
Square cross hair = not associated.
Round cross hair = associated.
If an object is not scripted with moveable hotspots, there is not a lot that you can do.
Other than script your own objects, which is what I do.
Barry.
2025-09-23 02:14 PM - edited 2025-09-23 02:18 PM
Hi Barry,
Just a quick clarification
If "simple" hotspot have a single ID, they will be associative for dimentions.
Graphisoft must be aware of this, but unfortunately, their objects often don't respect this rule!
unID = 1
hotspot 0,0,0,unID : unID = unID + 1
hotspot a,0,0,unID : unID = unID + 1
hotspot 0,0,zzyzx,unID : unID = unID + 1
hotspot a,0,zzyzx,unID : unID = unID + 1
2025-09-23 03:54 PM
That is good to know but doesn't help if the Graphisoft objects don't have IDs.
You need to be careful with the IDs.
If you use the UNID = UNID + 1 to increase the ID number, then you can use these in any loops or gosub routines.
That means the IDs will possibly change in order and the associated dimensions will link to that hotspot still.
So you can end up with your dimensions jumping around as they follow the hotspot ID.
It is better to give them a fixed but unique number that doesn't change.
Barry.
2025-09-23 05:05 PM
I know this doesn't help with Graphisoft objects.
But I thought this clarification could be useful for other GDL users.
And thanks for the note about ID !
2025-09-24 04:27 AM - edited 2025-09-24 04:28 AM
When I know I will be using different loops, I usually set some ranges of IDs for each so that changing the number of times one thing loops does not impact the IDs of other hotspots.
hs_storey = 400
hs_base = 600
hs_grid_s = 800
hs_grid_b = 1000
hs_grid_o = 1200
Ling.
| AC22-28 AUS 3110 | Help Those Help You - Add a Signature |
| Self-taught, bend it till it breaks | Creating a Thread |
| Win11 | i9 10850K | 64GB | RX6600 | Win11 | R5 2600 | 16GB | GTX1660 |