Revit Lookup Tables #2. Поиск нескольких параметров. Организация структуры таблицы

В первой статье про таблицы поиска (Revit lookup tables) мы с вами познакомились с основами и принципами работы функции size_lookup. Я не зря акцентирую внимание на «функции», потому как результатом работы является возвращаемое значение поиска по определенным условиям, а не результат магических заклинаний и плясок с бубном. Задача, по сравнению с отводом, усложняется и нам необходимо теперь контролировать не один входной параметр. Но что бы в результате получить именно те данные, которые нам нужны,  необходимо будет правильно организовать саму структуру таблицы. Итак, приступим.
 

Создаем таблицу для перехода

Для сегодняшнего примера будем использовать простейшее инженерное параметрическое семейство – переход полипропиленовый или же муфта переходная.
 
Lookup_Tables Reducer
 
Почему именно переход? У перехода, в отличие от отвода, имеются уже две величины, которые могут меняться независимо друг от друга. Эти величины есть ничто иное, как диаметры сварных труб. Для привязки к реальным значениям параметров воспользуемся муфтой переходной Valtec:
 
 
Очень хорошо, когда производители приводят чертежи своих деталей и оборудования, - нам это поможет соблюсти все заявленные габаритные размеры. Как видим, у нас имеются 2 диаметра и соответствующие значения параметров A, B и C. Я по привычке буду использовать всю доступную информацию, это маркировка и масса, вы же можете обойтись пока что без этого. Забегая немного вперед, могу сказать, что значения этих параметров пригодятся в спецификации. О том, как это можно будет сделать, я расскажу в следующей части. Сейчас же вернёмся к нашим каталожным данным – это столбцы с d1 по С.
 
Создадим скелет будущей таблицы поиска и начнём конечно же с первой строки, в которой пропишем столбцы данных. В моём варианте в Excel (с каталожным описанием и дополнительным столбцом массы) это выглядит так:
 
Lookup_Tables
 
В первой строке описана структура таблицы, а именно:
  • d1##length##millimeters – диаметр 1 в миллиметрах;
  • d2##length##millimeters – диаметр 2 в миллиметрах;
  • A##length##millimeters – параметр A в миллиметрах;
  • B##length##millimeters – параметр B в миллиметрах;
  • C##length##millimeters – параметр C в миллиметрах;
  • mass##OTHER## – параметр массы в граммах;
 
Параметр массы с описанием единиц ##OTHER## воспринимается как число по той причине, что в Revit в категории параметров «Общие» нет массы, найти её можно в других категориях, но сейчас не об этом.
Структура таблицы готова, теперь необходимо заполнить её соответствующими данными из каталога:
 
Lookup_Tables 02
 
В моём варианте представлена итоговая таблица, если вы заметили, в ней больше строк, чем в каталоге производителя. Я добавил дополнительные строки для дублирования каталожного номера. Сделано это для «отзеркаливания» построения геометрии. То есть: в каталоге есть переход с 25 на 20 и приведены соответствующие значения параметров для B и С. Но что если мы захотим переход не с 25 на 20, а наоборот? Можно было бы вводить дополнительные условия в семействе для определения наибольшего диаметра, а потом уже подставлять их в нужном порядке в size_lookup. Но по мне такой вариант лишь может внести лишнюю путаницу в восприятие, по этой причине я решил продублировать такие позиции с развёрнутыми значениями:
 
 
Таким образом, мы сделали таблицу универсальной - в любом направлении перехода значения для соответствующего диаметра будут правильными.
Не забываем сохранить нашу таблицу в формат CSV, то есть разделители данных запятые:
 
 
И не забываем провести финальную чистку перед загрузкой в семейство. По умолчанию, хотя Excel и пишет что разделителями буду запятые, на самом деле разделителями столбцов будут «;». Даже не смотря на то что Revit спокойно обрабатывает разделители и в виде «;» для столбцов, он не сможет отделить целую часть от дробной потому как в Excel используется «,» а программе Revit нужна «.».
Открываем в текстовом редакторе получившийся файл:
 
 
И производим замену наших разделителей (пользуемся инструментом «Правка»-«Заменить»): сначала заменяем «,» на «.», а потом «;» на «,». В итоге получаем рабочую таблицу:
 
Lookup_Tables 04
 
На этом первый этап завершен - рабочая таблица для семейства готова!
 
 
 
 

Создаем геометрию семейства перехода

