¬аше окно в мир —јѕ–
 
Ќовости —татьи јвторы —обыти€ ¬акансии Ёнциклопеди€ –екламодател€м
—татьи

6 сент€бр€ 2017

ARCHICAD: ќткрыва€ заново. IV. язык GDL: программирование дл€ уникальных задач архитектора

—ветлана  равченко, практикующий архитектор

—ветлана  равченко

ќт российского представительства компании GRAPHISOFTЃ :

Ётот экспертный материал продолжает цикл статей ЂARCHICAD: открыва€ занової, начатый в декабре статьЄй ¬ладимира —авицкого Ђ—оздание конструкций и извлечение рабочих чертежей из моделиї а затем продолженный публикаци€ми —ветланы  равченко Ђ¬изуализаци€ Ц новые возможности дл€ архитектораї и јлександра јнищенко ЂTEAMWORK: эффективна€ командна€ работа шаг за шагомї. ÷икл призван помочь пользовател€м в полной мере раскрыть весь потенциал ARCHICADЃ. ћы попросили архитекторов поделитьс€ личным опытом использовани€ программы с применением нестандартных подходов, малоизученных функций и новых возможностей, о которых многие пользователи могут и не подозревать.  ак разработчики приложени€ ARCHICAD мы уверены, что только глубокое знание продукта может раскрыть всю его ценность и решающим образом повли€ть на результаты, скорость и качество работы проектировщика.

¬ы тоже предпочитаете Ђнепротоптанные дорожкиї? »меете опыт применени€ нестандартных подходов в работе с ARCHICAD, регул€рно задействуете не самые известные возможности приложени€? Ѕудем рады пригласить к сотрудничеству новых авторов: russia@graphisoft.com.


***

язык GDL: уникальные возможности инструмента шаг за шагом

Ќаверн€ка многие из вас слышали о GDL в ARCHICAD, однако как им пользоватьс€ в работе до сих пор знают далеко не все. ”читыва€ неверо€тную полезность этой функции, а также множество вопросов после моего первого вебинара на эту тему, € решила более подробно рассказать о том, как даже поверхностное его знание может здорово помочь в повседневной работе архитектора.
GDL-0-1

Ќачнем с основ
GDL (Geometric Description Language, €зык геометрического описани€) Ц €зык программировани€, подобный €зыку BASIC, созданный дл€ работы в среде ARCHICAD. — его помощью описываютс€ объемные 3D-тела (такие как двери, окна, мебель) и 2D-символы в окне плана этажа. Ёти объекты называютс€ Ѕиблиотечными Ёлементами.

ƒл€ тех, кто хоть немного знаком с программированием, освоить этот €зык не составит труда. ¬прочем, при достаточном желании изучение GDL окажетс€ вполне по силам и человеку, далекому от этой среды.

Ћюбой архитектор изучал в свое врем€ геометрию и начертательную геометрию, имеет отличное объемное мышление, а это уже половина успеха. Ќе нужно сразу пытатьс€ написать сложные объекты, начинать стоит с основных геометрических фигур и форм; много информации можно почерпнуть, изуча€ скрипты других Ѕиблиотечных Ёлементов. Ќу а самый главный источник информации Ц это справочное руководство GDL, которое можно открыть через меню ѕомощь в самом ARCHICAD.

»так, дл€ чего архитектору может пригодитьс€ знание GDL? Ќапример, в отличие от Grasshopper, при помощи которого можно создавать сложные структуры, GDL просто незаменим дл€ написани€ различных маркеров и выносных надписей, а также при создании специальных компонентов дл€ других Ѕиблиотечных Ёлементов или инструментов. ќдним из моих первых применений GDL в работе было создание специального филенчатого полотна двери, которое при изменении размеров не масштабировалось во все стороны, а мен€ло только размеры филенки. “олщина фигурной рамки и ширина обв€зки оставались неизменными. “акже архитекторам очень часто хочетс€ добавить какие-то простые функции в существующие объекты стандартных библиотек Ц и это основна€ причина, по которой начинают вникать в GDL.

Ѕезусловно, знание GDL не €вл€етс€ жизненно необходимым, и многие из этих задач можно решить стандартными инструментами. Ќапример, можно построить филенки с обв€зкой из перекрытий и сохранить как специальное полотно двери. ≈сли у вас таких нестандартных дверей всего несколько штук, то так будет даже быстрее. Ќо если в вашем проекте много подобных дверей разных размеров и ширина их мен€етс€ в процессе работы, то написание специальной панели в GDL значительно ускорит и упростит работу.

