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.
SOLVED!

Is <drawingscale> value a number or a string? [Drawing title with scale symbol based drawing scale]

adura
Booster

Hi to everyone,

I am designing a title object with "scale symbol" for drawings. I need <drawingscale> value for make this "scale symbol".

<drawingscale> is one of autotext. So, are autotexts number or string? Or not both?

If I can use <drawingscale> value as a number (or string) I can draw scale symbol. But I couldn't do that because -I guess- autotexts are not return a number or a string.

 

What can I do?

 

2022-09-15 Drawing Title with Scale Symbol Based Drawing Scale.png

a - d - u - r - a

Akif Duran / Architect
http://www.mimadu.com
AC21 INT, Win10 64Bit Asus N751JW
1 ACCEPTED SOLUTION

Accepted Solutions
Solution
Yves
Advocate

Hi,

It is possible by creating two variables :

AC_OriginalDrawingScale (Text) and AC_Magnification (Real number)

 

Here is the script of my object

 

!!!!!!!!Master script
EPS = 0.0001
unID = 1

ech_pla = SPLIT (AC_OriginalDrawingScale, "%n:%n", num1,sep,val_ech_orig)

dim_ech = 1

IF AC_Magnification > EPS THEN
dim_ech = val_ech_orig / (AC_Magnification/100)
ENDIF


!!!!!!!!!!Script 2D

long_esp = 1.00 
nb_div = 5
ep_ech_plan = 0.002
hach_symb = 64



PEN SYMB_VIEW_PEN


LINE2 0,0,(long_esp/dim_ech)* nb_div,0
HOTLINE2 0,0,(long_esp/dim_ech)* nb_div,0

LINE2 0, ep_ech_plan,(long_esp/dim_ech)* nb_div, ep_ech_plan
LINE2 0, -ep_ech_plan,(long_esp/dim_ech)* nb_div, -ep_ech_plan

HOTLINE2 0, ep_ech_plan,(long_esp/dim_ech)* nb_div, ep_ech_plan
HOTLINE2 0, -ep_ech_plan,(long_esp/dim_ech)* nb_div, -ep_ech_plan



FOR i=1 TO nb_div +1

LINE2 (long_esp/dim_ech)*(i-1), ep_ech_plan,(long_esp/dim_ech)*(i-1),-ep_ech_plan
HOTLINE2 (long_esp/dim_ech)*(i-1), ep_ech_plan/dim_ech,(long_esp/dim_ech)*(i-1),-ep_ech_plan/dim_ech


TEXT2 (long_esp/dim_ech)*(i-1),-ep_ech_plan, STR(long_esp*(i-1),1,0)


dist_der_num = (STW(STR(long_esp*nb_div,1,0))* GLOB_SCALE/1000)/2

IF i = nb_div +1 THEN
DEFINE STYLE "bb" pol_text,ht_text_symb,1,styl_text
SET STYLE "bb"
TEXT2 (long_esp/dim_ech)*(i-1)+dist_der_num,-ep_ech_plan, "m"

ENDIF


NEXT i

SET FILL hach_symb

FOR i=1 TO nb_div-1 STEP 2

POLY2 4, 2+4,
(long_esp/dim_ech)*(i),0,
(long_esp/dim_ech)*(i),ep_ech_plan,
(long_esp/dim_ech)*(i+1),ep_ech_plan,
(long_esp/dim_ech)*(i+1),0


NEXT i

FOR i=2 TO nb_div-1 STEP 2

POLY2 4, 2+4,
(long_esp/dim_ech)*(i),0,
(long_esp/dim_ech)*(i),-ep_ech_plan,
(long_esp/dim_ech)*(i+1),-ep_ech_plan,
(long_esp/dim_ech)*(i+1),0


NEXT i


FOR i=1 TO 10 STEP 2

POLY2 4, 2+4,
((long_esp/dim_ech)/10)*(i),0,
((long_esp/dim_ech)/10)*(i),-ep_ech_plan,
((long_esp/dim_ech)/10)*(i+1),-ep_ech_plan,
((long_esp/dim_ech)/10)*(i+1),0


NEXT i

 

Yves Houssier
Belgium
Archicad 19 -> 24
iMac - Mac Os 10,13

View solution in original post

5 REPLIES 5
Barry Kelly
Moderator

I am not sure how to explain this properly, but here goes.

Autotext values are nothing - neither string or number.

The <autotext> is just some kind of place-holder that can display the value of the autotext field, but does not actually convert the value into a usable string or number.

So you can display the value, but you can not use it.

 

