Graphisoft GDL - Как получить имя и номер макета внутри объекта GDL

Я хочу показать имя и номер макета внутри объекта gdl, который я разместил на своем макете.

Как я могу получить имя и номер макета в своем GDL-скрипте?


person Wilt    schedule 18.05.2016    source источник


Ответы (1)


Вы можете получить имя макета несколькими способами внутри вашего GDL-скрипта.

Обычно используемое решение — использовать теги автотекста <LAYOUTNAME> или <LAYOUTID> в виде строки. Этот тег будет заменен именем макета или идентификатором макета ПОСЛЕ компиляции объекта gdl.

xPos = 0;
yPos = 0;
TEXT2 xPos, yPos, '<LAYOUTNAME>'

or

TEXT2 xPos, yPos, '<LAYOUTID>'

Все теги автотекста можно найти здесь в документации.

Примечание. Имейте в виду, что <LAYOUTID> и <LAYOUTNUMBER> — это разные вещи!

Проблема с этим решением заключается в том, что вы не можете использовать значение, например, в функции, для сравнения со значением. Таким образом, это никогда не будет оценено как истинное:

'<LAYOUTNAME>' = 'my layout name'

Если вы хотите сделать что-то подобное, есть альтернативный способ, используя функция параметров GDL REQUEST

n = request ("HomeDB_info",  "", n, LayoutId, LayoutName, n)

Значения будут храниться в переменных LayoutId и LayoutName

Это также задокументировано здесь и упомянул здесь, на форуме ArchiCAD-TALK

Это значение можно оценить и использовать непосредственно в коде:

IF LayoutName = 'my layout name' THEN
    ! layout name is 'my layout name'
ELSE
    ! layout name is something else
ENDIF
person Wilt    schedule 18.05.2016