√еометрическое описание подразумевает, что любую из возможных фигур можно написать текстом по размерам или координатам.

ƒл€ 3D-скрипта есть блок команд основных пространственных фигур, таких как:

  • BLOCK и BRICK - параллелепипед, стро€щийс€ по трем размерам с началом в точке 0 системы координат
    BLOCK a, b, c
    BRICK a, b, c
    GDL

  • CYLIND Ц цилиндр вдоль оси Z, с высотой h и радиусом r
    CYLIND h, r
    GDL

  • SPHERE Ц сфера с центром в начале координат и радиусом r
    SPHERE r
    GDL

ѕохожим образом описываютс€ эллипс и конус.

—ледующий блок фигур уже сложнее Ц это различные призмы. ќни описываютс€ набором координат точек. —ама€ проста€ призма определ€етс€ количеством точек (n), высотой (h) и перечислением координат всех точек по пор€дку.

  • PRISM n, h,
    • x1, y1,
    • Е
    • xn, yn
GDL

≈сть много разновидностей призмы. —ледующий вид, PRISM_, позвол€ет указывать к координатам точек коды статусов, которые определ€ют видимость граней и ребер, а также позвол€ют создавать криволинейные призмы и призмы с отверсти€ми (см. в справочнике раздел  оды —татусов). ƒругой вид, BPRISM_, создает призму, закрученную вокруг оси Y. FPRISM_ строит призму с фаской или скруглением по верхней стороне.
GDL

—уществует несколько команд, описывающих более сложные фигуры на основе полилиний: EXTRUDE, PYRAMID, REVOLVE, RULED, SWEEP, TUBE, COONS, MASS. »х описание с примерами можно найти в справочнике.

ƒл€ 2D-скрипта фигуры описываютс€ другими командами: лини€, круг, пр€моугольник, полилини€, сплайн. Ќо можно прописать и команду дл€ построени€ проекции из 3D-скрипта. —оздание 2D- или 3D-форм Ц это только часть функционала GDL. ≈сли вам нужен просто стол, то проще построить его инструментами самого ARCHICAD. ќбъект пишетс€ в случае, когда требуетс€ какой-то параметризм: возможность выбора разных типов ножек дл€ стола, количества ножек, изменение размеров стола с сохранением остальных размеров, расчет пиломатериала дл€ его изготовлени€, вес и стоимость. ќбъект может вообще не содержать никакой геометрии, а только производить расчеты. ƒл€ этого используютс€ в том числе и ”правл€ющие ѕредложени€ (ќператоры ”правлени€), такие как циклы, условные операторы, обращение к определенному месту кода (подпрограмме). — циклами и услови€ми лучше ознакомитьс€ в самом начале Ц используютс€ они часто. “ак, во всех приведенных ниже примерах есть условные операторы.

ѕ–»ћ≈– є1 Ц поворот объекта

„асто у проектировщиков возникает желание сделать объект поворачивающимс€. Ќа этом простом примере и рассмотрим структуру Ѕиблиотечного Ёлемента, а также основные окна –едактора ќбъектов GDL.

„тобы открыть любой объект, размещенный в пространстве проекта (если разработчик не наложил на него пароль), нужно, выделив его, нажать комбинацию клавиш Ctrl+Shift+O. ƒругой способ Ц воспользоватьс€ меню ‘айл > Ѕиблиотеки и ќбъекты > ќткрыть ќбъект. ≈сли в этот момент ни один объект не был выделен, то откроетс€ окно дл€ выбора объекта.

ƒобавим параметры поворота, например, к жалюзийной решетке (рис. 1).

GDL

–ис.1. ѕервый подопытный

GDL

–ис.2. ќкно –едактора объектов GDL

»так, мы открыли окно –едактора объектов GDL (рис. 2).

—лева вверху здесь расположено окно просмотра разных видов, как в обычном окне параметров объекта; еще левее кнопки дл€ выбора вида Ц план, фасад, 3D-окно и предпросмотр.

Ќиже располагаютс€ кнопки дл€ открыти€ таблиц параметров, списков данных и скриптов. —крипты можно открыть двум€ способами: кликнуть на кнопку с названием скрипта Ц открыть в этом же окне, кликнуть на кнопку правее с пиктограммой окна Ц скрипт откроетс€ в отдельном окне. Ёто может быть полезно, чтобы одновременно видеть разные скрипты (рис. 3).

