Доброго времени, дорогие друзья! Очередная статья-заметка, в которой я поделюсь с вами решением интересных вопросов связанных с Revit, очередная небольшая загадка, которых, кстати говоря, давно не было в нашей серии видео Загадки пользователей Revit.
Перейдем к теме статьи. Нужно предварительно отметить, что в Revit помимо значений параметров «да» или «нет» и «заполненного» или «пустого» есть еще значение типа «null» , что трактуется как «неинициализированное» значение параметра. В wikipidea можно чуть подробнее узнать об этом термине:
NULL в Системах управления базами данных (СУБД) — специальное значение (псевдозначение), которое может быть записано в поле таблицы базы данных (БД). NULL соответствует понятию «пустое поле», то есть «поле, не содержащее никакого значения». Введено для того, чтобы различать в полях БД пустые (визуально не отображаемые) значения (например, строку нулевой длины) и отсутствующие значения (когда в поле не записано вообще никакого значения, даже пустого).
NULL означает отсутствие, неизвестность информации. Значение NULL не является значением в полном смысле слова: по определению оно означает отсутствие значения и может иметь тип NULL или иметь любой другой тип (CREATE TABLE new_tab AS (SELECT NULL) - специальный тип null, CREATE TABLE new_table AS (SELECT 10+NULL) - тип integer). Поэтому NULL не равно ни логическому значению FALSE, ни пустой строке, ни нулю. При сравнении NULL с любым значением будет получен результат NULL, а не FALSE и не 0. Более того, NULL не равно NULL!
Проще говоря, если по какой то причине в семействе Revit некий параметр никогда не упоминался и не заполнялся он может иметь такое значение. Мы столкнулись с этим когда попытались добавить нужные для проекта параметры в каталог типоразмеров семейства, конкретно параметр «стоимость» арматуры (категория здесь не принципиальна).
Начнем с того, что создавать каталоги типоразмеров как и таблицы поиска желательно на основе одного полностью заполненного типоразмера с дальнейшей проработкой таблицы вариантов его исполнения. В нашем случае типоразмер не имеет данных в поле «стоимость» , поэтому параметр «стоимость» даже не экспортируется в каталог.
Может показаться, что особой разницы нет но если вы присвоите параметру числовое значение, то больше пустой ячейки вы не увидите. В крайнем случае 0. Смотрите следующую карусель.
Итак, если мы все же каким-то образом в ручную добавили в каталог типоразмеров столбец с нужным параметром и типом данных (в нашем случае Стоимость##CURRENCY##CURRENCY ) и заполнили все значения но в семействе параметр остался по прежнему NULL при загрузке нас может поприветствовать интересное уведомление от Revit.
Таким образом работая с параметрами в семействе необходимо учитывать этот факт. Применительно к созданию типоразмеров стоит придерживаться правила полного заполнения одного типоразмера с последующим экспортом и доработкой каталога/таблицы.
На этом все благодарю за уделенное внимание, надеюсь, что информация была интересной и полезной для вас.
Никита Иванов, инженер компании БилдСофт