как открыть дверь в архикаде 3д
3D-виды и 3D-документация в ArchiCAD
С помощью ArchiCAD легко создается Виртуальное здание (Virtual Building) – Информационная 3D-модель здания (Building Information Model – BIM) в части архитектурного проекта одновременно с получением согласованной двумерной рабочей документации.
Эта статья представляет способы отображения BIM-модели в трехмерном пространстве ArchiCAD. Мы быстро пройдемся по основным принципам, но при этом затронем некоторые малоизвестные опции, которые и придают продукту гибкость, оригинальность и уникальность. Также мы обсудим, как сохранить виды в Карте видов (View Map) для дальнейшего использования. А в конце опишем новейший и необычайно мощный инструмент ArchiCAD 12, который позволяет превратить любой 3D-вид в «живой» автоматически обновляемый 3D-документ – полноценный трехмерный чертеж с элементами аннотирования и размерами. Рис. 1 ярко иллюстрирует эту функцию: он отображает 3D-разрез по зданию с нанесенными на него размерами и выносками. При этом фон – обычная сплошная штриховка черного цвета, расположенная за конструкциями и надписями.
Рис. 1. Результат работы нового инструмента ArchiCAD 12 – 3D-документ
Вообще в программе существует несколько способов отображения архитектурной модели в 3D и связанных с ними настроек:
– Тип проекции – перспективная или аксонометрия;
– Стиль отображения – каркасная модель, модель со скрытыми линиями или закрашенная (плюс несколько различных эффектов, которые можно комбинировать);
– Фильтрация элементов – посредством видимости слоев и этажей, выбора объектов, границ отображения (бегущая рамка), по типам элементов, определение секущих разрезов.
При этом пользователь может работать с 3D-окном – взглянуть на проект с различных точек или отредактировать модель. В ArchiCAD встроен инструмент построения фотоизображений (Photorendering), который позволяет получить высококачественные изображения 3D-вида с помощью различных методов визуализации – собственной разработки (Internal), компании Lightworks и стилей Sketch (имитация ручной подачи). Построенное изображение можно разместить на листах чертежей (Layout) либо сохранить на диск и использовать во внешних программах.
Режимы 3D-вида
Сразу после выбора режима в 3D-окне будет построено объемное изображение в соответствии с параметрами камеры. Для выбора режима можно также воспользоваться горячими клавишами (PC: CTRL+F3 и SHIFT+F3, Mac: CMD+F3 и Option+F3) либо воспользоваться выпадающим списком иконки 3D-окно (3D Window) на панели инструментов (рис. 3).
Рис. 3. Можно воспользоваться выпадающим списком иконки 3D-окно (3D Window) на панели инструментов
Аксонометрический вид автоматически охватит всю модель и отобразит ее в 3D-окне, тогда как перспективный вид отобразит только то, что попадет в объектив камеры, для которой можно задать точку расположения, направление и конус взгляда.
Щелкнув по второй кнопке слева, расположенной в левом нижнем углу окна (рис. 4), можно открыть Планшет навигатора (Navigator Preview).
Рис. 4. Планшет навигатора (Navigator Preview) можно открыть, щелкнув на второй кнопке слева, расположенной в левом нижнем углу окна
Для аксонометрии Планшет используется при ручной настройке положения камеры вокруг объекта. Можно быстро выставить стандартные параметры построения аксонометрии: изометрия, вид сверху, сбору и ряд других часто используемых проекций (рис. 5).
Рис. 5. Окно Планшета навигатора в режиме аксонометрии
Кроме того, пользователь может задать произвольный угол взгляда на модель с помощью команды Орбита (Orbit).
В режиме построения перспективы (рис. 6) Планшет навигатора отображает миниатюрную копию поэтажного плана вместе с маркером, отображающим положение камеры (то есть точку, из которой вы смотрите на объект) и положение цели (точку, куда вы смотрите). В Планшете вы можете с помощью мыши передвинуть камеру или точку взгляда – 3D-вид автоматически обновится. Там же с помощью слайдера можно менять угол обзора.
Рис. 6. Окно Планшета навигатора в режиме построения перспективы
Совет. Предварительный просмотр поэтажного плана и положения камеры на нем иногда сливаются из-за того, что окно Планшета навигатора слишком мало. Это окно всегда отображает те элементы, которые видны на настоящем поэтажном плане (в соответствии с теми настройками, которые заданы для текущего или последнего открытого плана). Вы всегда можете увеличить окно предварительного просмотра, просто открепив его от панели (схватитесь за заголовок окна и переместите окно на свободное пространство) и растянув за угол. Соответственно увеличится и миниатюра плана. Также вы можете отключить видимость элементов, которые уменьшают предварительный просмотр и видеть которые не обязательно: например, можно отключить слой, на котором расположена модель местности. После этих действий вам понадобится только перестроить изображение в окне предварительного просмотра, щелкнув по стрелке в нижнем правом углу.
Для точной настройки перспективного вида используйте инструмент Камера (Camera): выберите этот инструмент на панели инструментов, первым щелчком задайте положение камеры, а вторым – направление взгляда. Далее выберите размещенную камеру, перейдите в 3D-окно – вы увидите изображение с этой камеры. Камера будет размещаться на плане до тех пор, пока вы не удалите ее или не скроете. Разумеется, в проекте можно размещать столько камер, сколько вам требуется.
Для просмотра 3D-модели точно из заданной позиции выберите нужную камеру на поэтажном плане и перейдите в 3D-окно. Все камеры отображаются в дереве Карты проекта (Project Map) и открываются двойным щелчком по ним.
Совет. Маркеры камер не выводятся на печать вместе с поэтажным планом, но могут мешать при работе. Чтобы скрыть их, дважды щелкните на инструменте Камера и откройте его параметры. Далее по кнопке Траектория (Path) зайдите в диалог и для опции Изображение на плане (Display Options) установите значение Нет (None). Есть и более быстрый способ: выберите инструмент Камера, убедитесь, что на поэтажном плане не выбрано ни одной камеры, и установите на Информационной панели (Info Box) другой режим камеры (то есть VR-объект или VR-сцена).
Совет. Одно из самых удобных сочетаний клавиш – включение режима Орбиты (Orbit) в 3D-виде, удерживая клавишу SHIFT на клавиатуре и нажав на колесо мыши. Теперь просто двигайте мышку: модель будет вращаться вслед за движением руки, причем это справедливо как для аксонометрии, так и для перспективы! Попробовав раз, отказаться просто невозможно.
Пока вы работаете в 3D-окне, вы всегда можете сохранить текущий вид в Карту видов (View Map) с помощью команды Сохранить текущий вид (Save Current View). Эта команда запомнит все параметры: тип проекции и выигрышный ракурс, комбинацию слоев, стиль тонирования, фильтрацию элементов и т.п. Теперь, если дважды щелкнуть на этом виде, можно быстро вернуться в 3D-окно, которое отображает именно тот вид, который мы когда-то сохранили. Но при этом сама геометрия модели обновится в соответствии с изменениями проекта. На рис. 7 показан пример сохраненных 3D-видов.
Рис. 7. Пример сохраненных 3D-видов в Навигаторе проекта
Способы построения изображения
Рис. 8. Диалог Параметры построения 3D-изображений
Рис. 9. Для любого слоя можно указать режим отображения в каркасном виде
На рис. 10 приведен пример визуализации здания, в которой крыши и стены отображаются в каркасном режиме, а двери и окна отключены (отображается только проем) с помощью фильтрации элементов.
Рис. 10. Пример визуализации здания, где крыши и стены отображаются в каркасном режиме, а остальные объекты – в обычном
Режим OpenGL представляет собой более быстрый способ построения и отображает текстуры поверхностей (обычные JPG- или TIF-картинки, имитирующие кирпичную кладку, дерево и т.п.). Внутренний механизм визуализации требует больше времени для построения, но при этом обеспечивает ряд особых функций – например, отображение векторной 3D-штриховки (векторный рисунок, имитирующий материал) и векторные тени (раскрашенные штриховки с дополнительными контурными линиями по границам теней, ложащихся на фасад). Разница между режимом OpenGL (слева) и внутренним механизмом визуализации с включенными режимами векторной штриховки и тенью (справа) наглядно показана на рис. 11.
Рис. 11. Режим OpenGL, в отличие от внутреннего механизма визуализации, отображает текстуры и работает более быстро. Но внутренний механизм визуализации ближе к чертежам – он отображает векторную штриховку для поверхностей и строит тени от солнца
Как правило, внутренний механизм визуализации строит изображение долго, особенно в случае больших моделей с большим числом полигонов (огромные здания, проекты со сложными формами или деревьями). Если вам необходим этот режим, а ждать не хочется, можно переключить режим раскраски с аналитического (Analytic) на растровый (Raster) – изображение будет строиться быстрее.
Учтите, что векторная штриховка работает только в аналитическом режиме, а времени на ее построение тратится меньше, чем на построение теней. В большинстве случаев рекомендуем отключать эти режимы, если они не слишком вам нужны, либо пользоваться режимом OpenGL, который имитирует материал поверхности с помощью JPG-текстур вместо штриховки и не строит теней.
Совет. Выбрав для режима векторного построения теней параметр Без контуров (Contours Off), вы не отключаете тени совсем – они будут строиться, только результат будет показан без внешней контурной линии. Чтобы полностью отключить построение векторных теней, вам необходимо четко выбрать опцию Нет (Off).
Фильтрация элементов
Программа предоставляет несколько способов фильтрации элементов в 3D. Простейший и наиболее понятный – это просто включить или отключить слои: либо вручную, либо с помощью комбинаций слоев. Включенный слой виден на поэтажных планах, разрезах/фасадах и 3D-видах; если же объект расположен на выключенном слое, то он не будет отображаться нигде.
Если выбрать инструмент Бегущая рамка (Marquee) и охватить такой рамкой часть поэтажного плана, то с помощью тех же команд можно отобразить в 3D только те элементы, которые попали в пределы рамки. Причем рамка может иметь форму прямоугольника, скругленного прямоугольника либо произвольного полигона – с помощью последней опции можно получить в 3D очень интересные эффекты. Благодаря этому инструменту вы можете отобразить часть многоэтажного здания (утолщенная рамка) или только объекты текущего этажа (если рамка тонкая): эта опция настраивается на Информационной панели (Info box) – кнопка расположена сразу за символом инструмента Бегущая рамка. На рис. 12 и 13 демонстрируется работа утолщенной бегущей рамки, которая позволяет получить объемный вертикальный разрез по нескольким этажам.
Рис. 12. Утолщенная бегущая рамка позволяет получить объемный вертикальный разрез по нескольким этажам
Рис. 13. Результат работы утолщенной бегущей рамки
Несмотря на то что бегущая рамка обрезает модель, все элементы можно выделять и редактировать. При выделении обрезанные объекты выделяются целиком – программа отображает границы объектов с помощью узловых точек, которые могут отобразиться за пределами границ рамки (именно такая ситуация представлена на рис. 13). Это функция помогает визуально контролировать, какая часть объекта отображается в 3D. Обратите внимание, что если переместить объект на границу рамки, можно получить его сечение или даже скрыть его (если вывести объект за пределы границ).
Совет. Вы можете выбрать элементы непосредственно в 3D и, щелкнув правой кнопкой мыши либо с помощью горячих клавиш, вызвать команду Показать выборку/бегущую рамку в 3D (Show Selection/Marquee in 3D). Вы сразу же увидите выбранные элементы, а все остальные будут скрыты. Чтобы снова увидеть всю модель в 3D, выберите команду Показать все элементы в 3D(Show All Elements in 3D), которая появится вместо предыдущей команды. Эти действия можно выполнять как в окне поэтажного плана, так и в 3D-окне. Конечно, все они применимы только к тем элементам, которые расположены на видимых слоях.
Рис. 14. В 3D-виде можно отображать только часть объектов
C его помощью при построении 3D можно вообще отключать определенные группы элементов (например, крыши или объекты) или ограничивать видимость проекта определенным диапазоном этажей.
Бегущая рамка по умолчанию отображает только те объекты, которые попали в ее границы. Но есть возможность изменить принцип построения и, наоборот, отображать только те объекты, которые расположены за пределами рамки (например, для того, чтобы сделать сквозной туннель через все здание). Можно отображать и лишь те элементы, которые попали в пределы рамки целиком (отключите опцию Рамка как линия сечения (Trim Elements to Marquee), и пересекаемые объекты исчезнут из 3D).
Одна из моих любимейших функций при работе с большими и сложными проектами – возможность отключения окон и дверей (вместо них остаются пустые проемы). Эффективность работы с 3D и разрезами возрастает на порядки! При выполнении тестовых проходов и перед видеосъемкой каждая сцена строится быстрее, а значит можно побольше поэкспериментировать с траекторией, настройками камеры.
Еще одна интересная настойка диалога – Отфильтровать элементы в 3D (Filter Elements in 3D): возможность отобразить в 3D объемы зон (Zones) (рис. 15). Зоны зачастую используют для определения границ помещений и подсчета площадей на поэтажных планах, но их можно отображать в 3D для формирования объемов, блоков и анализа теней. Их высота регулируется в диалогах параметров каждой зоны. Зоны можно подрезать под скат крыши с помощью Операций над объемными телами (Solid Element Operations).
Рис. 15. В 3D можно отображать объемы зон
Рис. 16. Диалог Плоскости 3D-сечений
Рис. 17. Пример работы диалога Плоскости 3D-сечений
Единожды заданные плоскости запоминаются программой, но их всегда можно удалить в том же диалоге просто дважды щелкнув на линии сечения или воспользовавшись кнопкой Удалить все плоскости сечений (Clear All Cutting Planes).
Секущие плоскости также сохраняются при сохранении вида в Карте проекта, поэтому к наиболее интересным видам можно возвращаться буквально одним щелчком мышки.
Презентация: фотовизуализация, анимация и анализ солнца
Любой 3D-вид может быть продемонстрирован либо посредством встроенного в ArchiCAD механизма фотовизуализации, либо с помощью прохода по виртуальному проекту (пройти пешком или выполнить облет), либо при статической визуализации прохождения солнца по небосводу и изменения теней на фасадах.
На поэтажных планах можно разместить практически любое количество камер визуализации, которые объединяются в траектории пролета, а затем пройти про проекту в соответствии с этой траекторией, сохранить результат прохода в формате QuickTime и в дальнейшем показывать его заказчику или коллегам. Операция Траекториясолнца (Sun studies) применима к любому 3D-виду; благодаря встроенной функции heliodon она рассчитывает положение солнца в различные моменты суток и года, автоматически прорисовывая положение и конфигурацию теней в зависимости от положения объектов в проекте и прозрачности материалов.
Описания возможностей ArchiCAD в этой части хватит не на одну статью – здесь задействованы сложные и очень мощные инструменты. Но пока ограничимся уже сказанным…
Новинка ArchiCAD 12: 3D-документация
В прошлом году компания Graphisoft изобрела новый тип чертежа – 3D-документ. Суть технологии заключается в том, что 3D-вид теперь можно оформлять (например, легко и элегантно проставить размеры по проекту) и автоматически обновлять (в точности так же, как разрез или фасад).
3D-документы используются в Карте проекта наравне с поэтажными планами, разрезами, фасадами, узлами, рабочими листами и т.п. – это просто новая категория. При создании 3D-документа нужно только задать имя вида и его код для ссылки.
Новый 3D-документ наследует те же настройки, что и исходный 3D-вид (аксонометрия или перспектива), но конвертируется в соответствии с Внутренним механизмом визуализации (Internal Engine). Это значит, что он не содержит текстур (то есть JPG-версий материалов) – вместо них поверхности раскрашиваются исходными цветами плюс используются векторные штриховки и тени от солнца.
Далее для оформления можно использовать большинство 2D-инструментов: тексты, выноски, линии, дуги, полилинии, сплайны, штриховки и размеры. Выноски могут быть независимыми (полка и независимый текст) или связанными с 3D-элементами (полка и символ с текстом, в который можно внести тип и код (ID) элемента, ассоциированного с выноской).
Размеры привязываются к узловым точкам элементов так же, как это делается на поэтажных планах или при редактировании объектов в 3D-окне. Три метода, настраиваемые на Информационной панели (Info Box), позволяют указать вертикальный/горизонтальный размер либо размер в произвольной плоскости (например, для скатов крыш).
Линии размеров идут от модели, а засечки ориентированы в соответствии с углом перспективы или аксонометрии. При размещении размера задается отступ от модели, что повышает читаемость чертежа.
Конечно, в документации по ArchiCAD вы найдете более полное описание работы с размерами в 3D-документе.
По умолчанию 3D-документ автоматически обновляется вслед за изменениями – это обычный рабочий вид. А значит он всегда будет соответствовать модели. Размеры обновляются и пересчитываются, выноски содержат актуальную информацию о строительных конструкциях.
3D-документы можно создавать из любого 3D-вида – следовательно, они могут быть ограничены как бегущей рамкой, так и секущими плоскостями. Например, на рис. 18 показано, как можно получить чертеж фундаментной части с помощью бегущей рамки.
Рис. 18. Аксонометрический чертеж фундаментной части, созданный с помощью бегущей рамки и нового инструмента ArchiCAD 12 – 3D-документ
И, конечно, часть модели можно отобразить без удаления невидимых линий – так же, как модель отображается в 3D-окне: на рис. 19 слой с крышами переведен в каркасный режим отображения.
Рис. 19. На этом 3D-чертеже крыши переведены в каркасный режим отображения
Для 3D-документа, который очень похож на обычное 3D-окно, есть и несколько ограничений. А именно: нельзя интерактивно сменить точку взгляда на узел, нельзя добавить новые 3D-элементы, нельзя растянуть или переместить существующие 3D-элементы. Но можно выбрать элемент и просмотреть и даже изменить его параметры с помощью Информационной панели или обычного диалога Параметры (Settings).
Для изменения модели необходимо перейти в стандартное 3D-окно или работать через поэтажный план. При этом перейти из 3D-чертежа в соответствующее 3D-окно просто: щелкните правой кнопкой мыши в любой точке рабочего окна (убедитесь, что ничего не выбрано) и выберите команду Открыть исходное 3D-окно (Open 3D Source).
Также можно изменить угол взгляда на модель и стиль раскрашивания. Для этого откройте 3D-окно (перейти в него можно с помощью уже упомянутой команды Открыть исходное 3D-окно) и поменяйте точку взгляда. Затем вернитесь в 3D-документ и, щелкнув правой кнопкой мыши в любой точке (опять же убедитесь, что ничего не выделено), выберите команду Переопределить на основе текущего 3D-окна (Redefine Based on Current 3D). Будьте внимательны: новый взгляд может привести к тому, что 3D-размеры сольются и станут нечитаемы – в этом случае их надо будет удалить и поставить заново.
Совет. Если при создании 3D-окна использовалась бегущая рамка, а затем этот вид использовали для создания 3D-документа, то возникает одна маленькая странность. Если размер привязан к конечным точкам, которые образовались от бегущей рамки (то есть к «искусственным» конечным точкам, которые лежат на пересечении режущей плоскости бегущей рамки и элемента), то он будет статичен. Это означает, что размер не будет обновляться, если, к примеру, изменится высота стены или ее толщина. Для того чтобы размер гарантированно и автоматически обновлялся, привязывайте его (конечно, по возможности) к «естественным» конечным точкам элемента (то есть к классическим точкам).
Осталось сказать, что 3D-документ можно распечатать/сохранить так же, как любой другой вид, а также разместить его на листе как обычный чертеж в Книге макетов.
Заключение
ArchiCAD использует непревзойденные инструменты, с помощью которых можно создать огромное число разнообразных видов из объемной BIM-модели. 3D-окно позволяет проектировщику работать над моделью здания с любой точки и угла, получая доступ к любой части модели или комбинации элементов. Встроенные инструменты визуализации проекта помогут легко продемонстрировать последнюю версию проекта в виде статичного изображения или анимации.
Новый тип отображения проекта – 3D-документ – поможет проектировщику при работе с заказчиком, консультантами и строителями. Он позволяет запомнить любой вид, а затем оформить его, разместить на листе с чертежами и работать как с обычным документом, управляя им и поддерживая его в актуальном состоянии. 3D-документ – это ярчайший пример современных технологий, разработанных компанией Graphisoft, которые трансформируют понятие документации и поднимают решения BIM на уровень искусства.
Эрик Боброу (Eric Bobrow),
филиал AIA,
руководитель Bobrow Consulting Group
Перевод с английского Дениса Ожигина (ЗАО «Нанософт»)
ARCHICAD: ОТКРЫВАЯ ЗАНОВО. Язык GDL: программирование для уникальных задач архитектора
Этот экспертный материал продолжает цикл статей «ARCHICAD: открывая заново», начатый в декабре 2016 года статьей Владимира Савицкого «Создание конструкций и извлечение рабочих чертежей из модели», а затем продолженный публикациями Светланы Кравченко «ARCHICAD: открывая заново. Визуализация – новые возможности для архитектора» и Александра Анищенко «TEAMWORK: эффективная командная работа шаг за шагом». Цикл призван помочь пользователям в полной мере раскрыть весь потенциал ARCHICAD®. Мы попросили архитекторов поделиться личным опытом использования программы с применением нестандартных подходов, малоизученных функций и новых возможностей, о которых многие пользователи могут и не подозревать. Как разработчики приложения ARCHICAD мы уверены, что только глубокое знание продукта может раскрыть всю его ценность и решающим образом повлиять на результаты, скорость и качество работы проектировщика.
Светлана Кравченко, практикующий архитектор
Язык GDL: уникальные возможности инструмента шаг за шагом
Наверняка многие из вас слышали о GDL в ARCHICAD, однако как им пользоваться в работе до сих пор знают далеко не все. Учитывая невероятную полезность этой функции, а также множество вопросов после моего первого вебинара на эту тему, я решила более подробно рассказать о том, как даже поверхностное его знание может здорово помочь в повседневной работе архитектора.
Начнем с основ
GDL (Geometric Description Language, язык геометрического описания) – язык программирования, подобный языку BASIC, созданный для работы в среде ARCHICAD. С его помощью описываются объемные 3D-тела (такие как двери, окна, мебель) и 2D-символы в окне плана этажа. Эти объекты называются Библиотечными Элементами.
Для тех, кто хоть немного знаком с программированием, освоить этот язык не составит труда. Впрочем, при достаточном желании изучение GDL окажется вполне по силам и человеку, далекому от этой среды.
Любой архитектор изучал в свое время геометрию и начертательную геометрию, имеет отличное объемное мышление, а это уже половина успеха. Не нужно сразу пытаться написать сложные объекты, начинать стоит с основных геометрических фигур и форм; много информации можно почерпнуть, изучая скрипты других Библиотечных Элементов. Ну а самый главный источник информации – это справочное руководство GDL, которое можно открыть через меню Помощь в самом ARCHICAD.
Итак, для чего архитектору может пригодиться знание GDL? Например, в отличие от Grasshopper, при помощи которого можно создавать сложные структуры, GDL просто незаменим для написания различных маркеров и выносных надписей, а также при создании специальных компонентов для других Библиотечных Элементов или инструментов. Одним из моих первых применений GDL в работе было создание специального филенчатого полотна двери, которое при изменении размеров не масштабировалось во все стороны, а меняло только размеры филенки. Толщина фигурной рамки и ширина обвязки оставались неизменными. Также архитекторам очень часто хочется добавить какие-то простые функции в существующие объекты стандартных библиотек – и это основная причина, по которой начинают вникать в GDL.
Безусловно, знание GDL не является жизненно необходимым, и многие из этих задач можно решить стандартными инструментами. Например, можно построить филенки с обвязкой из перекрытий и сохранить как специальное полотно двери. Если у вас таких нестандартных дверей всего несколько штук, то так будет даже быстрее. Но если в вашем проекте много подобных дверей разных размеров и ширина их меняется в процессе работы, то написание специальной панели в GDL значительно ускорит и упростит работу.
Геометрическое описание подразумевает, что любую из возможных фигур можно написать текстом по размерам или координатам.
Для 3D-скрипта есть блок команд основных пространственных фигур, таких как:
BLOCK a, b, c
BRICK a, b, c
CYLIND – цилиндр вдоль оси Z, с высотой h и радиусом rCYLIND h, r
SPHERE – сфера с центром в начале координат и радиусом rSPHERE r
Похожим образом описываются эллипс и конус.
Следующий блок фигур уже сложнее – это различные призмы. Они описываются набором координат точек. Самая простая призма определяется количеством точек (n), высотой (h) и перечислением координат всех точек по порядку.
PRISM n, h,
x1, y1,
…
xn, yn
Есть много разновидностей призмы. Следующий вид, PRISM_, позволяет указывать к координатам точек коды статусов, которые определяют видимость граней и ребер, а также позволяют создавать криволинейные призмы и призмы с отверстиями (см. в справочнике раздел Коды Статусов). Другой вид, BPRISM_, создает призму, закрученную вокруг оси Y. FPRISM_ строит призму с фаской или скруглением по верхней стороне.
Существует несколько команд, описывающих более сложные фигуры на основе полилиний: EXTRUDE, PYRAMID, REVOLVE, RULED, SWEEP, TUBE, COONS, MASS. Их описание с примерами можно найти в справочнике.
Для 2D-скрипта фигуры описываются другими командами: линия, круг, прямоугольник, полилиния, сплайн. Но можно прописать и команду для построения проекции из 3D-скрипта.
Создание 2D- или 3D-форм – это только часть функционала GDL. Если вам нужен просто стол, то проще построить его инструментами самого ARCHICAD. Объект пишется в случае, когда требуется какой-то параметризм: возможность выбора разных типов ножек для стола, количества ножек, изменение размеров стола с сохранением остальных размеров, расчет пиломатериала для его изготовления, вес и стоимость. Объект может вообще не содержать никакой геометрии, а только производить расчеты.
Для этого используются в том числе и Управляющие Предложения (Операторы Управления), такие как циклы, условные операторы, обращение к определенному месту кода (подпрограмме). С циклами и условиями лучше ознакомиться в самом начале – используются они часто. Так, во всех приведенных ниже примерах есть условные операторы.
ПРИМЕР №1 – поворот объекта
Часто у проектировщиков возникает желание сделать объект поворачивающимся. На этом простом примере и рассмотрим структуру Библиотечного Элемента, а также основные окна Редактора Объектов GDL.
Чтобы открыть любой объект, размещенный в пространстве проекта (если разработчик не наложил на него пароль), нужно, выделив его, нажать комбинацию клавиш Ctrl+Shift+O. Другой способ – воспользоваться меню Файл > Библиотеки и Объекты > Открыть Объект. Если в этот момент ни один объект не был выделен, то откроется окно для выбора объекта.
Добавим параметры поворота, например, к жалюзийной решетке (рис. 1).
Рис. 1. Первый подопытный
Рис. 2. Окно Редактора объектов GDL
Итак, мы открыли окно Редактора объектов GDL (рис. 2).
Слева вверху здесь расположено окно просмотра разных видов, как в обычном окне параметров объекта; еще левее кнопки для выбора вида – план, фасад, 3D-окно и предпросмотр.
Ниже располагаются кнопки для открытия таблиц параметров, списков данных и скриптов. Скрипты можно открыть двумя способами: кликнуть на кнопку с названием скрипта – открыть в этом же окне, кликнуть на кнопку правее с пиктограммой окна – скрипт откроется в отдельном окне. Это может быть полезно, чтобы одновременно видеть разные скрипты (рис. 3).
Рис. 3. Одновременно открытые разные скрипты
Наверху в окне любого скрипта есть очень нужная кнопка Проверить: при ее нажатии редактор подскажет, нет ли в скрипте ошибок. Сообщение будет содержать причину ошибки и номер строки, в которой найдена ошибка.
В разделе «Детали» можно выбрать подтип объекта: специальное полотно двери, дверная ручка, рама навесной стены и так далее.
Так, специальные объекты (ручка, полотно, рама) появятся в соответствующем окне выбора этих элементов. При выборе какого-либо 2D-типа в объекте будут отсутствовать окна для трехмерной геометрии. Там же выбираются типы для разных маркеров – узла, разрезов, выносной надписи, зоны; они также появятся в соответствующих инструментах.
В этом разделе можно заполнить описание объекта и выбрать пароль.
Далее – «Параметры», где в виде таблицы представлены все данные, которые используются в этом объекте и которые можно изменять во время работы над проектом.
Тут нужно добавить параметры для поворотов, которые мы позже будем использовать.
Рис. 4. Добавление параметров
Нажимаем кнопку Новый, расположенную выше таблицы (рис. 4). Появится новая строка, в которой нужно заполнить столбцы.
Первый из этих столбцов – Переменная. Здесь мы латиницей и без пробелов пишем название переменной, которое будет использоваться в скриптах. Именовать нужно так, чтобы было несложно запомнить и при этом легко понять, за что эта переменная отвечает. В нашем случае нужно создать две переменные для значения углов поворотов по осям X и Y (вокруг оси Z объект и так можно поворачивать прямо в плане). Я решила назвать их angle_x и angle_y.
В следующем столбце нужно выбрать тип данных. Варианты выбора представлены в таблице 1.
Таблица 1. Типы данных
Длина (в единицах модели) | Наклон (угол в градусах) | Действительное число (для размеров в мм листа или для коэффициентов) | Целое число (для количественных значений) | Логическое значение (истина/ложь или, по-простому, галочка) | ![]() |
Покрытие | Тип линии | Образец штриховки | Перо | Разделитель | ![]() |
Последние два типа не используются в построении объекта, а нужны для большей наглядности и упорядоченности списка в окне параметров объекта. Нам нужен угол – в таблице это вторая пиктограмма.
Третий столбец – Имя. Тут можно без правил на любом языке написать, что именно мы хотим потом увидеть в окне параметров объекта.
И последний столбец – Значение. Сейчас тут можно оставить 0: это значение меняется в любой момент как в скрипте, так и в параметрах самого объекта. Как выглядят два новых параметра в окне Редактора объектов GDL, показано на рис. 5. С помощью стрелок в начале строки можно переместить строку в удобное место.
Рис. 5. Добавленные параметры
Затем нужно сохранить объект под новым именем, так как стандартная библиотека зашита в контейнер, и в нем нельзя перезаписывать объекты. Окно Параметров объекта будет теперь выглядеть вот так (рис. 6).
Рис. 6. Новые параметры в окне Параметров объекта
Появились два новых параметра, значение которых можно менять в любой момент. Но сейчас ничего не произойдет, так как еще не написано никаких команд с их использованием.
Теперь нужно открыть окно 3D-скрипта.
Здесь идет полное описание построения трехмерной модели на основе заданных параметров. Кроме того, в объект могут быть вложены разные макросы.
Перед всеми построениями нужно повернуть систему координат, в которой будет строиться объект. Тут важно понять вот какую логику: все повороты, перемещения и масштабирование происходят не так, как при работе в самом ARCHICAD. Мы не берем элемент и не поворачиваем его, а поворачиваем глобальную систему координат (после изменения она становится локальной) перед построением объекта.
Перемещение (команда ADD), поворот (ROT), масштабирование (MUL) – это команды преобразования системы координат. Дальше преобразования можно удалять в скрипте по одному, сразу по несколько либо удалить сразу все. В справочнике все это описано достаточно подробно и с примерами.
Пример перемещения системы координат в 3D-пространстве сразу по трем осям показан на рис. 7.
ADD a, b, c
Рис. 7. Схема перемещения системы координат
Итак, перед всеми построениями поворачиваем систему координат сначала по одной, потом по другой оси. Поворот по оси Х выполняет команда ROTX alphax, где alphax – угол поворота против часовой стрелки; вместо alphax нужно вписать заранее созданную переменную. По оси Y поворот выполняется аналогично (рис. 8).
Рис. 8. Изменение 3D-скрипта
Теперь можно задавать разные углы для поворота – и в окне просмотра, расположенном вверху слева, будут происходить изменения 3D-модели (рис. 9).
Рис. 9. При изменении углов меняется изображение в окне просмотра
Теперь можно задавать разные углы для поворота – и в окне просмотра, расположенном вверху слева, будут происходить изменения 3D-модели (рис. 9).
Но в 2D-виде пока ничего не происходит. В 2D-скрипте объект строится отдельными линиями и полилиниями, так отрисовка объекта в плане происходит во много раз быстрее. На одном объекте это незаметно, но если в проекте окажутся сотни таких решеток, торможение будет существенным. Можно высчитать координаты точек этих линий и простроить их так, как они выглядели бы в проекции повернутого объекта, но это не очень просто и не очень быстро. В этой решетке я предлагаю следующее решение: если углы по X или по Y не равны нулю, то объект в 2D-скрипте, то есть для плана, будет отрисовываться как проекция трехмерной модели, а иначе по-старому.
Проекцию модели для 2D-скрипта строит команда PROJECT2 projection_code, angle, method. Что означают projection_code, angle, method – можно прочитать в справочнике, мы же познакомимся с более важной командой из раздела операторов управления IF – THEN – ELSE – ENDIF. Это операторы условий, которые помогут выстроить предложение условия из предыдущего абзаца.
На рис. 10 я выделила добавленные команды в 2D-скрипте и правее красным цветом дописала «перевод».
Рис. 10. Изменение 2D-скрипта
Теперь требуется только сохранить объект и можно им пользоваться (рис. 11). Преимущество такого метода перед преобразованием в морф заключается в том, что объект остается параметрическим, его можно считать в спецификациях, в нем можно менять размеры планок, размеры рамки и всё остальное, что было в оригинальном объекте.
Рис. 11. Повернутые в пространстве новые объекты
Так подробно на этом примере мы рассмотрели основные окна и скрипты Редактора объектов GDL.
Если выбранный вами для поворота объект имеет параметры не в виде списка, как в этой решетке, а в виде картинок и схем, это означает, что разработчик написал также графический интерфейс. Чаще всего при этом стандартный список с параметрами скрывают, как на рис. 12: в выпадающем списке страниц параметров нет раздела «Все параметры».
Рис. 12. В этом объекте отсутствует список всех параметров в стандартном виде
В этом случае нужно зайти в скрипт параметров и найти команду, которая прячет все параметры (рис. 13).
В этом скрипте описываются все действия, которые влияют на параметры:
Рис. 13. Строка в скрипте параметров, которая прячет все параметры
Строку HIDEPARAMETERS ALL можно просто удалить либо, поставив в начале строки «!», сделать ее нечитаемой (по синтаксису GDL строка, начинающаяся с восклицательного знака, считается комментарием. Далее описания и переводы на скриншотах я буду писать именно после знака «!»). После этого в списке страниц параметров появится строка «Все параметры», и, выбрав ее, вы увидите стандартного вида список с параметрами, среди которых будут и новые строки для поворота.
ПРИМЕР №2 – текст на символе
Следующий пример я беру из текущего проекта. При работе с планом многоквартирного жилого здания требовалось на наружных блоках кондиционеров поставить букву «К» – причем так, чтобы она всегда располагалась вертикально. Конечно, букву можно было бы просто дописать сверху текстом или поставить выносную надпись-текст, но тогда при повороте кондиционера, возможно, пришлось бы двигать и текст.
Для начала я добавила четыре новых параметра (рис. 14):
Рис. 14. Добавление новых параметров в объекте Кондиционер Воздуха
Теперь посмотрим на пиктограммы, которые я нажала в начале строк.
У первой строки нажата пиктограмма 
У трех других – пиктограмма 
На рис. 15 – скриншот, иллюстрирующий, как это выглядит в Параметрах Объекта.
Для начала я добавила четыре новых параметра (рис. 14):
Рис. 15. Окно Параметров Объекта
А на рис. 16 – то, что я дописала в 2D-скрипте (по традиции с переводом и комментариями).
Рис. 16. Дописанные строки в 2D-скрипте
На следующем скриншоте (рис. 17) я для большей ясности подкрасила разные типы слов/команд/переменных.
Рис. 17. Дописанные строки в 2D-скрипте с пояснениями
Объект готов (рис. 18).
Рис. 18. Новые объекты на плане под разными углами
А если бы я не писала строки с поворотом и масштабированием, то объект выглядел бы так, как на рис. 19.
Рис. 19. Новые объекты на плане под разными углами без строк поворота и масштабирования
ПРИМЕР №3 – детализация
Для упрощения работ над проектом можно при написании объекта добавить текстовый параметр с выбором из нескольких вариантов детализации (простой, средний, детальный). И в 3D-скрипте при построении разных мелких деталей дописать условие типа:
если уровень детализации = “детально”, то
(описание построения деталей)
конец условия
Отдельного внимания заслуживают Глобальные Переменные. В справочном руководстве они занимают 40 страниц и для удобства поиска сгруппированы по темам. В предыдущем примере я использовала некоторые данные об ориентации объекта в проекте. Тот же раздел справочного руководства содержит Глобальные Переменные для координат расположения объекта – с их помощью создаются объекты типа выноски с координатами или отметки высоты на разрезе/фасаде.
Очень часто используется GLOB_SCALE – масштаб чертежа (зависит от вида согласно текущему окну), при масштабе 1:100 он равен 100, при масштабе 1:20 равен 20. Применяется чаще всего для перевода размера шрифта в метры модели или наоборот. Также на этот параметр можно «повесить» варианты отображения на плане. Например, для скамейки написать в 2D-скрипте следующее:
| IF GLOB_SCALE 20 then res=20 if discam 30 then res=10 if discam>40 then res=5 resol res | ! разница в координатах позиции глаз и объекта по оси X ! разница в координатах позиции глаз и объекта по оси Y ! расстояние от глаз до объекта в плане по теореме Пифагора ! разница в координатах позиции глаз и объекта по оси Z ! расстояние от глаз до объекта в пространстве по теореме Пифагора ! если расстояние до объекта меньше или равно 20 м, то res=50 ! если расстояние до объекта меньше или равно 30 м и больше 20, то res=20 ! если расстояние до объекта меньше или равно 40 м и больше 30, то res=10 ! если расстояние до объекта больше 40, то res=5 ! задать для последующих построений аппроксимацию res |
В скрипте я использовала Глобальные Переменные GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z – это координаты расположения камеры (глаз) в 3D-окне проекта и SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z – это координаты расположения объекта в пространстве;
abs – модуль числа (убирает «-», если он есть);
sqr – квадратный корень;
^2 – возведение числа в квадрат.
В 3D-окне на разном расстоянии от камеры сфера будет строиться с разной аппроксимацией. Для наглядности я включила каркасный режим (рис. 20).
Рис. 20. Объект с разной аппроксимацией в зависимости от расстояния в 3D-окне
Через Глобальные Переменные объект может получить:
В объект окна или двери можно вытащить данные о стене. Выносные надписи могут получить очень много различной информации об элементе, с которым они связаны, – например, флажок со слоями многослойной конструкции или выноску с объемом элемента. И так далее 40 страниц разных и очень полезных Глобальных Переменных.
ПРИМЕР №4 – маркер зоны
Рассмотрим, как создается собственный маркер зоны. Если создать новый объект и в разделе Детали выбрать ему подтип Паспорт Зоны, то в разделе Параметры отображаются синим цветом все специфические параметры, которые инструмент Зона передает маркеру (рис. 21).
Рис. 21. Параметры объекта подтипа Паспорт Зоны
При помощи команды TEXT2 можно написать любую из этих переменных в 2D-скрипте – так получится маркер, состоящий только из текста (рис. 22).
Рис. 22. 2D-скрипт с использованием переменных зоны
Используя общие параметры маркера зоны, можно определить текстовый стиль и высоту строки, зависящую от высоты шрифта:
Можно создать новый параметр для выбора типа маркера (рис. 23), задать ему варианты в скрипте Параметров (рис. 24) и в 2D-скрипте прописать разные виды отрисовки маркера для разных типов.
Рис. 23. Добавление параметра для типа маркера
Рис. 24. Скрипт Параметров – варианты значений параметра «mt»
В этом скрипте в качестве площади я не использовала заранее определенную переменную площади зоны, а преобразовала площадь в текст и добавила к ней единицы измерения:
| area = str (ROOM_AREA, 4, 2) AREA_TEXT = area + ” кв.м.” | ! преобразования числа в текст с 2 знаками после запятой ! добавление к строковому значению букв “кв.м.” |
Можно дополнить строки в маркере линиями, разделяющими некоторые строки. Чтобы найти длину строки, нужно использовать команду STW. Допишем в начале скрипта:
tl1=stw(ROOM_NUMBER) /1000*GLOB_SCALE
tl2=stw(ROOM_NAME) /1000*GLOB_SCALE
tl3=stw(AREA_TEXT) /1000*GLOB_SCALE
| if mt=”номер и площадь” if mt=”номер, название и площадь” if mt=”название и площадь” if mt=”только площадь” | then tl= MAX (tl1, tl3) then tl= MAX (tl1, tl2) then tl= MAX (tl2, tl3) then tl= tl3 |
И в вариантах маркеров допишем линии командой LINE2 (рис. 25).
Рис. 25. 2D-скрипт
Если номер зоны состоит из нескольких цифр, для маркера можно создать параметр радиуса окружности, независимый от высоты шрифта, или же вместо окружности описать фигуру наподобие эллипса, длиной равной длине строки номера зоны, которую мы нашли ранее:
Можно добавить новый параметр для типа пола (FLOOR_TYPE) и параметр, позволяющий скрывать или показывать его (ShowFloorType), а в 2D-скрипте дописать треугольник полилинией и текст с типом пола:
Для типа пола желательно добавить отдельный параметр для пера, а также точки для графического редактирования расположения маркера пола. О том, как добавлять точки графического редактирования, я подробно рассказывала в своем вебинаре, а по ссылке в конце статьи можно скачать объекты и посмотреть, как это реализовано в данном конкретном случае.
И напоследок рассмотрим еще один очень важный подтип объекта, который открывает большие возможности, – Глобальные Параметры Библиотеки (рис. 26).
Рис. 26. Выбор подтипа объекта «Глобальные Параметры Библиотеки»
Объект с этим подтипом ничего не строит и не чертит, он определяет параметры в модельных видах. Таким образом, туда можно вынести те параметры, которые хотелось бы видеть общими у объекта, но при этом иметь возможность выставить разное значение для разных видов.
Покажу это на примере маркера зоны. Мне попадались проекты, в которых было несколько комплектов зон в разных слоях для разных видов. Если есть потребность в разных маркерах, то Глобальные Параметры Библиотеки – лучшее решение.
У меня есть маркер, в котором есть возможность ставить тип пола в треугольнике и менять тип маркировки (рис. 27). И эти два параметра вынесены в отдельный файл подтипа Глобальные Параметры Библиотеки (рис. 28).
Рис. 27. Зона со специальным маркером в окне плана
Рис. 28. Параметры объекта подтипа «Глобальные Параметры Библиотеки»
Чтобы эти параметры отобразились в диалоговом окне Параметры Модельного Вида, нужно прописать их в скрипте Интерфейса объекта (рис. 29). Не буду подробно задерживаться на специальных командах для этого скрипта, они достаточно подробно и с примерами описаны в справочнике. Скажу только, что тут мы описываем, в каком месте поля графического интерфейса будет располагаться та или иная надпись или кнопка (поле с выбором вариантов, галочка и т.д.), в Пользовательский Интерфейс можно вставлять и изображения. В стандартной библиотеке почти каждый объект имеет графический интерфейс; вы можете увидеть все возможности и посмотреть, как написаны эти скрипты. Кроме кнопки Проверить скрипт имеет еще и кнопку Просмотр. Нажав на нее, можно быстро увидеть, что получается.
Рис. 29. Скрипт интерфейса объекта подтипа «Глобальные Параметры Библиотеки»
Можно сохранить объект и посмотреть его в диалоговом окне Параметры Модельного Вида (рис. 30). Здесь мы сможем менять тип маркировки сразу для всех зон в проекте (с этим маркером), но отдельно для разных видов.
Рис. 30. Новая вкладка Глобальных Параметров в диалоговом окне Параметры Модельного Вида
Теперь в объекте маркера зоны нужно запросить у объекта значения этих двух параметров.
В Основном Скрипте (который читается объектом первым, поэтому все расчеты и определения значений, которые должны применяться в нескольких скриптах, лучше писать тут) пишу две вот такие строки:
success1 = LIBRARYGLOBAL (“LibraryGlobals20”, “ShowFloorType”, ShowFloorType)
success2 = LIBRARYGLOBAL (“LibraryGlobals20”, “mt”, mt)
«success» будет равен 1, если запрос выполнен успешно; в противном случае будет 0.
Это можно использовать для того, чтобы вместо маркера зоны написать предупреждающее сообщение о том, что в библиотеку не подгружен объект LibraryGlobals20.
Дальше объект работает как обычно, используя два новых значения: если тип маркировки такой-то, то писать то-то и то-то и т.д.
В этой статье я осветила лишь малую часть возможностей GDL. С его помощью можно создавать как совсем простые элементы для оформления, так и очень сложные объекты.
Например, вы занимаетесь небольшими и простыми домами из СИП-панелей. У вас есть определенный список вариантов изменений проекта:
Вы можете задать все эти параметры для объекта, дописав еще стоимость за квадратный метр панели, кровли, отделки и т.д. А в 2D- и 3D-скриптах объекта полностью выстроить и вычертить этот дом с переменными вместо статичных размеров. Чтобы пользователь не запутался в длинном списке параметров, можно написать графический интерфейс на несколько страниц с картинками и схемами. В Основном Скрипте посчитать все объемы и вывести стоимость. Еще можно в 2D-скрипте рядом с планом вывести таблицу с раскроем панелей. Написание такого объекта потребует немало времени, нужно будет составить детальное ТЗ, предусмотреть все нюансы, но зато вы получите не просто объект, а почти программу, в которой выбором параметров можно будет получить комплект эскизного проекта с расчетом материалов и стоимости для заказчика.
Надеюсь, этим обзором я кого-то заинтересовала возможностями GDL. Моя история началась с острого желания изменить какую-то мелочь в каком-то стандартном маркере зоны, и чем больше я вчитываюсь в справочник, тем больше раскрывается потенциал этого инструмента, на мой взгляд, очень полезного для архитектора.
По ссылке ниже можно скачать все объекты, которые рассматривались в качестве примеров в этой статье:
Примечание. Для написания этих объектов использовался ARCHICAD 20, поэтому в более ранних версиях они не откроются.






