GDL 3

–ис. 3. ќдновременно открытые разные скрипты

Ќаверху в окне любого скрипта есть очень нужна€ кнопка ѕроверить: при ее нажатии редактор подскажет, нет ли в скрипте ошибок. —ообщение будет содержать причину ошибки и номер строки, в которой найдена ошибка.

¬ разделе Ђƒеталиї можно выбрать подтип объекта: специальное полотно двери, дверна€ ручка, рама навесной стены и так далее.

“ак, специальные объекты (ручка, полотно, рама) по€в€тс€ в соответствующем окне выбора этих элементов. ѕри выборе какого-либо 2D-типа в объекте будут отсутствовать окна дл€ трехмерной геометрии. “ам же выбираютс€ типы дл€ разных маркеров Ц узла, разрезов, выносной надписи, зоны; они также по€в€тс€ в соответствующих инструментах.

¬ этом разделе можно заполнить описание объекта и выбрать пароль.

ƒалее Ц Ђѕараметрыї, где в виде таблицы представлены все данные, которые используютс€ в этом объекте и которые можно измен€ть во врем€ работы над проектом.

“ут нужно добавить параметры дл€ поворотов, которые мы позже будем использовать.

GDL 4

–ис. 4. ƒобавление параметров

Ќажимаем кнопку Ќовый, расположенную выше таблицы (рис. 4). ѕо€витс€ нова€ строка, в которой нужно заполнить столбцы.

ѕервый из этих столбцов Ц ѕеременна€. «десь мы латиницей и без пробелов пишем название переменной, которое будет использоватьс€ в скриптах. »меновать нужно так, чтобы было несложно запомнить и при этом легко пон€ть, за что эта переменна€ отвечает. ¬ нашем случае нужно создать две переменные дл€ значени€ углов поворотов по ос€м X и Y (вокруг оси Z объект и так можно поворачивать пр€мо в плане). я решила назвать их angle_x и angle_y.

¬ следующем столбце нужно выбрать тип данных. ¬арианты выбора представлены в таблице 1:

GDL таблица 1

ѕоследние два типа не используютс€ в построении объекта, а нужны дл€ большей нагл€дности и упор€доченности списка в окне параметров объекта. Ќам нужен угол Ц в таблице это втора€ пиктограмма.

“ретий столбец Ц »м€. “ут можно без правил на любом €зыке написать, что именно мы хотим потом увидеть в окне параметров объекта.

» последний столбец Ц «начение. —ейчас тут можно оставить 0: это значение мен€етс€ в любой момент как в скрипте, так и в параметрах самого объекта.  ак выгл€д€т два новых параметра в окне –едактора объектов GDL, показано на рис. 5. — помощью стрелок в начале строки можно переместить строку в удобное место.

GDL 5

–ис. 5. ƒобавленные параметры

«атем нужно сохранить объект под новым именем, так как стандартна€ библиотека зашита в контейнер, и в нем нельз€ перезаписывать объекты. ќкно ѕараметров объекта будет теперь выгл€деть вот так (рис. 6).
GDL 6

–ис. 6. Ќовые параметры в окне ѕараметров объекта

ѕо€вились два новых параметра, значение которых можно мен€ть в любой момент. Ќо сейчас ничего не произойдет, так как еще не написано никаких команд с их использованием.

“еперь нужно открыть окно 3D-скрипта.

«десь идет полное описание построени€ трехмерной модели на основе заданных параметров.  роме того, в объект могут быть вложены разные макросы.

ѕеред всеми построени€ми нужно повернуть систему координат, в которой будет строитьс€ объект. “ут важно пон€ть вот какую логику: все повороты, перемещени€ и масштабирование происход€т не так, как при работе в самом ARCHICAD. ћы не берем элемент и не поворачиваем его, а поворачиваем глобальную систему координат (после изменени€ она становитс€ локальной) перед построением объекта.

ѕеремещение (команда ADD), поворот (ROT), масштабирование (MUL) Ц это команды преобразовани€ системы координат. ƒальше преобразовани€ можно удал€ть в скрипте по одному, сразу по несколько либо удалить сразу все. ¬ справочнике все это описано достаточно подробно и с примерами.