Barry.

One of the forum moderators.
Versions 6.5 to 27
i7-10700 @ 2.9Ghz, 32GB ram, GeForce RTX 2060 (6GB), Windows 10
Lenovo Thinkpad - i7-1270P 2.20 GHz, 32GB RAM, Nvidia T550, Windows 11
Solution
Yves
Advocate

Hi,

It is possible by creating two variables :

AC_OriginalDrawingScale (Text) and AC_Magnification (Real number)

 

Here is the script of my object

 

!!!!!!!!Master script
EPS = 0.0001
unID = 1

ech_pla = SPLIT (AC_OriginalDrawingScale, "%n:%n", num1,sep,val_ech_orig)

dim_ech = 1

IF AC_Magnification > EPS THEN
dim_ech = val_ech_orig / (AC_Magnification/100)
ENDIF


!!!!!!!!!!Script 2D

long_esp = 1.00 
nb_div = 5
ep_ech_plan = 0.002
hach_symb = 64



PEN SYMB_VIEW_PEN


LINE2 0,0,(long_esp/dim_ech)* nb_div,0
HOTLINE2 0,0,(long_esp/dim_ech)* nb_div,0

LINE2 0, ep_ech_plan,(long_esp/dim_ech)* nb_div, ep_ech_plan
LINE2 0, -ep_ech_plan,(long_esp/dim_ech)* nb_div, -ep_ech_plan

HOTLINE2 0, ep_ech_plan,(long_esp/dim_ech)* nb_div, ep_ech_plan
HOTLINE2 0, -ep_ech_plan,(long_esp/dim_ech)* nb_div, -ep_ech_plan



FOR i=1 TO nb_div +1

LINE2 (long_esp/dim_ech)*(i-1), ep_ech_plan,(long_esp/dim_ech)*(i-1),-ep_ech_plan
HOTLINE2 (long_esp/dim_ech)*(i-1), ep_ech_plan/dim_ech,(long_esp/dim_ech)*(i-1),-ep_ech_plan/dim_ech


TEXT2 (long_esp/dim_ech)*(i-1),-ep_ech_plan, STR(long_esp*(i-1),1,0)


dist_der_num = (STW(STR(long_esp*nb_div,1,0))* GLOB_SCALE/1000)/2

IF i = nb_div +1 THEN
DEFINE STYLE "bb" pol_text,ht_text_symb,1,styl_text
SET STYLE "bb"
TEXT2 (long_esp/dim_ech)*(i-1)+dist_der_num,-ep_ech_plan, "m"

ENDIF


NEXT i

SET FILL hach_symb

FOR i=1 TO nb_div-1 STEP 2

POLY2 4, 2+4,
(long_esp/dim_ech)*(i),0,
(long_esp/dim_ech)*(i),ep_ech_plan,
(long_esp/dim_ech)*(i+1),ep_ech_plan,
(long_esp/dim_ech)*(i+1),0


NEXT i

FOR i=2 TO nb_div-1 STEP 2

POLY2 4, 2+4,
(long_esp/dim_ech)*(i),0,
(long_esp/dim_ech)*(i),-ep_ech_plan,
(long_esp/dim_ech)*(i+1),-ep_ech_plan,
(long_esp/dim_ech)*(i+1),0


NEXT i


FOR i=1 TO 10 STEP 2

POLY2 4, 2+4,
((long_esp/dim_ech)/10)*(i),0,
((long_esp/dim_ech)/10)*(i),-ep_ech_plan,
((long_esp/dim_ech)/10)*(i+1),-ep_ech_plan,
((long_esp/dim_ech)/10)*(i+1),0


NEXT i

 

Yves Houssier
Belgium
Archicad 19 -> 24
iMac - Mac Os 10,13
DGSketcher
Legend

@adura It looks like @Yves has probably given you a solution, but for reference there is also GLOB_SCALE which can be used in the drawing space to set the size of text and other objects to paper space sizes. It wouldn't be suitable for a title block referencing the drawing.

Apple iMac Intel i9 / macOS Sonoma / AC27UKI (most recent builds.. if they work)

Thanks a lot for your reply/solution @Yves ... I will adapt your code to my own.

a - d - u - r - a

Akif Duran / Architect
http://www.mimadu.com
AC21 INT, Win10 64Bit Asus N751JW

Thanks for your reply @DGSketcher.
I think GLOB_SCALE will not work here because the object will play on the layout.

a - d - u - r - a

Akif Duran / Architect
http://www.mimadu.com
AC21 INT, Win10 64Bit Asus N751JW