Здесь создаем калькуляцию для вычисления результатов сразу по нескольким выражениям.

Выражений может быть от одного до четырех (A, B, C и D).

Результаты суммирования по выражениям записываются в соответствующие позиции в панели LABPP_Calc.

Если выражение отсутствует, то это поле не вычисляется и результат в позицию панели LABPP_Calc  не вставляется.


Нажмите кнопку 1 на панели калькулятора чтобы запустить диалог работы с калькуляциями. 

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

В появившейся панели введите развание расчета, например - "Расчет плинтуса с учетом запаса".

Выбетите вкладку 5 (Формула 4) и нажмите кнопку Фикс.тип чтобы зафиксировать выбор. Это будет означать, что мы генерируем калькуляцию по типу Формула 4.

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

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

Нажмите кнопку 2 чтобы вызвать BIM Master. 

Выберите зону и в панели BIM Master нажмите кнопку 3.

Данные из зоны загрузятся в BIM Master.

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

Нажмите кнопку 2 еще раз - это свойство вставится в поле A окна калькуляции.

Теперь при выполнении калькуляции для каждого элемента в выборке будет вычисляться выражения 6 так, что переменной A будет присвоено значение поля "Высота плинтуса" от текущего элемента. И значения выражений, таких как Res_A, будут складываться между собой.

Теперь аналогичным образом вставьте свойство "Материал плинтуса" - это тоже заранее созданное, но уже текстовое свойство с двумя возможными значениями - Плитка или ПВХ.

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

И предложит на выбор что с ним делать - выделять из текстового значения число или просто использовать как текст.

Мы выбираем - использовать как текст. При вставке свойства - буква B становится жирной. Это означает, что B будет содержать не число, а текст.

И, наконец, в BIM Master'е на вкладке QTY найдем свойство "Длина стен по периметру зоны" - это периметр за вычетом дверных проемов. Она в общем случае соответствует длине плинтуса.

Составим формулы в поле 6.


IIF(B="Плитка";(A/1000)*C;0)


Это означает, что мы сравниваем содержимое переменной B со словом "Плитка".

Если истина - то IIF вернет значение A/1000 * C (высота плинтуса в мм переводим в метры и умножив на длину получаем площадь).

Если ложь - то IIF вернет 0.

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


Следующее выражение.


IIF (B="ПВХ"; ceil(C);0)


Если B содержит "ПВХ", то округлить C до целого числа в большую сторону или вернуть 0 если не ПВХ.

Теперь выбираем зоны и нажимаем кнопку 7 (Пуск).


Программа переберет в цикле все выбранные элементы зон, рассчитает для каждой значения Res_A и Res_B, просуммирует их в соответствии с настройками округления и подставит соответственно букве в поля выражений калькулятора.
Подставляться может результат или расшифровка значений (типа 14+18 и т.п.) без нулевых значений.

При нажатии кнопки 3 открывается дополнительная площадка справа.

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


Если выбрать данные 1 или 2, скопировать в буфер обмена Windows и вставить в электронные таблицы, то все значения расположатся по своим ячейкам.