ѕример перемещени€ системы координат в 3D-пространстве сразу по трем ос€м показан на рис. 7.

ADD a, b, c

GDL 7-49

–ис. 7. —хема перемещени€ системы координат

»так, перед всеми построени€ми поворачиваем систему координат сначала по одной, потом по другой оси. ѕоворот по оси ’ выполн€ет команда ROTX alphax, где alphax Ц угол поворота против часовой стрелки; вместо alphax нужно вписать заранее созданную переменную. ѕо оси Y поворот выполн€етс€ аналогично (рис. 8).
GDL 7-49

–ис. 8. »зменение 3D-скрипта

“еперь можно задавать разные углы дл€ поворота Ц и в окне просмотра, расположенном вверху слева, будут происходить изменени€ 3D-модели (рис. 9).
GDL 7-49

–ис. 9. ѕри изменении углов мен€етс€ изображение в окне просмотра

“еперь можно задавать разные углы дл€ поворота Ц и в окне просмотра, расположенном вверху слева, будут происходить изменени€ 3D-модели (рис. 9).

Ќо в 2D-виде пока ничего не происходит. ¬ 2D-скрипте объект строитс€ отдельными лини€ми и полилини€ми, так отрисовка объекта в плане происходит во много раз быстрее. Ќа одном объекте это незаметно, но если в проекте окажутс€ сотни таких решеток, торможение будет существенным. ћожно высчитать координаты точек этих линий и простроить их так, как они выгл€дели бы в проекции повернутого объекта, но это не очень просто и не очень быстро. ¬ этой решетке € предлагаю следующее решение: если углы по X или по Y не равны нулю, то объект в 2D-скрипте, то есть дл€ плана, будет отрисовыватьс€ как проекци€ трехмерной модели, а иначе по-старому.

ѕроекцию модели дл€ 2D-скрипта строит команда PROJECT2 projection_code, angle, method. „то означают projection_code, angle, method Ц можно прочитать в справочнике, мы же познакомимс€ с более важной командой из раздела операторов управлени€ IF Ц THEN Ц ELSE Ц ENDIF. Ёто операторы условий, которые помогут выстроить предложение услови€ из предыдущего абзаца.

Ќа рис. 10 € выделила добавленные команды в 2D-скрипте и правее красным цветом дописала Ђпереводї.

GDL 7-49

–ис. 10. »зменение 2D-скрипта

“еперь требуетс€ только сохранить объект и можно им пользоватьс€ (рис. 11). ѕреимущество такого метода перед преобразованием в морф заключаетс€ в том, что объект остаетс€ параметрическим, его можно считать в спецификаци€х, в нем можно мен€ть размеры планок, размеры рамки и всЄ остальное, что было в оригинальном объекте.
GDL 7-49

–ис. 11. ѕовернутые в пространстве новые объекты

“ак подробно на этом примере мы рассмотрели основные окна и скрипты –едактора объектов GDL.

≈сли выбранный вами дл€ поворота объект имеет параметры не в виде списка, как в этой решетке, а в виде картинок и схем, это означает, что разработчик написал также графический интерфейс. „аще всего при этом стандартный список с параметрами скрывают, как на рис. 12: в выпадающем списке страниц параметров нет раздела Ђ¬се параметрыї.

GDL 7-49

–ис. 12. ¬ этом объекте отсутствует список всех параметров в стандартном виде

¬ этом случае нужно зайти в скрипт параметров и найти команду, котора€ пр€чет все параметры (рис. 13). ¬ этом скрипте описываютс€ все действи€, которые вли€ют на параметры:
  • обозначение вариантов или диапазонов возможных значений (VALUES);
  • какие-либо расчеты, результат которых присваиваетс€ параметру (PARAMETERS);
  • скрытие или блокировка параметров (HIDEPARAMETER, LOCK).
GDL 7-49

–ис. 13. —трока в скрипте параметров, котора€ пр€чет все параметры

—троку HIDEPARAMETERS ALL можно просто удалить либо, поставив в начале строки Ђ!ї, сделать ее нечитаемой (по синтаксису GDL строка, начинающа€с€ с восклицательного знака, считаетс€ комментарием. ƒалее описани€ и переводы на скриншотах € буду писать именно после знака Ђ!ї). ѕосле этого в списке страниц параметров по€витс€ строка Ђ¬се параметрыї, и, выбрав ее, вы увидите стандартного вида список с параметрами, среди которых будут и новые строки дл€ поворота.

