REVIT LOOKUP TABLES #2. ПОИСК НЕСКОЛЬКИХ ПАРАМЕТРОВ. ОРГАНИЗАЦИЯ СТРУКТУРЫ ТАБЛИЦЫ
В первой статье про таблицы поиска (Revit lookup tables) мы с вами познакомились с основами и принципами работы функции size_lookup. Я не зря акцентирую внимание на «функции», потому как результатом работы является возвращаемое значение поиска по определенным условиям, а не результат магических заклинаний и плясок с бубном. Задача, по сравнению с отводом, усложняется и нам необходимо теперь контролировать не один входной параметр. Но что бы в результате получить именно те данные, которые нам нужны, необходимо будет правильно организовать саму структуру таблицы. Итак, приступим.
Создаем таблицу для перехода
Для сегодняшнего примера будем использовать простейшее инженерное параметрическое семейство – переход полипропиленовый или же муфта переходная.
Почему именно переход? У перехода, в отличие от отвода, имеются уже две величины, которые могут меняться независимо друг от друга. Эти величины есть ничто иное, как диаметры сварных труб. Для привязки к реальным значениям параметров воспользуемся муфтой переходной Valtec:
Очень хорошо, когда производители приводят чертежи своих деталей и оборудования, – нам это поможет соблюсти все заявленные габаритные размеры. Как видим, у нас имеются 2 диаметра и соответствующие значения параметров A, B и C. Я по привычке буду использовать всю доступную информацию, это маркировка и масса, вы же можете обойтись пока что без этого. Забегая немного вперед, могу сказать, что значения этих параметров пригодятся в спецификации. О том, как это можно будет сделать, я расскажу в следующей части. Сейчас же вернёмся к нашим каталожным данным – это столбцы с d1 по С.
Создадим скелет будущей таблицы поиска и начнём конечно же с первой строки, в которой пропишем столбцы данных. В моём варианте в Excel (с каталожным описанием и дополнительным столбцом массы) это выглядит так:
В первой строке описана структура таблицы, а именно:
- d1##length##millimeters – диаметр 1 в миллиметрах;
- d2##length##millimeters – диаметр 2 в миллиметрах;
- A##length##millimeters – параметр A в миллиметрах;
- B##length##millimeters – параметр B в миллиметрах;
- C##length##millimeters – параметр C в миллиметрах;
- mass##OTHER## – параметр массы в граммах;
Параметр массы с описанием единиц ##OTHER## воспринимается как число по той причине, что в Revit в категории параметров «Общие» нет массы, найти её можно в других категориях, но сейчас не об этом.
Структура таблицы готова, теперь необходимо заполнить её соответствующими данными из каталога:
В моём варианте представлена итоговая таблица, если вы заметили, в ней больше строк, чем в каталоге производителя. Я добавил дополнительные строки для дублирования каталожного номера. Сделано это для «отзеркаливания» построения геометрии. То есть: в каталоге есть переход с 25 на 20 и приведены соответствующие значения параметров для B и С. Но что если мы захотим переход не с 25 на 20, а наоборот? Можно было бы вводить дополнительные условия в семействе для определения наибольшего диаметра, а потом уже подставлять их в нужном порядке в size_lookup. Но по мне такой вариант лишь может внести лишнюю путаницу в восприятие, по этой причине я решил продублировать такие позиции с развёрнутыми значениями:
Таким образом, мы сделали таблицу универсальной – в любом направлении перехода значения для соответствующего диаметра будут правильными.
Не забываем сохранить нашу таблицу в формат CSV, то есть разделители данных запятые:
И не забываем провести финальную чистку перед загрузкой в семейство. По умолчанию, хотя Excel и пишет что разделителями буду запятые, на самом деле разделителями столбцов будут «;». Даже не смотря на то что Revit спокойно обрабатывает разделители и в виде «;» для столбцов, он не сможет отделить целую часть от дробной потому как в Excel используется «,» а программе Revit нужна «.».
Открываем в текстовом редакторе получившийся файл:
И производим замену наших разделителей (пользуемся инструментом «Правка»-«Заменить»): сначала заменяем «,» на «.», а потом «;» на «,». В итоге получаем рабочую таблицу:
На этом первый этап завершен – рабочая таблица для семейства готова!
Создаем геометрию семейства перехода
Тут уже всё намного проще и легче, какой шаблон для нашего будущего семейства использовать решать вам – я по привычке пользуюсь «Метрическая система, типовая модель».
Задаём категорию нашего семейства – «Соединительные детали трубопроводов» и указываем тип детали «Переход».
Создаём опорные плоскости и расставляем размерные зависимости с привязкой к параметрам:
В данном случае я для себя выбрал оптимальный способ формирования объемной геометрии – вращение. Но дополнительно ввёл ещё 2 параметра для толщины стенки детали и выступ для границы трубы:
В итоге получаем параметрическое семейство с привязкой к параметрам: d1,d2,A,B и C как в каталоге нашего производителя.
Настройка семейства перехода с использованием функции size_lookup
Следующий шаг – это загрузка нашей таблицы в семейство:
Теперь необходимо создать текстовый параметр для нашей таблицы:
Ну и теперь самое волшебное – заставляем всё это работать!
Имеем наши параметры семейства:
Прописываем в параметр имени таблицы поиска (в моём случае это параметр «LT») имя нашей таблицы: «Reducer» (имя таблицы может быть произвольным, оно должно совпадать с нужным именем загруженных таблиц в семействе). И теперь прописываем для наших параметров A,B и C необходимые формулы поиска значений в нашей таблице:
На примере формулы для значения параметра А разберём функцию size_lookup
size_lookup (LT, “A”, 0 мм, d1, d2)
где:
LT – наш параметр с именем необходимой таблицы «Reducer»;
«A» – столбец, из которого мы получаем значение поиска;
0 мм – значение по умолчанию, если ничего не найдем. Я специально привёл значение в 0 для того что бы при построении возникала ошибка формирования типоразмера для семейства и пользователь понимал, что такой комбинации переходов не существует;
d1, d2 – это наши параметры, а точнее пара наших диаметров по комбинации значений которых и будет производиться поиск в таблице;
Если наглядно, то это выглядит именно так:
size_lookup(LT, “A”, 0 мм, d1, d2)
Именно для поиска по комбинации 2х параметров (пара наших диаметров d1 и d2), мы с вами НАЧИНАЯ СО ВТОРОГО СТОЛБЦА и создали необходимое количество комбинаций для поиска. Если нам необходимо производить поиск по одному значению или комбинации 2х и более значений, то необходимо НАЧИНАЯ СО ВТОРОГО СТОЛБЦА создавать эти комбинации. А уже после них в произвольном порядке следуют столбцы с информацией которую мы с вами хотим получить.
По такому же принципу вводим формулы для параметров В и С:
size_lookup(LT, “B”, 0 мм, d1, d2)
size_lookup(LT, “C”, 0 мм, d1, d2)
Настройка семейства перехода: коннекторы
Ну и финальные штрихи для нашего инженерного семейства – коннекторы. Размещаем коннекторы с привязкой диаметра к параметрам d1 и d2:
Не забываем указать классификацию для систем у коннекторов «Фитинг» и проверить, что параметры d1 и d2 являются параметрами экземпляра. Связываем коннекторы и сохраняем семейство.
Достаточно теперь загрузить это семейство в проект к вашим трубам и проверить работоспособность:
Краткий итог второй части обзора Lookup tables (таблиц поиска) Revit
На этом хотел бы подвести основные итоги 2 части полного обзора Lookup tables (таблиц поиска) Revit:
- size_lookup – позволяет производить поиск по одному значению или комбинации 2х и более значений;
- При создании таблицы поиска необходимо НАЧИНАЯ СО ВТОРОГО СТОЛБЦА описывать одну или более комбинацию значений поиска;
- Значения для результатов поиска необходимо располагать ПОСЛЕ ВСЕХ СТОЛБЦОВ ПОИСКА;
- Поиск по СТОЛБЦАМ ПОИСКА происходит в порядке перечисления их в size_lookup;
В следующей, заключительной части, мы с вами рассмотрим способы работы с различными форматами данных, их приведении в формулах и кое-что ещё…
До новых встреч, следите за обновлениями на сайте BIM2B.
Дмитрий Талалаев, эксперт BIM2B.