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

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

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

1 ответ

Решение

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

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

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

или же

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
Другие вопросы по тегам