ѕ–»ћ≈– є2 Ц текст на символе

—ледующий пример € беру из текущего проекта. ѕри работе с планом многоквартирного жилого здани€ требовалось на наружных блоках кондиционеров поставить букву Ђ ї Ц причем так, чтобы она всегда располагалась вертикально.  онечно, букву можно было бы просто дописать сверху текстом или поставить выносную надпись-текст, но тогда при повороте кондиционера, возможно, пришлось бы двигать и текст.

ƒл€ начала € добавила четыре новых параметра (рис. 14):

GDL 7-49

–ис. 14. ƒобавление новых параметров в объекте  ондиционер ¬оздуха

  1. ѕоказывать текст: тип параметра Ц логическое значение, что подразумевает два возможных значени€: 0 (нет) и 1 (да). “аким образом, текст можно будет включить или отключить.
  2. —пециальный текст: тип параметра Ц текстовый. ѕозволит вписывать любой текст в символ (€ намерена использовать одну букву, чтобы она помещалась внутри пр€моугольника блока кондиционера).
  3. Ўрифт: тип Ц текстовый. ќбратите внимание Ц некоторые виды написани€ этой переменной позвол€ют выбирать в столбце значени€ шрифта из списка установленных на компьютере. ЂFonttypeї вызывает это список автоматически, если же € напишу Ђtypefontї или просто Ђfontї, то придетс€ писать название шрифта вручную. Ётот момент € заметила случайно в каком-то из стандартных объектов.
  4. ѕеро текста: тип Ц перо. Ќу, тут всЄ пон€тно.
“еперь посмотрим на пиктограммы, которые € нажала в начале строк.

” первой строки нажата пиктограмма GDL PICTO, что означает bold Ц жирный. “о есть эта строка в окне параметров объекта будет жирной.

” трех других Ц пиктограмма GDL PICTO. ќна означает, что эти строки будут вложены выпадающим списком под первую строку.

Ќа рис. 15 Ц скриншот, иллюстрирующий, как это выгл€дит в ѕараметрах ќбъекта.

ƒл€ начала € добавила четыре новых параметра (рис. 15):

GDL 7-49

–ис. 15. ќкно ѕараметров ќбъекта

ј на рис. 16 Ц то, что € дописала в 2D-скрипте (по традиции с переводом и комментари€ми).
GDL 7-49

–ис. 16. ƒописанные строки в 2D-скрипте

Ќа следующем скриншоте (рис. 17) € дл€ большей €сности подкрасила разные типы слов/команд/переменных.
GDL 7-49

–ис. 17. ƒописанные строки в 2D-скрипте с по€снени€ми

ќбъект готов (рис. 18).
GDL 7-49

–ис. 18. Ќовые объекты на плане под разными углами

ј если бы € не писала строки с поворотом и масштабированием, то объект выгл€дел бы так, как на рис. 19.
GDL 7-49

–ис. 19. Ќовые объекты на плане под разными углами без строк поворота и масштабировани€

ѕ–»ћ≈– є3 Ц детализаци€

ƒл€ упрощени€ работ над проектом можно при написании объекта добавить текстовый параметр с выбором из нескольких вариантов детализации (простой, средний, детальный). » в 3D-скрипте при построении разных мелких деталей дописать условие типа:

если уровень детализации = УдетальноФ, то
(описание построени€ деталей)
конец услови€

ќтдельного внимани€ заслуживают √лобальные ѕеременные. ¬ справочном руководстве они занимают 40 страниц и дл€ удобства поиска сгруппированы по темам. ¬ предыдущем примере € использовала некоторые данные об ориентации объекта в проекте. “от же раздел справочного руководства содержит √лобальные ѕеременные дл€ координат расположени€ объекта Ц с их помощью создаютс€ объекты типа выноски с координатами или отметки высоты на разрезе/фасаде.

ќчень часто используетс€ GLOB_SCALE Ц масштаб чертежа (зависит от вида согласно текущему окну), при масштабе 1:100 он равен 100, при масштабе 1:20 равен 20. ѕримен€етс€ чаще всего дл€ перевода размера шрифта в метры модели или наоборот. “акже на этот параметр можно Ђповеситьї варианты отображени€ на плане. Ќапример, дл€ скамейки написать в 2D-скрипте следующее:

“аб 1 кр

