License delivery maintenance is planned for Saturday, July 26, between 12:00 and 20:00 CEST. During this time, you may experience outages or limited availability across our services, including BIMcloud SaaS, License Delivery, Graphisoft ID (for customer and company management), Graphisoft Store, and BIMx Web Viewer. More details…

GDL
About building parametric objects with GDL.

Wall Reference Line & Slab Reference plane location

DNU
Booster

Hello
I'm working on a custom label.
I need to know the location of the reference line from a wall (or plane from a slab) so the label is always placed perfectly next to the element.

DNU_0-1689861308018.png

Is this possible?

In this post the "WALL_REFLINE_OFFSET" is requested at Graphisoft, for now without result?

 

 

AC 14 - 28
WIN 11
GDL
4 REPLIES 4
Jochen Suehlo
Moderator

I created a label for straight walls, where the label is placed directly on top of the walls surface on both sides as 2D-Fill to mark the walls surface..
I had to do a lot of Case distinctions.
I needed the following parameters:
- WALL_DIRECTION

- WALL_FLIPPED

- WALL_POSITION[1]

- WALL_POSITION[2]

 

Maybe you do not need this if you always want to place on the reference line.

 

For label positioning use this:

add2 LABEL_POSITION[2][1] + LABEL_POSITION[3][1],
LABEL_POSITION[2][2] + LABEL_POSITION[3][2]


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

Thanks Joachim for the reply.

 

The ADD2 LABEL_POSITION... is unfortunately not enough 😞.

I know the struggle with the WALL_DIRECTION and WALL_FLIPPED parameters from a previous label, it worked out eventualy.

Do you compare the WALL_POSITION[1] with the LABEL_POSITION[1][1] to know the offset distance?

 

AC 14 - 28
WIN 11
GDL
Jochen Suehlo
Moderator

Here is a part of my script:

 

! Position des Etiketts bezogen auf den Ursprung
_dict_x = LABEL_ASSOC_ELEM_GEOMETRY.referenceLine2D.contour.edges[1].begPoint.x
_dict_y = LABEL_ASSOC_ELEM_GEOMETRY.referenceLine2D.contour.edges[1].begPoint.y
! Position der Wand bezogen auf den Ursprung
wall_pos_x = WALL_POSITION[1]
wall_pos_y = WALL_POSITION[2]

! Differenzwerte X-Y der Positionen Wand zu Etikett
diff_dict_x = (_dict_x - wall_pos_x)
diff_dict_y = (_dict_y - wall_pos_y)

 


I am doing different case distinctions like this:

 

IF ABS(WALL_DIRECTION - 90)  < eps THEN		! S E N K R .  U N T E N

	IF diff_dict_x < 0 THEN diff = diff* (-1)
	! ......................... !
	IF WALL_FLIPPED = 1 THEN dist_C_value = 0 ELSE dist_C_value = 1
	mul2_2_values = -1
	mal_wert_value = 1
ENDIF

IF ABS(WALL_DIRECTION - 180) < eps THEN		! W A A G.  R E C H T S

	IF diff_dict_y > 0 THEN diff = diff* (-1)
	! ......................... !
	IF WALL_FLIPPED = 1 THEN dist_C_value = 0 ELSE dist_C_value = - 1
	mul2_2_values = 1
	mal_wert_value = 1
ENDIF

 

 

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

Thanks Joachim for the help.

I think I can continue my search with this. For the time being I have already been able to create a well-functioning label, not yet with all the desired functionalities, but that is for later when I have / get some time again.

AC 14 - 28
WIN 11
GDL