Archicad gdl руководство

Редактор объектов GDL имеет все необходимые для редактирования объектов GDL управляющие элементы.

Для подробного ознакомления с командами написания скриптов и редактированием объектов см. Справочное руководство GDL (доступное из меню Справка ARCHICAD).

Открытие редактора объектов GDL

Для открытия редактора объектов GDL выполните одну из следующих операций:

Для размещенного объекта: выберите объект и затем выполните команду Файл > Библиотеки и объекты > Открыть объект (либо щелкните на одноименной пиктограмме в табло команд Редактирование библиотечных элементов GDL).

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/OpenObject.png 

Для любого файла объекта (и если не выбран размещенный в проекте объект): выполните команду Файл > Библиотеки и объекты > Открыть объект и затем найдите требуемый объект.

Другой способ найти объект — это использовать его подтип: используйте команду Открыть объект по подтипу в табло команд Редактирование библиотечных элементов GDL.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/EditGDLToolbar001.png 

Открывается окно Редактора объектов GDL.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/GDLMasterWindow.png 

Используйте кнопки слева для открытия различных таблиц/списков для редактирования (например, Детали, Параметры, Компоненты) с помощью редактора объектов GDL .

Окна редактирования скриптов (например, Скрипт спецификаций, Скрипт параметров) могут открываться двумя способами.

Если Вы щелкните на кнопке, редактирование произойдет в Главном окне.

Щелчок на пиктограмме справа от кнопки с названием скрипта приведет к открытию отдельного окна для ввода/редактирования скрипта.

Вы можете легко вернуться в Окно Основного скрипта из любого отдельного окна, воспользовавшись контекстным меню Панели Вкладок:

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/TabContext2.png 

Объекты  «только для чтения»  из  файла контейнера библиотеки

Для получения доступа к библиотечным элементам в файле контейнера библиотеки следует, прежде всего, извлечь контейнер. В противном случае окно редактора объектов GDL работает в режиме «Только для чтения».

Для получения дополнительной информации, см. Файл Контейнера Библиотеки.

В расположенных ниже разделах описываются следующие функции:

Управляющие элементы редактора объектов GDL описываются в следующих разделах.

Изображение Предпросмотра Объекта

Детали

Параметры совместимости (только для разработчиков)

Параметры

Миграция

Компоненты

Дескрипторы

Кнопки скриптов

Кнопки окна скриптов GDL

2D-символ

Показ 2D-символа (фрагменты)

Рисунок образца

Проверка 2D- и 3D-видов объекта

Закрытие окна и сохранение изменений

Соответствие 2D- и 3D-описаний

Изображение Предпросмотра Объекта

Окно Изображение Предпросмотра поддерживает пять форматов отображения объекта.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/ObjectPreview.png 

Нажмите одну из кнопок, расположенных рядом с окном, чтобы выбрать вариант представления объекта: 2D-символ, 2D-вид, Вид Спереди, 3D и Изображение Предпросмотра.

Выбрав Вид Спереди и 3D, вы можете щелчками мыши в Окне Предпросмотра поворачивать объект с шагом 45 градусов.

Детали

Подтип объекта. Показывается подтип открытого объекта.

Вы можете изменить подтип объекта, нажав кнопку Выбрать подтип, по которому отрывается диалоговое окно Иерархия подтипов. Изменение подтипа объекта приводит к модификации его поведения и добавлению специфических для подтипа параметров и функциональности. Например, Вы можете изменить обычный объект на источник света, присвоив ему подтип Источник света.

Для получения дополнительной информации, см. Диалоговое окно Иерархия подтипов (Главное окно GDL).

Использовать как подтип. Если Вы отметите этот маркер, объект будет сохранен как шаблон с включением в список имеющихся подтипов. Новый шаблон появится в диалоге Иерархия подтипов и все вновь создаваемые объекты этого типа будут унаследовать его параметры.

Размещаемый маркер является выбранным по умолчанию. При снятии отметки с него объект будет вести себя как макрос. Если этот маркер не отмечен, то это означает, что данный объект:

не появится ни в одном диалоговом окне установки параметров инструмента;

нельзя будет непосредственно разместить в проекте;

нельзя будет включить в архивный файл проекта;

но Вы можете ссылаться на его скрипт из другого объекта.

Поля с информацией об объекте

Следующие несколько элементов управления играют роль, если вы хотите загрузить библиотечный элемент на BIM Components или сделать его коммерческим. Кроме того, любой введенный в эти поля текст принимается во внимание при поиске в окне параметров библиотечного элемента.

См. Поиск библиотечного элемента.

При необходимости отредактируйте следующую информацию.

Автор. (Если это поле останется не заполнено, то в качестве автора загруженного объекта будет использоваться имя, указанное вами при регистрации на BIM Components.)

Лицензия. Введите лицензию (авторские права). Предоставляется три варианта:

Общественное достояние. Щелкните на кнопке Информация для перехода на веб-страницу с информацией об этой лицензии:
http://creativecommons.org/publicdomain/zero/1.0/deed.ru

Атрибуция — Без производных произведений. Щелкните на кнопке Информация для перехода на веб-страницу с информацией об этой лицензии:
http://creativecommons.org/licenses/by-nd/3.0/deed.ru

Коммерческая. Используйте этот вариант лицензии, если Вы предполагаете продавать объект в Интернет. Объект с Коммерческим типом лицензии нельзя загрузить на BIM Components. Щелкните на кнопке Информация для перехода на веб-страницу с информацией об этой лицензии.

Пароль (доступен, если выбрана лицензия Атрибуция — Без производных произведений или Коммерческая). Нажмите кнопку Установить пароль для определения факультативного пароля. Такой объект может свободно просматриваться и закачиваться, но нельзя его открыть для редактирования или копирования скрипта без знания пароля.

Описание. Введите факультативное описание объекта. Этот текст отображается при нажатии кнопки Инфо в диалоге Параметров Объекта, а также — на BIM Components, если объект загружается на сайт. Кроме того, описание используется при поиске библиотечных элементов в диалоге Параметры объекта.

Параметры совместимости (только для разработчиков)

Для получения дополнительной информации воспользуйтесь сайтом GDL Center.

См. gdl.graphisoft.com.

Параметры

Чтобы представить в редактируемой области список параметров библиотечного элемента, нажмите эту кнопку.

Поиск параметров. Введите текстовую строку в поле поиска, чтобы найти ее в столбцах Переменная, Имя, Значение. Курсор располагается на первой найденной строке. Используйте кнопки Найти следующий/Найти предыдущий для перехода на другие экземпляры поисковой строки.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/SearchObjectParameters.png 

Присваивания значения переменным в списке параметров, Вы определяете реквизиты конкретного объекта GDL. Значения, присваиваемые параметрам, становятся значениями по умолчанию, которые появляются в диалогах установки параметров инструмента для данного объекта. Различные скрипты объекта имеют доступ к этим локально определенным параметрам.

Параметры, представленные синим цветом, являются обязательными параметрами (например, размеры А и В), принадлежащими подтипу объекта.

Факультативные параметры доступны для использования в GDL-описании объекта. Присваиваемые им значения становятся значениями по умолчанию в диалоговых окнах параметрической установки соответствующих инструментов.

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

Новый параметр создается нажатие кнопки Новый в верхней части главного окна. Чтобы удалить параметр, следует его выбрать и нажать кнопку Удалить.

Каждый параметр в списке можно редактировать самостоятельно. Строка параметра состоит из пиктограммы (обязательная), указывающей его тип, буквенного обозначения параметра или строки обозначения переменной, описательного текста (факультативное, но рекомендуемое), числового значения по умолчанию.

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