“ак на генплане в масштабе 1:500 скамьи отобраз€тс€ пр€моугольниками, а на фрагменте с более крупным масштабом будет отрисовыватьс€ детальна€ проекци€.

ѕодобный прием, но уже дл€ трехмерной модели, используетс€ в стандартных деревь€х Ц если включить галочку јвтоматический тип кроны. Ќа определенном рассто€нии от камеры тип кроны мен€етс€ с детального на простой, а с простого на эллипс. ѕравда, дл€ того чтобы скрипты объекта перечитались, нужно что-то с ними сделать Ц например, после смены ракурса, выделив все деревь€, открыть окно параметров объекта и, ничего не мен€€, просто нажать ќ , или нажать и отжать галочку замены покрытий.

ѕокажу на примере аппроксимации сферы. ¬от что € написала в 3D-скрипте:

“аб 2 кр

¬ скрипте € использовала √лобальные ѕеременные GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z Ц это координаты расположени€ камеры (глаз) в 3D-окне проекта и SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z Ц это координаты расположени€ объекта в пространстве;

abs Ц модуль числа (убирает Ђ-ї, если он есть);
sqr Ц квадратный корень;
^2 Ц возведение числа в квадрат.

¬ 3D-окне на разном рассто€нии от камеры сфера будет строитьс€ с разной аппроксимацией. ƒл€ нагл€дности € включила каркасный режим (рис. 20).

GDL 7-49

–ис. 20. ќбъект с разной аппроксимацией в зависимости от рассто€ни€ в 3D-окне

„ерез √лобальные ѕеременные объект может получить:
  • данные о расположении проекта (север, широта, долгота, возвышение), установленные в соответствующем диалоговом окне;
  • текущий этаж и собственный этаж;
  • тип текущего вида (например, в перемычках √ќ—“ используетс€ такое условие: если тип вида Ц ведомость, то строить вид перемычки в сечении с выносками позиций); в примере с решеткой можно дописать такое условие: если тип вида Ц ведомость, то не поворачивать систему координат, чтобы в любом случае в ведомости решеток был бы фронтальный вид;
  • неполный показ конструкций (можно заставить объект не показывать какие-то части, если выбран показ только €дра).
¬ объект окна или двери можно вытащить данные о стене. ¬ыносные надписи могут получить очень много различной информации об элементе, с которым они св€заны, Ц например, флажок со сло€ми многослойной конструкции или выноску с объемом элемента. » так далее 40 страниц разных и очень полезных √лобальных ѕеременных.

ѕ–»ћ≈– є4 Ц маркер зоны

–ассмотрим, как создаетс€ собственный маркер зоны. ≈сли создать новый объект и в разделе ƒетали выбрать ему подтип ѕаспорт «оны, то в разделе ѕараметры отображаютс€ синим цветом все специфические параметры, которые инструмент «она передает маркеру (рис. 21).
GDL 7-49

–ис. 21. ѕараметры объекта подтипа ѕаспорт «оны

ѕри помощи команды TEXT2 можно написать любую из этих переменных в 2D-скрипте Ц так получитс€ маркер, состо€щий только из текста (рис. 22).
GDL 7-49

–ис. 22. 2D-скрипт с использованием переменных зоны

»спользу€ общие параметры маркера зоны, можно определить текстовый стиль и высоту строки, завис€щую от высоты шрифта:

GDL программы примера 4

ћожно создать новый параметр дл€ выбора типа маркера (рис. 23), задать ему варианты в скрипте ѕараметров (рис. 24) и в 2D-скрипте прописать разные виды отрисовки маркера дл€ разных типов.

GDL 7-49

–ис. 23. ƒобавление параметра дл€ типа маркера

GDL 7-49

–ис. 24. —крипт ѕараметров Ц варианты значений параметра Ђmtї

2D-скрипт:

GDL программы примера 4 if mt=

¬ этом скрипте в качестве площади € не использовала заранее определенную переменную площади зоны, а преобразовала площадь в текст и добавила к ней единицы измерени€:

GDL программы примера 4 AREA

ћожно дополнить строки в маркере лини€ми, раздел€ющими некоторые строки. „тобы найти длину строки, нужно использовать команду STW. ƒопишем в начале скрипта:

GDL программы примера 4 tl1=stw(ROOM_NUMBER)

» в вариантах маркеров допишем линии командой LINE2 (рис. 25).

GDL 7-49

–ис. 25. 2D-скрипт

