cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 
Starting August 6, 2024, TLS 1.2 will be the minimum required protocol version for Graphisoft products and services that require an online connection. License Manager Tool update is required on Windows. Learn more…
Libraries & objects
About Archicad and BIMcloud libraries, their management and migration, objects and other library parts, etc.

OMG Title Type Help

Anonymous
Not applicable
I'm completely at a loss on how to create the following title type. It seems like such a shame to have to use old fashion text and lines for titles in archicad, just because I can't seem to get it to match the standard it has to take.

Can anyone help guide me through how to create a title type that matches the attached image? Archicad ships with one that is fairly close, but doesn't have the north arrow on it, and the graphic scale looks different.

Any gdl gurus able to whip this is up like its nothing? Im no GDL guru, and Im at a complete loss.
7 REPLIES 7
Djordje
Ace
Which Archicad?
Djordje



ArchiCAD since 4.55 ... 1995
HP Omen
Anonymous
Not applicable
Im using the latest version of Archicad10 (on mac)

Thanks!
TomWaltz
Participant
You should be able to draw what you want with 2D elements, insert the Text fields you want, then use the "Save as Title Type" command under your File > Libraries... menu.
Tom Waltz
Anonymous
Not applicable
I can get everything to work except the graphic scale. Thats the part that trips me up.
TomWaltz
Participant
Without GDL... that might not be possible. You would need to tie the scale to the viewport somehow, which most objects cannot do without some scripting.
Tom Waltz
Anonymous
Not applicable
TomWaltz wrote:
Without GDL... that might not be possible. You would need to tie the scale to the viewport somehow, which most objects cannot do without some scripting.
Right, Hence my posting here in the GDL forum. 🙂

I've done a few simple gdl tweaks before, but I'm going to need some guidance on this one.
Anonymous
Not applicable
The graphic scale bit is a real pain in title types. They are a little tricky in ordinary symbols, but only if you are dealing with the weirdness of Imperial scales (1/4", 3/8", 1 1/2", 20' = 1", etc...)

The problem in the title types is that for some reason the drawing scale is reported not as a simple proportion as in the GLOB_SCALE parameter but as formated text. This makes it trivially easy to place the scale as a text value but quite a bit of trouble to extract the original numerical information (ie the string `1/4" = 1'-0"` is equivalent to 1:48 ). The problem is further compounded by the fact that the formated text contains seemingly arbitrary numbers of space characters making a simple mapping (brute force) technique difficult.

I did work out the following solution (which I think is kind of clever actually) but I wish I hadn't needed to spend the time on it. I hope this proves useful to some of you.

One word of advice: Don't try to edit or revise the "Simple Title" or "Basic Title" in the library. They are ridiculously complicated and you can probably write a basic title to meet your needs in about 30 to 50 lines of code (excluding the graphic scale mumbo jumbo of course).

The following only serves to extract the integer value of the reciprocal of the scale (like the GLOB_SCALE) for use later in the 2D script to display the graphic. I can post that code later if there is interest. Note that my code disables the graphic for metric scales (ML_graphic_scale = 0) since that was not required by this client.

drwg_scale		= -1

IF STRSTR(AC_DrawingScale, `0"`) > 0 	THEN 100
IF STRSTR(AC_DrawingScale, `1"`) = 1 	THEN 200
IF STRSTR(AC_DrawingScale, `:`) > 0 	THEN 300


100: ! ARCHITECTURAL SCALES

IF STRSTR(AC_DrawingScale, `1/128"`) = 1 	THEN drwg_scale = 1536
IF STRSTR(AC_DrawingScale, `1/64"`) = 1 	THEN drwg_scale = 768
IF STRSTR(AC_DrawingScale, `1/32"`) = 1 	THEN drwg_scale = 384
IF STRSTR(AC_DrawingScale, `1/16"`) = 1 	THEN drwg_scale = 192
IF STRSTR(AC_DrawingScale, `3/32"`)  = 1 	THEN drwg_scale = 128
IF STRSTR(AC_DrawingScale, `1/8"`)  = 1 		THEN drwg_scale = 96
IF STRSTR(AC_DrawingScale, `3/16"`)  = 1 	THEN drwg_scale = 64
IF STRSTR(AC_DrawingScale, `1/4"`)  = 1 		THEN drwg_scale = 48
IF STRSTR(AC_DrawingScale, `3/8"`)  = 1 		THEN drwg_scale = 32
IF STRSTR(AC_DrawingScale, `1/2"`)  = 1 		THEN drwg_scale = 24
IF STRSTR(AC_DrawingScale, `3/4"`)  = 1 		THEN drwg_scale = 16
IF STRSTR(AC_DrawingScale, `1"`)  = 1 		THEN drwg_scale = 12
IF STRSTR(AC_DrawingScale, `1 1/2"`)  = 1 	THEN drwg_scale = 8
IF STRSTR(AC_DrawingScale, `3"`)  = 1 		THEN drwg_scale = 4
IF STRSTR(AC_DrawingScale, `6"`)  = 1 		THEN drwg_scale = 2
IF STRSTR(AC_DrawingScale, `1'`)  = 1 		THEN drwg_scale = 1

GOTO 1000



200: ! ENGINEERING SCALES
IF STRSTR(AC_DrawingScale, `1'`) > 0 		THEN drwg_scale = 12
IF STRSTR(AC_DrawingScale, `2'`) > 0 		THEN drwg_scale = 24
IF STRSTR(AC_DrawingScale, `5'`) > 0 		THEN drwg_scale = 60
IF STRSTR(AC_DrawingScale, `10'`) > 0 		THEN drwg_scale = 120
IF STRSTR(AC_DrawingScale, `20'`) > 0 		THEN drwg_scale = 240
IF STRSTR(AC_DrawingScale, `30'`) > 0 		THEN drwg_scale = 360
IF STRSTR(AC_DrawingScale, `40'`) > 0 		THEN drwg_scale = 480
IF STRSTR(AC_DrawingScale, ` 50'`) > 0 		THEN drwg_scale = 600
IF STRSTR(AC_DrawingScale, `100'`) > 0 		THEN drwg_scale = 1200
IF STRSTR(AC_DrawingScale, `200'`) > 0 		THEN drwg_scale = 2400
IF STRSTR(AC_DrawingScale, `=500'`) > 0 	THEN drwg_scale = 6000
IF STRSTR(AC_DrawingScale, `1000'`) > 0 	THEN drwg_scale = 12000
IF STRSTR(AC_DrawingScale, `1250'`) > 0 	THEN drwg_scale = 15000
IF STRSTR(AC_DrawingScale, `2500'`) > 0 	THEN drwg_scale = 30000

GOTO 1000


300: ! METRIC SCALES
n				= STRSTR(AC_DrawingScale, `:`)
r				= SPLIT(STRSUB(AC_DrawingScale, n, 5), "%n", drwg_scale)
ML_graphic_scale	= 0

1000: ! DONE WITH SCALES 😞