Пиктограммы типа указывают, как параметр интерпретируется ARCHICAD. Щелкнув мышкой на пиктограмме, Вы открываете небольшое диалоговое окно выбора типа параметра, в котором можно выбрать пиктограмму другого типа.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Integer.PNG 

Типы параметров являются одинаковыми для обязательных и факультативных параметров. Далее приводится их описание.

Длина

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Length.PNG 

Определяет физические размеры объекта GDL. Они всегда пересчитываются при выборе другой единицы измерения. Должна быть положительным числом.

Наклон.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Angle.PNG 

Определяет угловые размеры в градусах с десятичными знаками. Используются в таких операциях GDL, как поворот системы координат, определение дуг

Действительное число

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/RealNumber.PNG 

Определяет десятичные числа. Используются в GDL-скриптах, например, в качестве коэффициента увеличения/уменьшения. Нельзя использовать в качестве размерных чисел.

Целое число

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Integerpici.PNG 

Определяет целые числа. Используется в GDL-скриптах, например, для указания количества идентичных компонент или количества выполняемых циклов. Нельзя использовать в качестве размерных чисел.

Истинностное значение

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Booleanpici.PNG 

Определяет значение параметра логического типа. Истинностное значение равно 0 или 1. Оно может использоваться, например, для активизации или завершения какого-нибудь действия или элемента в библиотеке. Это значение может быть введено непосредственно в окошко или с помощью отметки (снятия отметки) маркера.

Текст

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/abc.PNG 

Определяет символьную строку, содержащую не более 255 символов. Может использоваться, например, для определения изменений в объектах GDL или для ввода обычных слов вместо числовых значений в окошках параметров.

Поверхность.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Materialpici.PNG 

определяет покрытие в качестве параметра GDL.

Тип линии.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Linepici.PNG 

Определяет тип линии в качестве параметра GDL.

Образец штриховки

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Fillpici.PNG 

Определяет образец штриховки в качестве параметра GDL.

Цвет пера

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Penpici.PNG 

Определяет цвет пера в качестве параметра GDL.

Примечание: При выборе параметра, относящегося к Покрытию, Типу линии, Образцу штриховки или Цвету пера, справа в строке параметра появляется стрелка, позволяющая открыть всплывающее меню с допустимыми значениями параметра. Эти меню содержат все допустимые реквизиты ARCHICAD соответствующего типа.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/107_12.PNG 

Примечание: В зависимости от способа написания GDL-скриптов, параметры могут оказывать влияние на 2D- и 3D-представления библиотечного элемента.

Типы параметров включают два дополнительных типа: разделитель и  заголовок.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Separatorpici.PNG     https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Titlepici.PNG

Это виртуальные параметры в том смысле, что они не используются по существу, а задаются для придания списку параметров большей наглядности.

Для дальнейшей структуризации и форматирования списка параметров используйте следующие три пиктограммы , которые появляются только при выборе строки параметра.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/lib_main_para_form.PNG 

Нажмите кнопку Спрятать параметр, чтобы он не приводился в списке параметров диалогового окна установки параметров объектов.

Вторая кнопка , Подчиненный параметр, позволяет создавать иерархию среди параметров. Когда имеется иерархия параметров, то подчиненные параметры, то есть параметры нижнего уровня, появляются в виде подсписков в диалоге установки параметров объектов. Подсписок может быть открыт и закрыт с помощью небольшой треугольной кнопки, расположенной рядом с именем параметра верхнего уровня. Параметр верхнего уровня может быть любого типа; однако параметр заголовка не может быть подчиненным.

Нажатие третьей кнопки, Представить жирным шрифтом, приводит к представлению параметра жирным шрифтом.

Четвертая пиктограмма Уникальный (если она активна) означает, что текущий параметр НЕ будет передаваться, когда Вы передаете параметры этого объекта другому объекту.

См. Передача параметров между объектами.

Вы можете ограничить возможные значения параметра, определив массив или матрицу.

При выборе строки с параметром появляется новая пиктограмма  рядом с пиктограммой типа.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/lib_main_para_array.PNG 

Она позволяет переключаться с указания единственного значения на массив значений и наоборот. При нажатии этой кнопки открывается диалоговое окно Значения массива.

Примечание: После определения значений массива диалоговое окно Значения массива может быть открыто только при нажатии кнопки Установить в верхней части главного окна.

Для вставки или удаления строки или столбца выберите кнопку с изображением номера
строки или столбца и затем нажмите кнопку Вставить или Удалить. Отредактируйте поля массива щелчком в поле с последующим вводом значения в поле справа. Если тип переменной допускает это, то выбор значения производится из соответствующего всплывающего меню.

Для вставки или удаления строки или столбца выберите кнопку с изображением номера  строки или столбца и затем нажмите кнопку Вставить или Удалить.

Миграция

Нажмите кнопку Миграция, чтобы открыть таблицу, в которой следует определить объекты более старой версии, которые должны быть мигрированы в текущий открытый объект более новой версии.

Введите основной GUID старого объекта, который может быть мигрирован в данный открытый объект.

Введите номер версии старого объекта (обычно это версия предыдущего ARCHICAD): когда проект сохраняется в предыдущую версию (и если отмечен маркер Обратная конвертация библиотечных элементов в диалоге Параметры сохранения команды Сохранить как), этот новый объект будет мигрирован в старый объект в таблице миграции, которая приписана соответствующему номеру версии. Скрипт обратной миграции будет просматривать все такие строки до тех пор, пока не найдет первую успешную.

Примечание: Если Вы введете 0 в качестве номера версии, обратная миграция пропустит этот объект.

Компоненты

Чтобы представить в редактируемой области список компонент библиотечного элемента, нажмите эту кнопку. Компоненты определяют состав объекта с точки зрения его использования в сметах.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/GDLComponent.png 

Новый. Нажмите кнопку Новый для создания компоненты.

Набор БД. Выберите базу данных из этого всплывающего меню.

Ключ. Выберите один из ключей из этого всплывающего меню.

Примечание: Это всплывающее меню оказывается доступным только в том случае, когда загруженная библиотека содержит описание ключей.

Код. Здесь задается или изменяется код компоненты.

Количество. Здесь определяется или изменяется количество компоненты.

Единицы: Выберите из этого всплывающего меню одну из предварительно определенных единиц измерения.

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

Соотношение. Выберите одно из ранее определенных GDL-выражений из этого всплывающего меню или введите любое GDL-выражение в окошко редактирования выше, выбрав предварительно в меню вариант Специальный.

Для ознакомления с деталями редактирования компонент см. Руководство по проведению расчетов ARCHICAD.

Дескрипторы

Чтобы представить в редактируемой области список дескрипторов библиотечного элемента, нажмите эту кнопку. Дескрипторы определяют состав объекта с точки зрения его использования в сметах.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/Descriptor.png 

Новый. Нажмите кнопку Новый для создания дескриптора.

Связать с БД. Нажмите эту кнопку, чтобы связать компоненту или дескриптор с внешней базой данных, расположенной в выбранных базах данных загруженной библиотеки. Компонента или дескриптор не могут редактироваться до тех пор, пока они связаны с выбранной базой данных. Для их изменения нажмите кнопку Удалить связь с БД, чтобы разорвать эту связь.

Изменить связь. Щелкните здесь, чтобы переопределить существующую связь на другую внешнюю базу данных.

Текст Чтобы открыть диалоговое окно представления полного текста дескриптора, нажмите эту кнопку.

Краткий текст. Введите здесь короткий текст нового дескриптора.

Для получения дополнительной информации о редактировании дескрипторов см. Руководство по проведению расчетов ARCHICAD.

Кнопки скриптов