≈сли номер зоны состоит из нескольких цифр, дл€ маркера можно создать параметр радиуса окружности, независимый от высоты шрифта, или же вместо окружности описать фигуру наподобие эллипса, длиной равной длине строки номера зоны, которую мы нашли ранее:

GDL программы примера 4 POLY2_ 5, 1+2+4,

ћожно добавить новый параметр дл€ типа пола (FLOOR_TYPE) и параметр, позвол€ющий скрывать или показывать его (ShowFloorType), а в 2D-скрипте дописать треугольник полилинией и текст с типом пола:

GDL программы примера 4

ƒл€ типа пола желательно добавить отдельный параметр дл€ пера, а также точки дл€ графического редактировани€ расположени€ маркера пола. ќ том, как добавл€ть точки графического редактировани€, € подробно рассказывала в своем вебинаре, а по ссылке в конце статьи можно скачать объекты и посмотреть, как это реализовано в данном конкретном случае.

» напоследок рассмотрим еще один очень важный подтип объекта, который открывает большие возможности, Ц √лобальные ѕараметры Ѕиблиотеки (рис. 26).

GDL 7-49

–ис. 26. ¬ыбор подтипа объекта Ђ√лобальные ѕараметры Ѕиблиотекиї

ќбъект с этим подтипом ничего не строит и не чертит, он определ€ет параметры в модельных видах. “аким образом, туда можно вынести те параметры, которые хотелось бы видеть общими у объекта, но при этом
иметь возможность выставить разное значение дл€ разных видов. ѕокажу это на примере маркера зоны. ћне попадались проекты, в которых было несколько комплектов зон в разных сло€х дл€ разных видов. ≈сли есть потребность в разных маркерах, то √лобальные ѕараметры Ѕиблиотеки Ц лучшее решение.
” мен€ есть маркер, в котором есть возможность ставить тип пола в треугольнике и мен€ть тип маркировки (рис. 27). » эти два параметра вынесены в отдельный файл подтипа √лобальные ѕараметры Ѕиблиотеки (рис. 28).

GDL 7-49

–ис. 27. «она со специальным маркером в окне плана

GDL 7-49

–ис. 28. ѕараметры объекта подтипа Ђ√лобальные ѕараметры Ѕиблиотекиї

„тобы эти параметры отобразились в диалоговом окне ѕараметры ћодельного ¬ида, нужно прописать их в скрипте »нтерфейса объекта (рис. 29). Ќе буду подробно задерживатьс€ на специальных командах дл€ этого скрипта, они достаточно подробно и с примерами описаны в справочнике. —кажу только, что тут мы описываем, в каком месте пол€ графического интерфейса будет располагатьс€ та или ина€ надпись или кнопка (поле с выбором вариантов, галочка и т.д.), в ѕользовательский »нтерфейс можно вставл€ть и изображени€. ¬ стандартной библиотеке почти каждый объект имеет графический интерфейс; вы можете увидеть все возможности и посмотреть, как написаны эти скрипты.  роме кнопки ѕроверить скрипт имеет еще и кнопку ѕросмотр. Ќажав на нее, можно быстро увидеть, что получаетс€.
GDL 7-49

–ис. 29. —крипт интерфейса объекта подтипа Ђ√лобальные ѕараметры Ѕиблиотекиї

ћожно сохранить объект и посмотреть его в диалоговом окне ѕараметры ћодельного ¬ида (рис. 30). «десь мы сможем мен€ть тип маркировки сразу дл€ всех зон в проекте (с этим маркером), но отдельно дл€ разных видов.
GDL 7-49

–ис. 30. Ќова€ вкладка √лобальных ѕараметров в диалоговом окне ѕараметры ћодельного ¬ида

“еперь в объекте маркера зоны нужно запросить у объекта значени€ этих двух параметров. ¬ ќсновном —крипте (который читаетс€ объектом первым, поэтому все расчеты и определени€ значений, которые должны примен€тьс€ в нескольких скриптах, лучше писать тут) пишу две вот такие строки:

GDL программы примера 4 success1 =

Ђsuccessї будет равен 1, если запрос выполнен успешно; в противном случае будет 0. Ёто можно использовать дл€ того, чтобы вместо маркера зоны написать предупреждающее сообщение о том, что в библиотеку не подгружен объект LibraryGlobals20. ƒальше объект работает как обычно, использу€ два новых значени€: если тип маркировки такой-то, то писать то-то и то-то и т.д.


