2016-05-18 1 views

ответ

0

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

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

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

или

TEXT2 xPos, yPos, '<LAYOUTID>' 

Все теги автотекста можно найти here in the documentation.

Примечание: Знайте, что <LAYOUTID> и <LAYOUTNUMBER> - это две разные вещи!

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

'<LAYOUTNAME>' = 'my layout name' 

В случае, если вы хотите сделать что-то подобное, что существует альтернативный способ использования the GDL REQUEST options function

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

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

Это также документально here и упоминается here on the ArchiCAD-TALK forum

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