Эти кнопки позволяют приступить к программированию объекта GDL. Если Вы нажмете саму кнопку, то программирование будет происходить в главном окне, а если нажмете пиктограмму окна рядом с именем кнопки, то откроется самостоятельное окно для ввода и редактирования скрипта.

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/ScriptWindows.png 

Основной скрипт — это тот, который выполняется всякий раз, когда происходит обращение к любому другому скрипту библиотечного элемента. Его основное назначение заключается в том, чтобы расположить в нем глобально определяемые переменные или операции или произвести в нем доступ к внешним данным перед выполнением любого другого скрипта.

С помощью 2D-скрипта Вы можете определить параметрический 2D-символ с помощью двумерных преобразований и команд GDL, предназначенных для создания плоских фигур. Этот скрипт используется для создания полного 2D-вида объекта.

3D-скрипт предназначен для создания и/или редактирования GDL 3D-скриптов библиотечных элементов. Этот скрипт используется для создания 3D-вида объекта.

С помощью скрипта спецификаций Вы можете связывать с определением библиотечного элемента ряд специальных технических данных с использованием переменных библиотечного элемента, а также соответствующих команд и выражений языка GDL. Характеристики компонент (вес, цена, объем и т.п.) подсчитываются согласно описанным в скрипте спецификаций выражениям и используются при составлении сметы. Для использования специального скрипта спецификаций в качестве скрипта по умолчанию в диалоге установки параметров элемента, нажмите кнопку Установить по умолчанию в верхней части экрана.

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

С помощью скрипта параметров можно определить множество допустимых значений параметра. Например, можно ограничить набор покрытий, доступных для столешницы, только деревянными, или определить множество допустимых типов филенок для двери по их именам.

Скрипт интерфейса позволяет определить специальный интерфейс пользователя для объекта GDL, включая и графическое представление дополнительных параметров. Если скрипт интерфейса существует, то диалоговое окно установки параметров этого библиотечного элемента будет содержать панель Специальные параметры. Для использования специального скрипта интерфейса в качестве скрипта по умолчанию в диалоге установки параметров элемента, нажмите кнопку Установить по умолчанию в верхней части экрана.

Скрипты /прямой и обратной миграции. Щелкните на кнопке Прямая миграция или Обратная миграция, чтобы определить, как мигрировать параметры более старого экземпляра вперед — то есть в текущий открытый элемент (или назад — в более старую версию).

Кнопки окна скриптов GDL

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

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/CheckScript.PNG 

Щелчок на первой кнопке приводит к тому, что выбранные строки преобразуются в комментарии, то есть в строки, которые не выполняются в скрипте. Строки комментариев отмечаются восклицательным знаком в начале.

Примечание: Вы можете выбрать более, чем одну строку.

Вторая кнопка имеет прямо противоположный эффект: щелчок на ней приводит к преобразованию выбранных строк комментариев в строки исполняемого кода.

Щелчок на третьей или четвертой кнопке приводит к увеличению или уменьшению отступа для всех выбранных строк.

Последняя кнопка инициирует проверку GDL-скрипта активного окна.

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

Примечание: Окна редактирования скриптов спецификаций, интерфейса и параметров также включают кнопку Просмотр для предварительного просмотра специального скрипта.

2D-символ

Щелчок на кнопке 2D-символ в главном окне приводит к открытию окна редактирования 2D-символа элемента.

Объект GDL представляется на плане этажа своим 2D-символом. Вы можете редактировать существующий символ или создать новый с помощью стандартных 2D-инструментов ARCHICAD: Указатель, Бегущая рамка, Текст, Штриховка, Линия, Дуга/окружность, Сплайн-кривая и Узловая точка. Вы также можете вставлять в это окно элементы из 3D-окна.

Результирующее обозначение, которое используется на плане этажа, формируется на основе символа, представленного в этом окне, а также 2D-скрипта, если он имеется.

Показ 2D-символа (фрагменты)

Чтобы увидеть фрагменты 2D-символа, нажмите кнопку 2D-символ и затем выполните команду Параметры > Реквизиты элементов > Параметры слоев. В открывшемся окне приводится список фрагментов 2D-символа: С их помощью указываются те фрагменты элемента, которые представляются в 2D-символе.

Чтобы переключить видимость слоев 2D-символа объекта, откройте окно 2D-символа и нажмите комбинацию клавишей Ctrl+L (клавишная команда открытия окна Параметры слоев). Открывается специальное окно Параметры слоев, которое имеет отношение только к текущему окну (окну 2D-символа).

Нажмите на кнопку любого фрагмента, чтобы показать/спрятать его, или используйте для этого кнопки Показать все/Спрятать все.

Примечание: Спрятанный фрагмент не доступен для размещения в нем новых чертежных примитивов. Если в диалоговом окне установки параметров выбранного Вами инструмента указывается такой фрагмент, то выдается сообщение, которое предлагает Вам либо показать выбранный фрагмент, либо выбрать другой.

Фрагменты позволяют самостоятельно обращаться к отдельным частям символа. Вы можете нарисовать в 2D-окне какую-либо плоскую фигуру под определенным номером фрагмента и затем ссылаться на нее по этому номеру в 2D-скрипте. При этом в процессе формирования результирующего изображения символа можно использовать операции перемещения и/или поворота фрагментов.

Для указания фрагмента, к которому должен относиться вычерчиваемый Вами примитив, откройте диалоговое окно нужного инструмента и выберите требуемый номер во всплывающем меню слоев.

 Рисунок образца

Открытие этого окна позволяет добавить к библиотечному элементу графическую информацию. Эта графика никак не влияет на поведение объекта или его внешний вид. Рисунок образца выводится в просмотровых окошках диалоговых окон установки параметров объектов, а также вместе с именами библиотечных объектов при их просмотре в диалогах открытия файлов.

Для получения рисунка образца нового объекта поступите следующим образом:

1.Разместите объект в проекте.

2.Выберите объект и откройте 3D-окно, чтобы посмотреть на него.

3.Активируйте команду меню Вид > Параметры 3D-вида > Параметры 3D-проекции. Выберите тип проекции и угол обзора Объекта. Нажмите кнопку ОК.

4.Откройте диалог Настройки Размеров Окна (при помощи контекстного меню вкладки 3D-окна или контекстного меню 3D-окна). Задайте одинаковые значения размеров окна, чтобы получить квадратное окно.

5.Выполните команду Документ > Визуализация > Параметры Визуализации. В области результирующего изображения установите размер в пикселах, чтобы можно было без искажений вставить изображение в окно образца. Выберите также нейтральный фон изображения объекта (например, белый цвет для земли и неба).

6.При все еще выбранном объекте выполните команду Документ > Визуализация > Начать Визуализацию. Создается рисунок модели (макетное изображение).

7.Выполните последовательно команды Редактор > Выбрать все и Редактор > Копировать.

8.Перейдите на план этажа. При выбранном объекте выполните команду Файл > Библиотеки и объекты > Открыть объект. Откроется главное окно выбранного объекта.

9.Откройте окно рисунка образца и выполните команду Редактор > Вставить.

10.Сохраните этот объект GDL.

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

Проверка 2D- и 3D-видов объекта

В нижней части располагаются кнопки, которые позволяют открыть соответствующий вид объекта GDL в отдельном окне:

https://helpcenter.graphisoft.com/ru/wp-content/uploads/sites/6/archicad-22/130_userinterfacedialogboxes/2D3DView.png 

2D-вид

В данном окне Вы можете посмотреть, как будет выглядеть символ на плане этажа.

