Revit Lookup Tables #3. Форматы данных. Получение текстовых параметров

В предыдущих (первой и второй) частях по работе с таблицами поиска (Revit lookup tables) вы познакомились со структурой и способами работы функции size_lookup. Рассмотрели способы и области применения данного механизма для извлечения данных по критериям поиска. Сегодня, в заключительной статье, мы поговорим о форматах данных, которые можем получать из таблиц поиска.
 
Для наших экспериментов будем использовать семейство, которое я создал в предыдущей статье: Переходник ПП Valtec 705 (скачать по ссылке).
Lookup_Tables Reducer
 
 

Форматы извлекаемых данных

Официальная справка по функции size_lookup говорит о том, что применение данной конструкции в формуле ограничивает нас получением только числовых данных:
  • Функция size_lookup предоставляет возможность поиска только числовых значений.
Возможно, так и задумывалось изначально, но пытливый ум и наличие свободного времени для экспериментов позволили открыть способ для извлечения текстовых параметров, но об этом чуть позже. Вернёмся к нашим числовым данным.
Для определения с нашими форматами данных заглянем в справку по созданию каталога типоразмеров:
 
Revit Data type
 
Почему каталог типоразмеров и какое он имеет отношение к таблицам поиска? На самом деле таблицы поиска (lookup tables) и каталог типоразмеров имеют много общего: 
  • size_lookup используется в формулах параметров семейства, возвращая определенное значение для типоразмера семейства;
  • каталог типоразмеров служит для формирования целых наборов типоразмеров семейства при загрузке семейства в проект;
В первом и во втором случаях мы имеем дело с таблицами, в которых обязательно должны присутствовать столбцы данных. Только в первом случае таблицы используются для одного значения параметра (size_lookup), а во втором - для всего набора параметров типоразмера семейства. Из этого следует вывод: определение типа данных для обоих случаев одинаково.
 
Но в справке по каталогу типоразмеров приведены не все доступные форматы данных. Например, для площади описание заголовка столбца должно соответствовать: param_name##AREA##SQUARE_FEET. Из определения ясно, что единицами измерения будут являться квадратные футы и параметр относится к типу данных «Площадь». Данное определение распространяется на фактическое значение в самой таблице и при использовании этих данных в семействе будет автоматически конвертировано в соответствии с настройками единиц проекта семейства данной категории:
 
Revit единицы проекта
 
То есть, если в самой таблице будут указаны в качестве единиц квадратные футы, то в проекте значение будет переведено в метры квадратные автоматически. Об этом следует всегда помнить, записывая формулы для параметров, чтобы не получить ошибку о несоответствии типов данных.
 
 

Как узнать нужный формат данных

Каким же образом мы можем указать в заголовке таблицы нужный тип данных и его единицы? Опять же возвращаемся к каталогу типоразмеров. Если вы уже ознакомились со справкой, то наверняка попробовали экспортировать каталог типоразмеров из семейства. Именно данная процедура поможет вам безошибочно определить верный заголовок для столбца таблицы. Как говорится, лучше один раз увидеть, чем сто раз прочитать.
 
Revit создаем параметр
 
Создаём параметр типоразмера в семействе с интересующим нас типом данных и экспортируем каталог типоразмеров для этого семейства. Получаем текстовый файл с описанием параметров в семействе:
 
Revit каталог типоразмеров
 
Теперь мы точно знаем, как необходимо описать заголовок для хранения типа данных «Площадь» в квадратных метрах:
 
имя_параметра##AREA##SQUARE_METERS.
 
 
 

2 способа настройки единиц измерения

К чему все эти разговоры про единицы измерения и типы данных? Давайте вернёмся к нашему семейству: Переходник ПП Valtec 705. В прошлой статье я записал в таблицу данные о массе муфты переходной из каталога производителя:
 
 
Я специально привёл описание заголовка именно в таком формате mass##OTHER## и обещал вернуться к этому вопросу. В каталоге производителя масса изделия приведена в граммах, у нас же в таблице значения описаны как численные данные, без привязки к конкретным единицам:
 
 
Для приведения единиц в соответствие имеются 2 варианта. Но для этого необходимо сначала создать параметр нашего семейства с единицами измерения – «Килограммы».
Тип данных «Масса» можно найти в категории «Несущие конструкции» либо же «Трубопроводы». Я выбрал категорию «Несущие конструкции»:
 
Revit добавление параметра массы
 
В таком случае заголовок для столбца таблицы будет иметь вид:
mass##MASS##KILOGRAMS.
 
Итак, о возможных вариантах:
  1. Править саму таблицу, заголовок с описанием столбца и данные (переводить граммы в килограммы):

  1. Использовать приведение данных в самой формуле параметра без изменения таблицы, но с учётом единиц в ней (в таблице подстановки оставим mass##OTHER## и данные в граммах, а в формуле просто умножим на 1 кг и разделим на 1000):
 
Какой вариант использовать – выбирать вам. Но в любом случае необходимо соблюдать размерность и выбранные единицы измерений для ваших данных.
Таким образом, мы рассмотрели работу с единицами измерения и возможностями приведения данных в формулах.
 
 
 

Извлечение текста из таблиц lookup tables

Ну и пожалуй самое интересное - работа с текстовыми значениями из таблиц поиска.
Хоть справка по использованию size_lookup и говорит нам о том, что мы можем искать только числовые значения, существует возможность получать и текстовые значения. Но при этом действует одно ограничение – из одной таблицы поиска можно извлекать только один текстовый параметр.
Почему только один? Потому что это текстовое значение извлекается только из первого столбца. Тот самый первый столбец нашей таблицы, который используется для аннотации строки данных в ней:
 
 
Еще в прошлой статье я привёл этот столбец в нужный формат – формат каталожной позиции для спецификации. Вместе с тем как я перевернул наши данные для диаметров перехода, я оставил правильное именование первого столбца:
 
 
Теперь нам необходимо создать текстовый параметр (по сути это уже может быть общий параметр, который в последующем попадает в спецификацию), не забываем про экземпляр:
 
 
Ну, и конечно же, прописываем формулу для параметра:
 
 
То есть, для того что бы получить содержимое первого столбца таблицы поиска необходимо указать “” в качестве столбца поиска параметра.
 
Таким вот нехитрым способом мы можем получать и текстовые значения из таблиц поиска. Если у вас возник вопрос по поводу двух и более текстовых параметров в таблицах поиска, то милости прошу в мой блог, там достаточно подробно описан способ (непростой, но рабочий).
 
 
 

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

Рассмотрение таблиц поиска (lookup tables), основы их использования и способы применения хотел бы завершить итогами 3 части статьи:
  • Таблицы поиска и каталог типоразмеров имеют одинаковый формат описания столбцов данных;
  • В таблицах поиска можно использовать типы данных и единицы Revit;
  • В формуле параметра типоразмера можно приводить единицы измерения;
  • Из таблиц поиска можно получать текстовые значения, но только один параметр в одной таблице поиска;
  • В типоразмере семейства так же можно использовать общие параметры, которые можно включать в спецификацию проекта. Эти параметры так же могут принимать значения функции size_lookup.
 
Материал, изложенный в трех статьях по таблицам поиска, должен помочь в освоении заложенных в Revit способов автоматизации процесса информационного моделирования. Область применения данной функции (size_lookup) можно найти не только в инженерных семействах, но это уже совсем другая история….
 
До новых встреч, следите за обновлениями на сайте BIM2B.
 
Дмитрий Талалаев, эксперт BIM2B.

Сделано в Promodex