Формулы и выражения
В Renga можно автоматически получать из имеющихся в модели параметров, свойств и расчетных характеристик объектов, другие параметры для спецификаций и чертежей. Сделать это можно с помощью формул и выражений, заданных в свойствах типах объектов:
Выражение для числовых свойств может содержать число или формулу. В формуле можно использовать ссылки на значения числовых параметров, свойств, а также расчётных характеристик объектов. Для каждого типа объекта в Renga этот набор отличается.
Тип данных выбирается из выпадающего списка при создании нового свойства. В Renga для свойств можно задавать 11 типов данных, от типа данных зависит какие значения и выражения можно задавать свойству.
Посмотрите примеры в таблице:
Тип данных
|
Допустимые значения
|
Выражение
|
Пример выражения (см. другие примеры ниже)
|
Действительное число
|
Действительное число
|
Действительное число или формула. При составлении выражения в качестве десятичного разделителя действительного числа используется точка
|
Стиль двери.Глубина полотна/Стиль двери.Материал.Теплопроводность
|
Целое число
|
Целое число
|
Целое число или формула
|
ceil(Номинальная длина)
|
Строка
|
Любая последовательность символов
|
Ссылки и формулы в фигурных скобках {}, а также любые символы
|
Балка {round(Габаритная высота поперечного сечения)}х{round(Габаритная ширина поперечного сечения)} мм, L={round(Номинальная длина)} мм
|
Длина
|
Значение в миллиметрах.
|
Число или формула
|
Ширина проступи*Количество ступеней
|
Площадь
|
Значение в квадратных метрах.
|
Число или формула
|
Чистая площадь пола*Понижающий коэффициент
|
Объём
|
Значение в кубических метрах.
|
Число или формула
|
Чистый объём*1.1
|
Масса
|
Значение в килограммах.
|
Число или формула
|
Чистая масса+Общая масса арматурных стержней
|
Угол
|
Значение в десятичных градусах.
|
Число или формула
|
asind((Относительная высота верха базовой линии объекта-Относительная высота низа базовой линии объекта)/Номинальная длина)
|
Булевый
|
Да/Нет
|
Формула, результат которой: 0 - Нет, 1 - Да
|
(Толщина стены>300) ? 1 : 0
|
Логический
|
Да/Нет/Не задано
|
|
|
Перечисление
|
Значение из списка, созданного пользователем. Чтобы создать список предлагаемых значений, введите его в поле Значения перечисления. Разделяйте значения нажатием клавиши ENTER.
|
|
|
Например, вам нужно, не проверяя каждую стену в модели, определить для каких стен необходимо назначить армирование. Можно задать выражение для свойств типа данных Булевый.
Например, задайте следующее выражение для свойства Необходимо армировать:
(Толщина стены>300) ? 1 : 0
Где 1 - Да, 0 - Нет.
Составление выражения
Чтобы задать выражение для свойства:
1. На вкладке Свойства типов объектов выберите в списке тип объекта.
2. В правой части окна выберите свойство, для которого необходимо задать выражение и нажмите кнопку Изменить свойство... .
3. В окне Изменение свойства отметьте Задать выражение для свойства.
4. Задайте выражение в соответствии с Типом данных.
5. Нажмите OK.
Если свойству объекта назначено значение, то выражение применено не будет. Удалите значение, чтобы расчет был выполнен автоматически.
Выражения, заданные для свойств объектов, не сохраняются при вставке объектов, спецификаций и чертежей в другой проект.
|
Составление формул
В Renga формула может быть задана в выражении ограничения в редакторе Профили, в выражении свойства объекта, а также при подготовке или заполнении формы.
При составлении формул можно использовать переменные, арифметические операторы, константы, функции и логические операторы.
Чтобы сравнить значение переменной со строкой или присвоить строковое значение с помощью логического выражения, нужно заключить строку в одинарные кавычки. Имена переменных должны быть записаны без использования кавычек.
Переменные
При задании формулы в выражении ограничения в редакторе Профили в качестве переменных можно использовать имена ограничений, существующих в текущем профиле.
При задании формулы в выражении для свойства объекта в качестве переменных можно использовать ссылки на значения числовых параметров, свойств и расчетных характеристик этого объекта, а также на значения числовых данных Информации о проекте и свойств Проекта, Здания и Участка.
При подготовке или заполнении формы в качестве переменных в формулах можно использовать ссылки на значения числовых свойств Проекта, Здания и Участка, параметров и свойств Чертежа.
Арифметические операторы
| |
( )
|
скобки операторные;
|
+
|
сложить;
|
-
|
вычесть;
|
*
|
умножить;
|
/
|
разделить;
|
%
|
разделить целочисленно;
|
^
|
возвести в степень;
|
Функции
| |
sqrt
|
корень квадратный;
|
ln
|
натуральный логарифм;
|
lg
|
десятичный логарифм;
|
abs
|
абсолютное значение;
|
ceil
|
округление до большего целого числа;
|
floor
|
округление до меньшего целого числа;
|
round
|
округление до ближайшего целого числа;
|
sin
|
синус с аргументом в радианах;
|
cos
|
косинус с аргументом в радианах;
|
tan
|
тангенс с аргументом в радианах;
|
asin
|
арксинус с аргументом в радианах;
|
acos
|
арккосинус с аргументом в радианах;
|
atan
|
арктангенс с аргументом в радианах;
|
sind
|
синус с аргументом в градусах;
|
cosd
|
косинус с аргументом в градусах;
|
tand
|
тангенс с аргументом в градусах;
|
asind
|
арксинус с аргументом в градусах;
|
acosd
|
арккосинус с аргументом в градусах;
|
atand
|
арктангенс с аргументом в градусах;
|
deg
|
перевод из радиан в градусы;
|
rad
|
перевод из градусов в радианы;
|
Логические операторы
| |
==
|
тождественно
|
!=
|
не тождественно
|
>
|
больше
|
<
|
меньше
|
>=
|
больше или равно
|
<=
|
меньше или равно
|
!
|
логическое отрицание
|
&&
|
логическое И
|
||
|
логическое ИЛИ
|
?:
|
логическое выражение вида A ? B : С, то есть если A — истина, то B, иначе C, где A, B и C могут быть выражениями
|
Константы
| ||
M_FI
|
1.6180339887499
|
Φ — иррациональное число золотого сечения.
|
M_E
|
2.71828182845904523536
|
е — основание натурального логарифма.
|
M_PI
|
3.14159265358979323846
|
π — отношение длины окружности к диаметру.
|
M_PI_2
|
1.57079632679489661923
|
π/2
|
M_PI_4
|
0.785398163397448309616
|
π/4
|
M_PI2
|
6.28318530717959
|
2π
|
M_SQRT2
|
1.41421356237309504880
|
Корень квадратный из 2.
|
M_RADDEG
|
57.29577951308
|
Коэффициент пересчета из радиан в градусы (180/π).
|
M_DEGRAD
|
0.01745329251994
|
Коэффициент пересчета из градусов в радианы (π/180).
|
FLT_EPS
|
1.19209290E–07
|
Разница между 1 и наименьшим представленным числом больше чем единица.
|
Примеры
Примеры выражений для строк
Выражение для свойств типа Строка может содержать как формулы, так и ссылки на, например, наименования, а также любые другие символы. При этом ссылки и формулы для получения значений должны быть заключены в фигурные скобки {}.
Пример выражения
|
Пример результата
|
Разъяснения
|
{ceil(Габаритная высота)}х{ceil(Габаритная ширина)}
|
1500х1200
|
Чтобы вывести в спецификацию размер проёма окна или двери, создайте свойство с типом данных строка и задайте это выражение
|
{Наименование типа элемента} {round(Габаритная высота поперечного сечения)}x{round(Габаритная ширина поперечного сечения)} мм, L={round(Номинальная длина)} мм
|
Мауэрлат 150х150 мм, L=4000 мм
|
Чтобы сформировать наименование деревянного изделия в спецификации, необходимо добавить следующие свойства для типа объекта Балка:
1) Наименование типа элемента. Тип данных - Перечисление. Значения: Коньковый брус, Кобылка, Лежень, Мауэрлат, Накосная нога, Подкос, Ригель, Стропильная нога.
2) Наименование. Тип данных - Строка, для этого свойства надо задать указанное выражение. В этом выражении используются ссылки и формулы, функция round округляет расчётные характеристики до целого числа.
|
Примеры расчётных выражений
Расчётные выражения могут содержать арифметические операторы, функции, константы, числовые значения и ссылаться на информацию с числовыми параметрами, имеющуюся в проекте.
Пример выражения
|
Пример результата
|
Разъяснения
|
ceil(Чистый объём*1e9/Объём изделий)
|
2567
|
Чтобы определить количество изделий в чистом объёме, рассчитайте их с помощью формулы с округлением до большего целого числа, как показано в примере
|
Площадь внешней поверхности*0.14
|
15,4
|
Чтобы определить расход лакокрасочных материалов, создайте выражение, содержащим произведение площади поверхности на расход на м2, как показано в примере
|
round(Номинальная длина)
|
4600
|
Чтобы определить номинальную длину с округлением до ближайшего целого числа, создайте выражение, как показано в примере
|
Примеры формул с логическими операторами
Пример выражения
|
|
Пример результата
|
Разъяснения
|
Имя помещения == 'Лоджия' ?
Чистая площадь пола * 0.5 : Имя помещения == 'Балкон' || Имя помещения == 'Терраса' ? Чистая площадь пола * 0.3 : Чистая площадь пола
|
|
12,5
|
Чтобы вычислить значение площади помещения в зависимости от его имени, задайте логическое выражение, которое можно прочесть следующим образом:
Если имя помещения — лоджия, то его площадь равна половине чистой площади пола.
Если же имя помещения — балкон или терраса, то его площадь равна трети чистой площади пола.
В других случаях площадь помещения равна чистой площади пола.
|
{Ширина окна == 900 ? 'ПБ-1' :
Ширина окна == 1200 ? 'ПБ-2' :
'Ошибка'}
|
|
ПБ-1
|
Чтобы определить значение свойства типа данных Строка в зависимости от значения числового параметра, задайте логическое выражение, как показано в примере.
Данный пример можно прочесть следующим образом: если ширина окна равна 900 мм, то значение свойства ПБ-1. Если же ширина окна равна 1200 мм, то значение свойства ПБ-2. В других случаях — Ошибка.
|
Материал.Тип материала=='Заполнитель'? Чистый объём : Чистая площадь
{Материал.Тип материала=='Заполнитель'? 'м3' : 'м2'}
|
|
Бетон 25,4 м3
Обои 116 м2
|
Чтобы создать ведомость расхода материалов, в которой определяется объём или площадь материала в зависимости от типа материала, необходимо добавить следующие свойства:
1) Для типа объекта Материал: - Тип материала. Тип данных - Перечисление. Значения: Заполнитель и Покрытие.
2) Для типа объекта Слой: - Количество материала, для этого свойства задайте первое логическое выражение из примера.
3) Для типа объекта Слой: -Единица измерения. Тип данных - Строка. Для этого выражения задайте второе логическое выражение из примера.
|