Если элемент имеет 2D-скрипт, то окно 2D-вида будет представлено согласно этому скрипту, даже если окно 2D-символа что-то содержит. Тем не менее, 2D-скрипт может ссылаться к фрагментам 2D-символа.

Для выхода из режима редактирования (определения) 2D-символа закройте его окно или перейдите в другое окно с помощью соответствующей кнопки главного окна библиотечного элемента или команды меню Окно.

3D-вид

В этом окне воспроизводится трехмерное изображение объекта GDL, построенное согласно его GDL 3D-скрипта. Точка наблюдения и другие характеристики контролируются с помощью диалогового окна команды Вид > Параметры 3D-вида > Стили 3D-или панели 3D-навигации.

Закрытие окна и сохранение изменений

При закрытии главного окна появляется сообщение, предлагающее сохранить произведенные изменения. Все составляющие объекта будут сохранены в одном файле.

Сохранить объект также можно командами Сохранить и Сохранить как, находясь в любом окне библиотечного элемента. (Из 3D-окна сохранить его изображение можно по команде Сохранить как.) После сохранения можно выполнить команду Вид > Обновить > Построить заново для плана этажа или 3D-окна, чтобы посмотреть на обновленный объект GDL.

Если Вы закрываете главное окно объекта GDL (библиотечного элемента), будут также закрыты все другие окна этого объекта. Если были сделаны изменения в объекте, то будет выдано сообщение, предлагающее сохранить их.

Соответствие 2D- и 3D-описаний

2D-символ и 3D-описание элемента автоматически связываются друг с другом в объекте GDL. В ARCHICAD нет механизмов проверки их несогласованности. Наиболее существенные несоответствия между 2D-символом и 3D-фигурой возникают в том случае, если они определяют различное расположение и ориентацию относительно начала координат.

Во избежание этого предлагаем поступить следующим образом.

1.Сделайте текущим окно 3D-вида объекта GDL.

2.В диалоговом окне команды Вид > Параметры 3D-вида > Параметры 3D-проекции > Параллельная проекция выберите Вид сверху и установите угол 270°.

3.Выполните последовательно команды Редактор > Выбрать все и Редактор > Копировать. Войдите в окно 2D-символа и выполните команду Редактор > Вставить. Это приведет к размещению вида сверху (каркасная визуализация или с удалением невидимых линий) библиотечного элемента в окне 2D-символа. Полученная проекция трехмерного изображения должна совпасть по размерам и расположению с 2D-символом.

4.Убедившись в этом, выберите команду Отменить меню Редактор. Это приведет к удалению из окна 2D-символа линий трехмерного изображения.

Этим же способом Вы можете создавать 2D-символы. Вам только придется дополнительно определить узловые точки, типы линий и т.п. Процедура годится также для окон и дверей с учетом следующих особенностей:

вместо вида сверху выберите вид сбоку (угол должен остаться 270°);

в окне 2D-символа будет размещено зеркальное отражение. Выберите размещенные линии и произведите их зеркальное отражение относительно линии привязки стены.

Примечание: При размещении каркасного изображения излишние линии будут удалены. Изображение С Удалением Невидимых Линий дает точный вид, но невидимые линии будут скрыты.

Проблемы соответствия между 2D-символом и 3D-моделью библиотечного элемента могут быть решены написанием в GDL параметрического 2D-скрипта.

  • Эта информация была полезна ?
  • ДаНет
Связанные темы

Все объекты GDL имеют подтип. Подтипы организованы …

Скрипты некоторых объектов GDL включают …

Имеются книги о различного рода документация по …

Этот экспертный материал продолжает цикл
статей «ARCHICAD: открывая заново», начатый в декабре 2016 года статьей
Владимира Савицкого «Создание конструкций и извлечение рабочих чертежей из модели», а затем продолженный публикациями Светланы Кравченко «ARCHICAD: открывая заново. Визуализация – новые возможности для архитектора» и Александра Анищенко «TEAMWORK: эффективная командная работа шаг за шагом».
Цикл призван помочь пользователям в полной мере раскрыть весь потенциал
ARCHICAD®. Мы попросили архитекторов поделиться личным опытом
использования программы с применением нестандартных подходов,
малоизученных функций и новых возможностей, о которых многие
пользователи могут и не подозревать. Как разработчики приложения
ARCHICAD мы уверены, что только глубокое знание продукта может раскрыть
всю его ценность и решающим образом повлиять на результаты, скорость и
качество работы проектировщика.

Вы тоже предпочитаете «непротоптанные
дорожки»? Имеете опыт применения нестандартных подходов в работе с
ARCHICAD, регулярно задействуете не самые известные возможности
приложения? Будем рады пригласить к сотрудничеству новых авторов: ehffvn(beq)tencuvfbsg.pbz»>ehffvn(beq)tencuvfbsg.pbz.

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


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

Наверняка многие из вас слышали о
GDL в ARCHICAD, однако как им пользоваться в работе до сих пор знают
далеко не все. Учитывая невероятную полезность этой функции, а также
множество вопросов после моего первого вебинара
на эту тему, я решила более подробно рассказать о том, как даже
поверхностное его знание может здорово помочь в повседневной работе
архитектора.

Начнем с основ

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

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).

В этом скрипте описываются все действия, которые влияют на параметры:

  • обозначение вариантов или диапазонов возможных значений (VALUES);
  • какие-либо расчеты, результат которых присваивается параметру (PARAMETERS);
  • скрытие или блокировка параметров (HIDEPARAMETER, LOCK).


Рис. 13. Строка в скрипте параметров, которая прячет все параметры

Строку HIDEPARAMETERS ALL
можно просто удалить либо, поставив в начале строки «!», сделать ее
нечитаемой (по синтаксису GDL строка, начинающаяся с восклицательного
знака, считается комментарием. Далее описания и переводы на скриншотах я
буду писать именно после знака «!»). После этого в списке страниц
параметров появится строка «Все параметры», и, выбрав ее, вы увидите
стандартного вида список с параметрами, среди которых будут и новые
строки для поворота.

ПРИМЕР №2 – текст на символе

Следующий пример я беру из текущего
проекта. При работе с планом многоквартирного жилого здания требовалось
на наружных блоках кондиционеров поставить букву «К» – причем так, чтобы
она всегда располагалась вертикально. Конечно, букву можно было бы
просто дописать сверху текстом или поставить выносную надпись-текст, но
тогда при повороте кондиционера, возможно, пришлось бы двигать и текст.

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


Рис. 14. Добавление новых параметров в объекте Кондиционер Воздуха

  1. Показывать текст: тип параметра – логическое значение,
    что подразумевает два возможных значения: 0 (нет) и 1 (да). Таким
    образом, текст можно будет включить или отключить.
  2. Специальный текст: тип параметра – текстовый. Позволит
    вписывать любой текст в символ (я намерена использовать одну букву,
    чтобы она помещалась внутри прямоугольника блока кондиционера).
  3. Шрифт: тип – текстовый. Обратите внимание – некоторые
    виды написания этой переменной позволяют выбирать в столбце значения
    шрифта из списка установленных на компьютере. «Fonttype» вызывает это
    список автоматически, если же я напишу «typefont» или просто «font», то
    придется писать название шрифта вручную. Этот момент я заметила случайно
    в каком-то из стандартных объектов.
  4. Перо текста: тип – перо. Ну, тут всё понятно.

Теперь посмотрим на пиктограммы, которые я нажала в начале строк.

У первой строки нажата пиктограмма , что означает bold – жирный. То есть эта строка в окне параметров объекта будет жирной.

У трех других – пиктограмма . Она означает, что эти строки будут вложены выпадающим списком под первую строку.