Тут уже всё намного проще и легче, какой шаблон для нашего будущего семейства использовать решать вам – я по привычке пользуюсь «Метрическая система, типовая модель».
Задаём категорию нашего семейства – «Соединительные детали трубопроводов» и указываем тип детали «Переход».
Создаём опорные плоскости и расставляем размерные зависимости с привязкой к параметрам:
 
Familiy MEP
 
В данном случае я для себя выбрал оптимальный способ формирования объемной геометрии – вращение. Но дополнительно ввёл ещё 2 параметра для толщины стенки детали и выступ для границы трубы:
 
Familiy MEP 02
 
В итоге получаем параметрическое семейство с привязкой к параметрам: d1,d2,A,B и C как в каталоге нашего производителя.
 
 
 

Настройка семейства перехода с использованием функции size_lookup

Следующий шаг - это загрузка нашей таблицы в семейство:
 
Familiy MEP Lookup tables
 
Теперь необходимо создать текстовый параметр для нашей таблицы:
 
Familiy MEP Lookup tables 02
 
Ну и теперь самое волшебное – заставляем всё это работать!
Имеем наши параметры семейства:
 
Familiy MEP Lookup tables 03
 
Прописываем в параметр имени таблицы поиска (в моём случае это параметр «LT») имя нашей таблицы: «Reducer» (имя таблицы может быть произвольным, оно должно совпадать с нужным именем загруженных таблиц в семействе). И теперь прописываем для наших параметров A,B и C необходимые формулы поиска значений в нашей таблице:
 
Familiy MEP Lookup tables 04
 
На примере формулы для значения параметра А разберём функцию size_lookup
size_lookup (LT, "A", 0 мм, d1, d2)
где:
LT – наш параметр с именем необходимой таблицы «Reducer»;
«A» - столбец, из которого мы получаем значение поиска;
0 мм – значение по умолчанию, если ничего не найдем. Я специально привёл значение в 0 для того что бы при построении возникала ошибка формирования типоразмера для семейства и пользователь понимал, что такой комбинации переходов не существует;
d1, d2 – это наши параметры, а точнее пара наших диаметров по комбинации значений которых и будет производиться поиск в таблице;
 
Если наглядно, то это выглядит именно так:
 
Familiy MEP Lookup tables_A
size_lookup(LT, "A", 0 мм, d1, d2)
 
Именно для поиска по комбинации 2х параметров (пара наших диаметров d1 и d2), мы с вами НАЧИНАЯ СО ВТОРОГО СТОЛБЦА и создали необходимое количество комбинаций для поиска. Если нам необходимо производить поиск по одному значению или комбинации  2х и более значений, то необходимо НАЧИНАЯ СО ВТОРОГО СТОЛБЦА создавать эти комбинации. А уже после них в произвольном порядке следуют столбцы с информацией которую мы с вами хотим получить.
По такому же принципу вводим формулы для параметров В и С:
 
Familiy MEP Lookup tables_B
size_lookup(LT, "B", 0 мм, d1d2)
 
 
Familiy MEP Lookup tables_C
size_lookup(LT, "C", 0 мм, d1d2)
 
 
 

Настройка семейства перехода: коннекторы

Ну и финальные штрихи для нашего инженерного семейства – коннекторы. Размещаем коннекторы с привязкой диаметра к параметрам d1 и d2:
 
Revit MEP family connectors
 
Не забываем указать классификацию для систем у коннекторов «Фитинг» и проверить, что параметры d1 и d2 являются параметрами экземпляра. Связываем коннекторы и сохраняем семейство.
Достаточно теперь загрузить это семейство в проект к вашим трубам и проверить работоспособность:
 
bim2b Revit family
 
 
 

Краткий итог второй части обзора Lookup tables (таблиц поиска) Revit

На этом хотел бы подвести основные итоги 2 части полного обзора Lookup tables (таблиц поиска) Revit:
  • size_lookup – позволяет производить поиск по одному значению или комбинации 2х и более значений;
  • При создании таблицы поиска необходимо НАЧИНАЯ СО ВТОРОГО СТОЛБЦА описывать одну или более комбинацию значений поиска;
  • Значения для результатов поиска необходимо располагать ПОСЛЕ ВСЕХ СТОЛБЦОВ ПОИСКА;
  • Поиск по СТОЛБЦАМ ПОИСКА происходит в порядке перечисления их в size_lookup;
 
В следующей, заключительной  части, мы с вами рассмотрим способы работы с различными форматами данных, их приведении в формулах и кое-что ещё…
 
До новых встреч, следите за обновлениями на сайте BIM2B.
 
Дмитрий Талалаев, эксперт BIM2B.

Сделано в Promodex