¬ этой статье € осветила лишь малую часть возможностей GDL. — его помощью можно создавать как совсем простые элементы дл€ оформлени€, так и очень сложные объекты. Ќапример, вы занимаетесь небольшими и простыми домами из —»ѕ-панелей. ” вас есть определенный список вариантов изменений проекта:

  • длина и ширина дома может быть от 2,4 до 24 метров с шагом 1,2 м;
  • если ширина превышает 6 м, то посередине должна сто€ть еще одна стена;
  • два варианта высоты этажа в зависимости от типоразмера панели;
  • этажность Ц один или два этажа;
  • окна могут быть в определенных местах панелей, определенного размера;
  • отделка фасадов в трех вариантах;
  • кровельное покрытие в трех вариантах;
  • толщина стен нескольких типоразмеров
    и так далее.
¬ы можете задать все эти параметры дл€ объекта, дописав еще стоимость за квадратный метр панели, кровли, отделки и т.д. ј в 2D- и 3D-скриптах объекта полностью выстроить и вычертить этот дом с переменными вместо статичных размеров. „тобы пользователь не запуталс€ в длинном списке параметров, можно написать графический интерфейс на несколько страниц с картинками и схемами. ¬ ќсновном —крипте посчитать все объемы и вывести стоимость. ≈ще можно в 2D-скрипте р€дом с планом вывести таблицу с раскроем панелей. Ќаписание такого объекта потребует немало времени, нужно будет составить детальное “«, предусмотреть все нюансы, но зато вы получите не просто объект, а почти программу, в которой выбором параметров можно будет получить комплект эскизного проекта с расчетом материалов и стоимости дл€ заказчика.

Ќадеюсь, этим обзором € кого-то заинтересовала возможност€ми GDL. ћо€ истори€ началась с острого желани€ изменить какую-то мелочь в каком-то стандартном маркере зоны, и чем больше € вчитываюсь в справочник, тем больше раскрываетс€ потенциал этого инструмента, на мой взгл€д, очень полезного дл€ архитектора.

ѕо ссылке ниже можно скачать все объекты, которые рассматривались в качестве примеров в этой статье:

—качать примеры

ѕримечание. ƒл€ написани€ этих объектов использовалс€ ARCHICAD 20, поэтому в более ранних верси€х они не откроютс€.

ќ GRAPHISOFT
 омпани€ GRAPHISOFTЃ в 1984 году совершила BIM революцию, разработав ARCHICADЃ - первое в индустрии —јѕ– BIM-решение дл€ архитекторов. GRAPHISOFT продолжает лидировать на рынке архитектурного программного обеспечени€, создава€ такие инновационные продукты, как BIMcloudЩ - первое в мире решение, направленное на организацию совместного BIM-проектировани€ в режиме реального времени, EcoDesignerЩ - первое в мире полностью интегрированное приложение, предназначенное дл€ энергетического моделировани€ и оценки энергоэффективности зданий и BIMxЃ - лидирующее мобильное приложение дл€ демонстрации и презентации BIM-моделей. — 2007 года компани€ GRAPHISOFT входит в состав концерна Nemetschek Group.


„итайте также:


¬акансии:

јктуальное обсуждение

RSS-лента комментариев

ƒавид Ћевин
ƒавид Ћевин
ќт редактора: Ѕумажный isicad.ru?
ѕроект ЂЌародное —јѕ–-интервьюї

—лучайна€ стать€:

isicad Top 10

—амые попул€рные материалы

   ‘орумы isicad:

isicad-2010 isicad-2008
isicad-2006 isicad-2004

ќ проекте

ѕриглашаем публиковать на сайте isicad.ru новости и пресс-релизы о новых решени€х и продуктах, о проводимых меропри€ти€х и другую информацию. јдрес дл€ корреспонденции - info@isicad.ru

ѕроект isicad нацелен на

  • укрепление контактов между разработчиками, поставщиками и потребител€ми промышленных решений в област€х PLM и ERP...
ѕодробнее

»нформаци€ дл€ рекламодателей


¬се права защищены. © 2004-2017 √руппа компаний «Ћ≈ƒј—»

ѕерепечатка материалов сайта допускаетс€ с согласи€ редакции, ссылка на isicad.ru об€зательна.
¬ы можете обратитьс€ к нам по адресу info@isicad.ru.