На рис. 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 < 100 THEN
PROJECT2 3, 270, 2
ELSE
RECT2 0, 0, A, B
ENDIF
! если масштаб крупнее, чем 1:100, то
! строить проекцию из 3D-модели
! иначе
! строить прямоугольник размерами AxB
! конец условия

Так на генплане в масштабе 1:500 скамьи
отобразятся прямоугольниками, а на фрагменте с более крупным масштабом
будет отрисовываться детальная проекция.
Подобный прием, но уже для трехмерной модели, используется в стандартных деревьях – если включить галочку Автоматический тип кроны.
На определенном расстоянии от камеры тип кроны меняется с детального на
простой, а с простого на эллипс. Правда, для того чтобы скрипты объекта
перечитались, нужно что-то с ними сделать – например, после смены
ракурса, выделив все деревья, открыть окно параметров объекта и, ничего
не меняя, просто нажать ОК, или нажать и отжать галочку замены покрытий.
Покажу на примере аппроксимации сферы. Вот что я написала в 3D-скрипте:

discam_x=abs(GLOB_EYEPOS_X-SYMB_POS_X)
discam_y=abs(GLOB_EYEPOS_Y-SYMB_POS_Y)
discam_h=sqr(discam_x^2+discam_y^2)
discam_z=abs(GLOB_EYEPOS_Z-SYMB_POS_Z)
discam=sqr(discam_h^2+discam_z^2)
if discam<=20 then res=50
if discam<=30 and discam>20 then res=20
if discam<=40 and discam>30 then res=10
if discam>40 then res=5

resol res
sphere 1

! разница в координатах позиции глаз и объекта по оси 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-скрипт с использованием переменных зоны

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

DEFINE STYLE «ROOM» AC_TextFont_1,ROOM_LSIZE,5,0
STYLE «ROOM»
row = ROOM_LSIZE/1000*GLOB_SCALE*1.5
! определение текстового стиля
! назначение текстового стиля
text2 0, row, text2 0, 0,
text2 0, -row,
ROOM_NUMBER
ROOM_NAME
ROOM_AREA

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


Рис. 23. Добавление параметра для типа маркера


Рис. 24. Скрипт Параметров – варианты значений параметра «mt»

2D-скрипт:

 if mt="маркер с номером" then<br /> 	text2 0, 0, ROOM_NUMBER<br /> 	CIRCLE2 0,0,row<br /> endif<br />  if mt="номер и площадь" then<br /> 	text2 0, row/2,   ROOM_NUMBER<br /> 	text2 0, -row/2, AREA_TEXT<br /> endif<br />  if mt="название и площадь" then<br /> 	text2 0, row/2,   ROOM_NAME<br /> 	text2 0, -row/2, AREA_TEXT<br /> endif<br />  if mt="номер, название и площадь" then<br /> 	text2 0, row,  	ROOM_NUMBER<br /> 	text2 0, 0,     	ROOM_NAME<br /> 	text2 0, -row, 	AREA_TEXT<br /> endif<br />  if mt="только площадь" then<br /> 	text2 0, 0,     	AREA_TEXT<br /> endif

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

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-скрипт

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

POLY2_ 5, 1+2+4,
-tl1 /2, row, 1,
tl1 /2, row, 1,
tl1 /2, -row, 1001,
-tl1 /2, -row, 1, -tl1 /2, row, 1001

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

if ShowFloorType then
ADD2 0, row*3
POLY2_ 4, 1,
-row*1.4, -row*0.8, 1,
row*2.8, 60, 201,
row*1.4, -row*0.8, 1,
0, 0, 700
text2 0,0, FLOOR_TYPE
endif

