Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
05 ArchiCAD 11 GDL Reference Guide.pdf
Скачиваний:
59
Добавлен:
11.03.2015
Размер:
3.22 Mб
Скачать

Expressions and Functions

Special Functions

Special functions (besides global variables) can be used in the script to communicate with the program. They either ask the current state and different preferences settings of the program, or refer to the current environment of the library part. Request calls can also be used to communicate with GDL extensions.

There are two types of special functions: requests and the IND function:

REQ (parameter_string)

REQUEST (question_name, name | index, variable1 [, variable2,...]) IND (MATERIAL, name_string)

IND (FILL, name_string)

IND (LINE_TYPE, name_string) IND (STYLE, name_string) IND (TEXTURE, name_string)

The return value of the requests is always the number of succesfully retrieved values (integer), while the type of the retrieved values is defined by each request in part.

IND functions return an attribute index (integer) value.

For more details, see IND function description in the “Miscellaneous” > “Requests” on page 242.

String Functions

STR

STR (numeric_expression, length, fractions)

STR

STR (format_string, numeric_expression)

STR{2}

STR{2}(format_string, numeric_expression [, exta_accuracy_string])

The first form of the function creates a string from the current value of the numeric expression. The minimum number for numerical characters in the string is length, while fractions represents the numbers following the floating point. If the converted value has more than length characters, it is expanded as required. If it has fewer characters, it is padded on the left (length > 0) or on the right (length < 0).

202

ArchiCAD 11 GDL Reference Guide

Expressions and Functions

Example:

A=4.5

B=2.345

TEXT2 0, 2, STR(A, 8, 2) ! 4.50

TEXT2 0, 1, STR(B, 8, 2) ! 2.34 TEXT2 0, 0, STR(A*B, 8, 2)! 10.55

In the second and third case, the format_string can either be a variable or a constant. If the format is empty, it is interpreted as meters, with an accuracy of three decimals (display 0 wholes). If the extra accuracy flags are set in the format_string, then the STR{2}function will return the corresponding extra accuracy string in the 3rd parameter.

The format_string can be as seen below:

%[0 or more flags][field_width][.precision] conv_spec

flags (for m, mm, cm, e, df, di, sqm, sqcm, sqf, sqi, dd, gr, rad, cum, l, cucm, cumm, cuf, cui, cuy, gal):

(none)

right justify (default)

-left justify

+

explicit plus sign

(space)

in place of a + sign

'*' 0

extra accuracy Off (default)

'*' 1

extra accuracy .5

'*' 2

extra accuracy .25

'*' 3

extra accuracy .1

'*' 4

extra accuracy .01

'*' 5

extra accuracy .5

'*' 6

extra accuracy .25

flags (for m, mm, cm, df, di, sqm, sqcm, sqf, sqi, dd, fr, rad, cum, l, cucm, cumm, cuf, cui, cuy, gal):

'#'

don't display 0 wholes

flags (for ffi, fdi, fi):

'0'

display 0 inches

flags (for m, mm, cm, fdi, df, di, sqm, sqcm, sqf, sqi, dd, fr, rad, cum, l, cucm, cumm, cuf, cui, cuy, gal): '~' hide 0 decimals (effective only if the '#' flag is not specified)

'^' do not change decimal separator and digit grouping characters (if not specified, these characters will be replaced as set in the current system)

field_width: unsigned decimal integer, the minimum number of characters to generate precision: unsigned decimal integer, the number of fraction digits to generate

ArchiCAD 11 GDL Reference Guide

203

Expressions and Functions

conv_spec (conversion specifier): e: exponential format (meter) m: meters

mm: millimeters cm: centimeters

ffi: feet & fractional inches fdi: feet & decimal inches df: decimal feet

fi: fractional inches di: decimal inches

for areas:

sqm: square meters sqcm: square centimeters sqmm: square millimeters sqf: square feet

sqi: square inches

for angles:

dd: decimal degrees

dms: degrees, minutes, seconds gr: grads

rad: radians

surv: surveyors unit

for volumes:

cum: cubic meters l: liters

cucm: cubic centimeters cumm: cubic millimeters cuf: cubic feet

cui: cubic inches cuy: cubic yards gal: gallons

204

ArchiCAD 11 GDL Reference Guide

Expressions and Functions

Examples:

h = 23

nr = 0.345678

TEXT2 0, h, STR ("%m", nr) !0.346 TEXT2 0, h-1, STR ("%#10.2m", nr) !35

TEXT2 0, h-2, STR ("%.4cm", nr) !34.5678 TEXT2 0, h-3, STR ("%12.4cm", nr)!34.5678 TEXT2 0, h-4, STR ("%.6mm", nr)!345.678000 TEXT2 0, h-5, STR ("%+15e", nr)!+3.456780e-01 TEXT2 0, h-6, STR ("%ffi", nr) !1'-2"

TEXT2 0, h-7, STR ("%0.16ffi", nr) !1'-1 5/8" TEXT2 0, h-8, STR ("% .3fdi", nr) ! 1'-1.609" TEXT2 0, h-9, STR ("% -10.4df", nr) ! 1.1341' TEXT2 0, h-10, STR ("%0.64fi", nr) !13 39/64"

TEXT2 0, h-11, STR ("%+12.4di", nr)!+13.6094" TEXT2 0, h-12, STR ("%#.3sqm", nr) ! 346 TEXT2 0, h-13, STR ("%+sqcm", nr) !+3,456.78 TEXT2 0, h-14, STR ("% .2sqmm", nr)! 345,678.00 TEXT2 0, h-15, STR ("%-12sqf", nr) !3.72 TEXT2 0, h-16, STR ("%10sqi", nr)! 535.80

alpha = 88.657

TEXT2 0, h-17, STR ("%+10.3dd", alpha)!+88.657° TEXT2 0, h-18, STR ("%.1dms", alpha)!88°39' TEXT2 0, h-19, STR ("%.2dms", alpha) !88°39'25" TEXT2 0, h-20, STR ("%10.4gr", alpha) ! 98.5078G TEXT2 0, h-21, STR ("%rad", alpha) !1.55R TEXT2 0, h-22, STR ("%.2surv", alpha) !N 1°20'35" E

SPLIT

SPLIT (string, format, variable1 [, variable2, ..., variablen])

Splits the string parameter according to the format in one or more numeric or string parts. The split process stops when the first non-matching part is encountered. Returns the number of successfully read values (integer).

string: the string to be split

format: any combination of constant strings, %s and %n -s. Parts in the string must fit the constant strings, %s denotes any string value delimited by spaces or tabs, while %n denotes any numeric value.

variablei: the variable names to store the split string parts.

ArchiCAD 11 GDL Reference Guide

205