Для типа пола желательно добавить
отдельный параметр для пера, а также точки для графического
редактирования расположения маркера пола. О том, как добавлять точки
графического редактирования, я подробно рассказывала в своем вебинаре, а по ссылке в конце статьи можно скачать объекты и посмотреть, как это реализовано в данном конкретном случае.
И напоследок рассмотрим еще один очень важный подтип объекта, который
открывает большие возможности, – Глобальные Параметры Библиотеки (рис.
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. С его помощью можно создавать как совсем простые
элементы для оформления, так и очень сложные объекты.
Например, вы занимаетесь небольшими и простыми домами из СИП-панелей. У
вас есть определенный список вариантов изменений проекта:

  • длина и ширина дома может быть от 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.

Что касается Архикада и взаимосвязи 3д и 2д в нём. В Архикаде в основе элементов лежит GDL — это интерпретируемый, максимально примитивный процедурный язык, основанный на Basic. В случае с архидовскими элементами, их структура состоит, в основном, из нескольких кусков кода, исполняемых следующим образом (при создании и изменении параметров элемента): сначала исполняется блок Master, Properties, Parameter, и, в зависимости от текущего вида — 3D или 2D. При этом, надо очень чётко понимать, что 2D — это вид в плане, то есть он не обязан соответствовать виду в 3D, или в разрезе/на фасаде. То есть я могу написать ему, чтобы он на плане показывал круг, а в 3D и на фасаде он будет в виде звезды. Кактебетакое,илонмаск? С одной стороны, это позволяет сэкономить на проецировании, но с другой — это не даёт реальной честной модели на плане, как это происходит в Ревите, например.

Егор Глебов поправляет в чате канала: «Ты бы всё-таки говорил, что это всё В ДОПОЛНЕНИЕ к тому, что архикад строит честную проекцию. То есть сделать кастомное 2D отображение — это опция, а не единственный возможный вариант. Классическая команда PROJECT2.»

Поскольку для меня эта команда никогда не применима, упустил этот момент. Однако, от этого не легче.

Кроме того, из-за структуры программы, при каждом изменении параметров, элемент перерисовывает себя, и снова исполняет все эти блоки кода. Это не современный объектно-ориентированный подход с эвентной моделью, а какой-то древний атавизм, в определённых случаях не ускоряющий работу модели, а наоборот — замедляющий.

Не говоря о том, что в ГДЛ отсутствуют многие функции, распространённые в современных языках.

Например, попробуйте догадаться, как работает вот этот код:

_newStr = ""        ! intialize a new empty string

! _currStr = "12,10"
len = STRLEN (numberToStripZeroes  )
_newStr = STRSUB (numberToStripZeroes  , len - 2, len)
if _newStr = ",00" then
    _newStr = STRSUB (numberToStripZeroes  , 0, len-3)
else
    _newStr = numberToStripZeroes  
endif

Это фрагмент вот этого кода:

eps = 0.0001
paperToModel = GLOB_SCALE/1000

define style  'txtStyle'  AC_TextFont_1, AC_TextSize_1, 8, AC_TextStyle_1
style 'txtStyle'

rot2 -90

unid=1
ms=AC_MarkerSize*paperToModel
bb=ms*1.5

hotspot2 -bb,   0 
hotspot2 bb+ms, 0


line2 -bb, 0, bb+ms, 0
add2 bb+ms, 0
line2 0, 0, -ms, -ms*0.3
line2 0, 0, -ms, ms*0.3
del 1


xPos = 0
yPos = 0



if show_slope_inclination = 1 then
    r = request ("View_Rotangle", "", _angleViewRot)
    _totalRotate = (SYMB_ROTANGLE + _angleViewRot) MOD 360
    if (_totalRotate > (90 + EPS) & _totalRotate < (270 + EPS)) then
        rot2 180
    endif

!   if SYMB_ROTANGLE > 180+EPS OR SYMB_ROTANGLE < EPS then ROT2 180
    
    if inclination_in_percents then an_gle=STR(TAN(ROOF_ANGLE)*100, 3, 2)
    
    
    ! SAVE THE TEXT VARIABLE BEFORE THE STRIPPING PROCESS
    if inclination_in_percents then
        numberToStripZeroes = an_gle
    else
        numberToStripZeroes = STR(ROOF_ANGLE, 3, 2)
    endif


    ! STRIP ZEROES FROM THE END
    _newStr = ""        ! intialize a new empty string

    ! _currStr = "12,10"
    len = STRLEN (numberToStripZeroes  )
    _newStr = STRSUB (numberToStripZeroes  , len - 2, len)
    if _newStr = ",00" then
        _newStr = STRSUB (numberToStripZeroes  , 0, len-3)
    else
        _newStr = numberToStripZeroes  
    endif
    
    
    ! OUTPUT THE TEXT
    if inclination_in_percents then
        TEXT2 xPos, yPos, "i = "+ _newStr +"%"
    else
        TEXT2 xPos, yPos, "i = "+ _newStr +"°"
    endif

endif

В современных ЯП убрать нули из конца строки очень легко, обычно для этого есть специальная функция. Более того, насколько я понял, обратиться к индексу строки (символу в строке) тут напрямую нельзя. Это очень неудобно, и странно. Обычно, в общем виде, можно написать что-то вроде string[12], и получить символ номер 12 из строки string.


Может быть интересно:


Инструкция по загрузке GDL-объекта
27.04.2018

Поэтапное описание загрузки и использования gdl-объектов в проекте в программе ARCHICAD

1. Скачиваем “ARCHICAD модель” и “ARCHICAD макросы”
2. Распаковываем архив, создаем папку, в которой лежат и модели, и папка с макросами к ним
3. В верхней строке интерфейса программы выбираем “Файл” — “Библиотеки и Объекты” — “Менеджер библиотек”
4. В открывшемся окне “Менеджер Библиотек” нажимаем на кнопку “добавить” и выбираем всю папку, затем кликаем на “перезагрузить и применить”
5. Для того чтобы поставить любой объект из библиотеки в проект, выбираем инструмент ОБЪЕКТ (стульчик)
6. В открывшемся окне “параметры объекта по умолчанию” выбираем нужную нам папку, затем объект
7. Расставляем на плане.

Инструкция по загрузке GDL-объекта

Возврат к списку

Этот экспертный материал продолжает цикл статей «ARCHICAD: открывая заново», начатый в декабре 2016 года статьей Владимира Савицкого «Создание конструкций и извлечение рабочих чертежей из модели», а затем продолженный публикациями Светланы Кравченко «ARCHICAD: открывая заново. Визуализация – новые возможности для архитектора» и Александра Анищенко «TEAMWORK: эффективная командная работа шаг за шагом». Цикл призван помочь пользователям в полной мере раскрыть весь потенциал ARCHICAD®. Мы попросили архитекторов поделиться личным опытом использования программы с применением нестандартных подходов, малоизученных функций и новых возможностей, о которых многие пользователи могут и не подозревать. Как разработчики приложения ARCHICAD мы уверены, что только глубокое знание продукта может раскрыть всю его ценность и решающим образом повлиять на результаты, скорость и качество работы проектировщика.

Вы тоже предпочитаете «непротоптанные дорожки»? Имеете опыт применения нестандартных подходов в работе с ARCHICAD, регулярно задействуете не самые известные возможности приложения? Будем рады пригласить к сотрудничеству новых авторов: russia@graphisoft.com.

Рассказывает Светлана Кравченко, практикующий архитектор:

zooming

Наверняка многие из вас слышали о GDL в ARCHICAD, однако как им пользоваться в работе до сих пор знают далеко не все. Учитывая невероятную полезность этой функции, а также множество вопросов после моего первого вебинара на эту тему, я решила более подробно рассказать о том, как даже поверхностное его знание может здорово помочь в повседневной работе архитектора.

zooming

Начнем с основ

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

zooming

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

CYLIND h, r

zooming

— SPHERE – сфера с центром в начале координат и радиусом r

 SPHERE r

zooming

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

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

PRISM n, h,

x1, y1,

xn, yn

zooming

Есть много разновидностей призмы. Следующий вид, PRISM_, позволяет указывать к координатам точек коды статусов, которые определяют видимость граней и ребер, а также позволяют создавать криволинейные призмы и призмы с отверстиями (см. в справочнике раздел Коды Статусов). Другой вид, BPRISM_, создает призму, закрученную вокруг оси Y. FPRISM_ строит призму с фаской или скруглением по верхней стороне.

zooming

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

Для 2D-скрипта фигуры описываются другими командами: линия, круг, прямоугольник, полилиния, сплайн. Но можно прописать и команду для построения проекции из 3D-скрипта.
 

Создание 2D- или 3D-форм – это только часть функционала GDL. Если вам нужен просто стол, то проще построить его инструментами самого ARCHICAD. Объект пишется в случае, когда требуется какой-то параметризм: возможность выбора разных типов ножек для стола, количества ножек, изменение размеров стола с сохранением остальных размеров, расчет пиломатериала для его изготовления, вес и стоимость. Объект может вообще не содержать никакой геометрии, а только производить расчеты.

Для этого используются в том числе и Управляющие Предложения (Операторы Управления), такие как циклы, условные операторы, обращение к определенному месту кода (подпрограмме). С циклами и условиями лучше ознакомиться в самом начале – используются они часто. Так, во всех приведенных ниже примерах есть условные операторы.

ПРИМЕР №1 – поворот объекта

Часто у проектировщиков возникает желание сделать объект поворачивающимся. На этом простом примере и рассмотрим структуру Библиотечного Элемента, а также основные окна Редактора Объектов GDL.

Чтобы открыть любой объект, размещенный в пространстве проекта (если разработчик не наложил на него пароль), нужно, выделив его, нажать комбинацию клавиш Ctrl+Shift+O. Другой способ – воспользоваться меню Файл > Библиотеки и Объекты > Открыть Объект. Если в этот момент ни один объект не был выделен, то откроется окно для выбора объекта.

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

zooming

Рис. 1. Первый подопытный

zooming

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

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

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

Ниже располагаются кнопки для открытия таблиц параметров, списков данных и скриптов. Скрипты можно открыть двумя способами: кликнуть на кнопку с названием скрипта – открыть в этом же окне, кликнуть на кнопку правее с пиктограммой окна – скрипт откроется в отдельном окне. Это может быть полезно, чтобы одновременно видеть разные скрипты (рис. 3).

zooming

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

Наверху в окне любого скрипта есть очень нужная кнопка Проверить: при ее нажатии редактор подскажет, нет ли в скрипте ошибок. Сообщение будет содержать причину ошибки и номер строки, в которой найдена ошибка.

В разделе «Детали» можно выбрать подтип объекта: специальное полотно двери, дверная ручка, рама навесной стены и так далее.

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

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

Далее – «Параметры», где в виде таблицы представлены все данные, которые используются в этом объекте и которые можно изменять во время работы над проектом.

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

zooming

Рис. 4. Добавление параметров

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

Первый из этих столбцов – Переменная. Здесь мы латиницей и без пробелов пишем название переменной, которое будет использоваться в скриптах. Именовать нужно так, чтобы было несложно запомнить и при этом легко понять, за что эта переменная отвечает. В нашем случае нужно создать две переменные для значения углов поворотов по осям X и Y (вокруг оси Z объект и так можно поворачивать прямо в плане). Я решила назвать их angle_x и angle_y.

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

zooming

Таблица 1. Типы данных

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

Третий столбец – Имя. Тут можно без правил на любом языке написать, что именно мы хотим потом увидеть в окне параметров объекта.

И последний столбец – Значение. Сейчас тут можно оставить 0: это значение меняется в любой момент как в скрипте, так и в параметрах самого объекта. Как выглядят два новых параметра в окне Редактора объектов GDL, показано на рис. 5. С помощью стрелок в начале строки можно переместить строку в удобное место.

zooming

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

Затем нужно сохранить объект под новым именем, так как стандартная библиотека зашита в контейнер, и в нем нельзя перезаписывать объекты. Окно Параметров объекта будет теперь выглядеть вот так (рис. 6).

zooming

Рис. 6. Новые параметры в окне Параметров объекта

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

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

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

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

Перемещение (команда ADD), поворот (ROT), масштабирование (MUL) – это команды преобразования системы координат. Дальше преобразования можно удалять в скрипте по одному, сразу по несколько либо удалить сразу все. В справочнике все это описано достаточно подробно и с примерами.

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

ADD a, b, c

zooming

Рис. 7. Схема перемещения системы координат

Итак, перед всеми построениями поворачиваем систему координат сначала по одной, потом по другой оси. Поворот по оси Х выполняет команда ROTX alphax, где alphax – угол поворота против часовой стрелки; вместо alphax нужно вписать заранее созданную переменную. По оси Y поворот выполняется аналогично (рис. 8).

zooming

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

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

zooming

Рис. 9. При изменении углов меняется изображение в окне просмотра

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

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

Проекцию модели для 2D-скрипта строит команда PROJECT2 projection_code, angle, method. Что означают projection_code, angle, method – можно прочитать в справочнике, мы же познакомимся с более важной командой из раздела операторов управления IF – THEN – ELSE – ENDIF. Это операторы условий, которые помогут выстроить предложение условия из предыдущего абзаца.

На рис. 10 я выделила добавленные команды в 2D-скрипте и правее красным цветом дописала «перевод».

zooming

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

Теперь требуется только сохранить объект и можно им пользоваться (рис. 11). Преимущество такого метода перед преобразованием в морф заключается в том, что объект остается параметрическим, его можно считать в спецификациях, в нем можно менять размеры планок, размеры рамки и всё остальное, что было в оригинальном объекте.

zooming

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

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

Если выбранный вами для поворота объект имеет параметры не в виде списка, как в этой решетке, а в виде картинок и схем, это означает, что разработчик написал также графический интерфейс. Чаще всего при этом стандартный список с параметрами скрывают, как на рис. 12: в выпадающем списке страниц параметров нет раздела «Все параметры».

zooming

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

В этом случае нужно зайти в скрипт параметров и найти команду, которая прячет все параметры (рис. 13).

В этом скрипте описываются все действия, которые влияют на параметры:

— обозначение вариантов или диапазонов возможных значений (VALUES);

— какие-либо расчеты, результат которых присваивается параметру (PARAMETERS);

— скрытие или блокировка параметров (HIDEPARAMETER, LOCK).

zooming

Рис. 13. Строка в скрипте параметров, которая прячет все параметры

Строку HIDEPARAMETERS ALL можно просто удалить либо, поставив в начале строки «!», сделать ее нечитаемой (по синтаксису GDL строка, начинающаяся с восклицательного знака, считается комментарием. Далее описания и переводы на скриншотах я буду писать именно после знака «!»). После этого в списке страниц параметров появится строка «Все параметры», и, выбрав ее, вы увидите стандартного вида список с параметрами, среди которых будут и новые строки для поворота.

ПРИМЕР №2 – текст на символе

Следующий пример я беру из текущего проекта. При работе с планом многоквартирного жилого здания требовалось на наружных блоках кондиционеров поставить букву «К» – причем так, чтобы она всегда располагалась вертикально. Конечно, букву можно было бы просто дописать сверху текстом или поставить выносную надпись-текст, но тогда при повороте кондиционера, возможно, пришлось бы двигать и текст.

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

zooming

Рис. 14. Добавление новых параметров в объекте Кондиционер Воздуха

1. Показывать текст: тип параметра – логическое значение, что подразумевает два возможных значения: 0 (нет) и 1 (да). Таким образом, текст можно будет включить или отключить.
 

2. Специальный текст: тип параметра – текстовый. Позволит вписывать любой текст в символ (я намерена использовать одну букву, чтобы она помещалась внутри прямоугольника блока кондиционера).
 

3. Шрифт: тип – текстовый. Обратите внимание – некоторые виды написания этой переменной позволяют выбирать в столбце значения шрифта из списка установленных на компьютере. «Fonttype» вызывает это список автоматически, если же я напишу «typefont» или просто «font», то придется писать название шрифта вручную. Этот момент я заметила случайно в каком-то из стандартных объектов.
 

4. Перо текста: тип – перо. Ну, тут всё понятно.
 

Теперь посмотрим на пиктограммы, которые я нажала в начале строк.

У первой строки нажата пиктограмма , что означает bold – жирный. То есть эта строка в окне параметров объекта будет жирной.

У трех других – пиктограмма . Она означает, что эти строки будут вложены выпадающим списком под первую строку.

На рис. 15 – скриншот, иллюстрирующий, как это выглядит в Параметрах Объекта.

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

zooming

Рис. 15. Окно Параметров Объекта

А на рис. 16 – то, что я дописала в 2D-скрипте (по традиции с переводом и комментариями).

zooming

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

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

На следующем скриншоте (рис. 17) я для большей ясности подкрасила разные типы слов/команд/переменных.

zooming

Рис. 17. Дописанные строки в 2D-скрипте с пояснениями

Объект готов (рис. 18).

zooming

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

А если бы я не писала строки с поворотом и масштабированием, то объект выглядел бы так, как на рис. 19.

zooming

Рис. 19. Новые объекты на плане под разными углами без строк поворота и масштабирования

 

ПРИМЕР №3 – детализация

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

если уровень детализации = “детально”, то

(описание построения деталей)

конец условия

Отдельного внимания заслуживают Глобальные Переменные. В справочном руководстве они занимают 40 страниц и для удобства поиска сгруппированы по темам. В предыдущем примере я использовала некоторые данные об ориентации объекта в проекте. Тот же раздел справочного руководства содержит Глобальные Переменные для координат расположения объекта – с их помощью создаются объекты типа выноски с координатами или отметки высоты на разрезе/фасаде.

Очень часто используется GLOB_SCALE – масштаб чертежа (зависит от вида согласно текущему окну), при масштабе 1:100 он равен 100, при масштабе 1:20 равен 20. Применяется чаще всего для перевода размера шрифта в метры модели или наоборот. Также на этот параметр можно «повесить» варианты отображения на плане. Например, для скамейки написать в 2D-скрипте следующее:

IF GLOB_SCALE < 100 THEN ! если масштаб крупнее, чем 1:100,то
PROJECT2 3, 270, 2  ! строить проекцию из 3D-модели
ELSE ! иначе
ENDIF ! конец условия

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

Подобный прием, но уже для трехмерной модели, используется в стандартных деревьях – если включить галочку Автоматический тип кроны. На определенном расстоянии от камеры тип кроны меняется с детального на простой, а с простого на эллипс. Правда, для того чтобы скрипты объекта перечитались, нужно что-то с ними сделать – например, после смены ракурса, выделив все деревья, открыть окно параметров объекта и, ничего не меняя, просто нажать ОК, или нажать и отжать галочку замены покрытий.
 

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

discam_x=abs(GLOB_EYEPOS_X-SYMB_POS_X)

discam_y=abs(GLOB_EYEPOS_Y-SYMB_POS_Y)

discam_h=sqr(discam_x^2+discam_y^2)

discam_z=abs(GLOB_EYEPOS_Z-SYMB_POS_Z)

discam=sqr(discam_h^2+discam_z^2)

if discam<=20 then res=50

if discam<=30 and discam>20 then res=20

if discam<=40 and discam>30 then res=10

if discam>40 then res=5

resol res

sphere 1

В скрипте я использовала Глобальные Переменные GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z – это координаты расположения камеры (глаз) в 3D-окне проекта и SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z – это координаты расположения объекта в пространстве;

abs – модуль числа (убирает «-», если он есть);

sqr – квадратный корень;

^2 – возведение числа в квадрат.
 

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

zooming

Рис. 20. Объект с разной аппроксимацией в зависимости от расстояния в 3D-окне

Через Глобальные Переменные объект может получить:

— данные о расположении проекта (север, широта, долгота, возвышение), установленные в –соответствующем диалоговом окне;

— текущий этаж и собственный этаж;

— тип текущего вида (например, в перемычках ГОСТ используется такое условие: если тип вида – ведомость, то строить вид перемычки в сечении с выносками позиций); в примере с решеткой можно дописать такое условие: если тип вида – ведомость, то не поворачивать систему координат, чтобы в любом случае в ведомости решеток был бы фронтальный вид;

— неполный показ конструкций (можно заставить объект не показывать какие-то части, если выбран показ только ядра).
 

В объект окна или двери можно вытащить данные о стене. Выносные надписи могут получить очень много различной информации об элементе, с которым они связаны, – например, флажок со слоями многослойной конструкции или выноску с объемом элемента. И так далее 40 страниц разных и очень полезных Глобальных Переменных.

ПРИМЕР №4 – маркер зоны

Рассмотрим, как создается собственный маркер зоны. Если создать новый объект и в разделе Детали выбрать ему подтип Паспорт Зоны, то в разделе Параметры отображаются синим цветом все специфические параметры, которые инструмент Зона передает маркеру (рис. 21).

zooming

Рис. 21. Параметры объекта подтипа Паспорт Зоны

При помощи команды TEXT2 можно написать любую из этих переменных в 2D-скрипте – так получится маркер, состоящий только из текста (рис. 22).

zooming

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

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

DEFINE STYLE “ROOM” AC_TextFont_1,ROOM_LSIZE,5,0

STYLE “ROOM”

row = ROOM_LSIZE/1000*GLOB_SCALE*1.5

text2 0, row,ROOM_NUMBER

text2 0, 0, ROOM_NAME

text2 0, -row, ROOM_AREA

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

zooming

Рис. 23. Добавление параметра для типа маркера

zooming

Рис. 24. Скрипт Параметров – варианты значений параметра «mt»

2D-скрипт:

 if mt=«маркер с номером» then

  text2 0, 0, ROOM_NUMBER

  CIRCLE2 0,0,row

 endif

 if mt=«номер и площадь» then

  text2 0, row/2, ROOM_NUMBER

  text2 0, -row/2, AREA_TEXT

 endif

 if mt=«название и площадь» then

  text2 0, row/2, ROOM_NAME

  text2 0, -row/2, AREA_TEXT

 endif

 if mt=«номер, название и площадь» then

  text2 0, row,  ROOM_NUMBER

  text2 0, 0, ROOM_NAME

  text2 0, -row, AREA_TEXT

 endif

 if mt=«только площадь» then

  text2 0, 0, AREA_TEXT

 endif

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

area = str (ROOM_AREA, 4, 2) ! преобразования числа в текст с 2 знаками после запятой

AREA_TEXT = area + « кв.м.» ! добавление к строковому значению букв “кв.м.”

Можно дополнить строки в маркере линиями, разделяющими некоторые строки. Чтобы найти длину строки, нужно использовать команду STW. Допишем в начале скрипта:

tl1=stw(ROOM_NUMBER) /1000*GLOB_SCALE

tl2=stw(ROOM_NAME) /1000*GLOB_SCALE

tl3=stw(AREA_TEXT) /1000*GLOB_SCALE

if mt=«номер и площадь»then tl= MAX (tl1, tl3)

if mt=«номер, название и площадь»then tl= MAX (tl1, tl2)

if mt=«название и площадь»then tl= MAX (tl2, tl3)

if mt=«только площадь»then tl= tl3

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

zooming

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

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

POLY2_ 5, 1+2+4,

-tl1 /2, row, 1,

tl1 /2, row, 1,

tl1 /2, -row, 1001,

-tl1 /2, -row, 1, -tl1 /2, row, 1001

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

if ShowFloorType then

ADD2 0, row*3

POLY2_ 4, 1,

-row*1.4, -row*0.8, 1,

row*2.8,60,201,

row*1.4, -row*0.8, 1,

0,0,700

text2 0,0, FLOOR_TYPE

endif

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

И напоследок рассмотрим еще один очень важный подтип объекта, который открывает большие возможности, – Глобальные Параметры Библиотеки (рис. 26).

zooming

Рис. 26. Выбор подтипа объекта «Глобальные Параметры Библиотеки»

Объект с этим подтипом ничего не строит и не чертит, он определяет параметры в модельных видах. Таким образом, туда можно вынести те параметры, которые хотелось бы видеть общими у объекта, но при этом иметь возможность выставить разное значение для разных видов.
 

Покажу это на примере маркера зоны. Мне попадались проекты, в которых было несколько комплектов зон в разных слоях для разных видов. Если есть потребность в разных маркерах, то Глобальные Параметры Библиотеки – лучшее решение.
 

У меня есть маркер, в котором есть возможность ставить тип пола в треугольнике и менять тип маркировки (рис. 27). И эти два параметра вынесены в отдельный файл подтипа Глобальные Параметры Библиотеки (рис. 28).

zooming

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

zooming

Рис. 28. Параметры объекта подтипа «Глобальные Параметры Библиотеки»

Чтобы эти параметры отобразились в диалоговом окне Параметры Модельного Вида, нужно прописать их в скрипте Интерфейса объекта (рис. 29). Не буду подробно задерживаться на специальных командах для этого скрипта, они достаточно подробно и с примерами описаны в справочнике. Скажу только, что тут мы описываем, в каком месте поля графического интерфейса будет располагаться та или иная надпись или кнопка (поле с выбором вариантов, галочка и т.д.), в Пользовательский Интерфейс можно вставлять и изображения. В стандартной библиотеке почти каждый объект имеет графический интерфейс; вы можете увидеть все возможности и посмотреть, как написаны эти скрипты. Кроме кнопки Проверить скрипт имеет еще и кнопку Просмотр. Нажав на нее, можно быстро увидеть, что получается.

zooming

Рис. 29. Скрипт интерфейса объекта подтипа «Глобальные Параметры Библиотеки»

Можно сохранить объект и посмотреть его в диалоговом окне Параметры Модельного Вида (рис. 30). Здесь мы сможем менять тип маркировки сразу для всех зон в проекте (с этим маркером), но отдельно для разных видов.

zooming

Рис. 30. Новая вкладка Глобальных Параметров в диалоговом окне Параметры Модельного Вида

Теперь в объекте маркера зоны нужно запросить у объекта значения этих двух параметров.

В Основном Скрипте (который читается объектом первым, поэтому все расчеты и определения значений, которые должны применяться в нескольких скриптах, лучше писать тут) пишу две вот такие строки:

success1 = LIBRARYGLOBAL («LibraryGlobals20«, »ShowFloorType», ShowFloorType)

success2 = LIBRARYGLOBAL («LibraryGlobals20«, »mt», mt)

«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.

Понравилась статья? Поделить с друзьями:
  • Цпи 36 руководство по определению
  • Выберите видимое всем руководство
  • Yt9213aj магнитола инструкция по эксплуатации на русском языке
  • Как пользоваться каршерингом делимобиль в москве инструкция по применению
  • Рабочая программа по классному руководству 5 класс