Разберем ситуацию, при которой не удаётся найти элемент модели в спецификации. Элемент точно есть в модели, его видно в 3Д и на планах, но в спецификации он не отображается. Посмотрим на причины и методы решения этой проблемы.

Преамбула

Для начала коротко о том, что такое спецификация. Спецификация — это такое же представление модели, как и любой 3Д-вид или план этажа, но в табличной форме. Если представить информационную модель в виде школьников, то 3Д-вид модели — это взгляд на класс через камеру наблюдения в углу кабинета, а спецификация — журнал со списком учеников и их параметрами. Есть параметр «Русский язык и литература» и значение — оценка. Есть параметр «Математика» и значение — оценка.

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

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

1. Несоответствие категорий

Начнём с самого момента созданий спецификаций. В начале выбираем категорию элементов, которые попадают в спецификацию. Тут всего два варианта: либо несколько категории из проекта, либо какая-то одна конкретная. Если выбираем конкретную, то в спецификацию попадают только элементы указанной категории.

Соответственно, нужно проверить, на какую категорию у вас спецификация и какая категория у элемента, который потеряли. Если они не совпадают, то вот и ответ. Если совпадают, то будем копать дальше. Чтобы проверить, какие категории обрабатывает спецификация, нужно зайти в свойствах в «Поля» и посмотреть на выпадающий список в левом верхнем углу.

Как посмотреть категорию, с которой работает спецификация

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

Есть вопросики к разрабам, на кой чёрт вы мне стены и перекрытия не показываете, а трубопроводные и вентиляционные системы показываете в Ревитах 2021+, хотя толку от них в сводной спецификации ровно ноль. Их приходится отфильтровывать, благо что в шаблонах АДСК сделать это несложно.

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

Слева внизу — спецификация на категорию «Стены», а справа — сводная на проект. Как видите, тут только инженерка и загружаемые семейства

Подытожим: если категория элемента не совпадает с категорией спецификации, то элементы в ней отображаться не будут.

2. Несовпадение стадий

Ещё один момент при создании спецификации — это выбор её стадии. Она задаётся там же, где выбираем категории спецификации.

Подробнее про стадии можете почитать в статье Маши Кузнецовой для моего блога, если кратко, то это распределение элементов во времени. В модели могут быть элементы, которые будут демонтировать и которые будут создаваться с нуля. Логика программы подразумевает использование для этого разных стадий, то есть разведение элементов по времени работ с ними на стройке. И в спецификацию попадают всегда элементы только с одной указанной стадии.

В инженерке работать со стадиями не очень комфортно, тем не менее такой вариант тоже может быть. Если элемент не видно в спецификации, то можете попереключать фильтры стадий в свойствах спецификации. Если поможет — дело в стадиях, если нет, то копаем дальше.

Подытожим: если стадия у элемент попадала под действие фильтра по стадиям в спецификации, то он может пропадать. Поиграйтесь фильтрами, чтобы элемент появился.

3. Фильтры в спецификациях

Это первое, что вообще нужно проверять. В спецификациях есть фильтры, они могут скрывать элементы, которые не нужно отображать. Логика такая, что если параметры элемента удовлетворяют критериям фильтра, то они отображаются. Все остальные — скрываются. Значит, нужно проверить, есть ли фильтры и удовлетворяют ли параметры искомого элемента этим критериям.

Пример фильтров из шаблонов АДСК

В шаблонах АДСК спецификация строится на основе общих параметров АДСК. Соответственно, на этих же параметрах основаны фильтры в спецификациях.

Фильтр «ADSK_Наименование не равно "!Не учитывать"» означает, что все элементы, у которых в параметре «ADSK_Наименование» есть текст «!Не учитывать», будут скрываться из спецификации. Это нужно для семейств, которые не учитываем, например гибкая труба от сифонов. Мы не моделируем её внутри семейства, но для подключения рисуем гибкой трубой, и вот её учитывать не нужно.

Также есть параметр «ADSK_Количество» — универсальный счётчик количество для спецификаций. Если у какого-то элемента там нет значения, то это либо сигнал, что семейство учитывать не нужно, либо это семейство, которое не настроили для работы с шаблонами АДСК. Обычно у штучных элементов там всегда 1, а у остальных рассчитывается количество в нужных единицах: метры для труб и воздуховодов, площадь и объём для изоляции.

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

Помните, что фильтры работают по логическому умножению. Если у вас несколько фильтров в спецификации, то элементы должны удовлетворять всем критериям одновременно. Из картинки выше видно, что отображаться будут только те элементы, у которых одновременно наименование не равно «!Не учитывать» и количество не равно нулю.

Подытожим: если не можете найти элемент в спецификации, первым делом проверяйте фильтры в спецификации, удовлетворяет ли элемент их критериям.

4. Сортировка элементов

Следующая настройка спецификации, которая можете влиять на отображение элементов. Это особенно актуально для Ревитов до 2022 версии, где не выводился текст <варианты>.

Сортировка в спецификации

Здесь логика такая: если в спецификации не настроили сортировку правильно, то некоторые элементы, даже разные, могут как бы схлопываться в одну строку. То есть элемент как бы есть, но его не видно отдельной позицией. В Ревитах 2022+ в таких ячейках будет надпись <варианты>, а до это версии будет просто пустая ячейка, как на картинке ниже.

Выше и ниже вентилятора пустые строки — это схлопнувшиеся позиции

Чтобы увидеть все элементы, нужно настроить сортировку. Обычно для этого нужно выбрать тот параметр, который пустой ячейкой или ячейкой с <варианты>. Например, в случае спецификации с картинки, нужно было добавить сортировку по ADSK_Наименование.

После настройки сортировки все элементы отображаются корректно

5. Скрытые столбцы

Есть небольшая вероятность, что вы не видите элемент, потому что ищите его по значению, которое скрыто в спецификации. Например, пробегаетесь глазами по столбцу и ищите марку элемента, а её нет, потому что по ошибке в семействе марка записана в другой параметр, столбец с которым скрыт в спецификации.

Можете проверить видимость в меню «Форматирование» или просто включить отображение всех столбцов. Второй вариант быстрый, но неаккуратный, так как в этом случае может поломаться оформлением шапки спецификации. Но если включить, посмотреть, а потом нажать Ctrl+Z, то не страшно.

Управление видимостью столбцов в спецификации

Ну и из той же оперы: может, вы просто не добавили в спецификацию параметр, по которому визуально ищите элемент.

Подытожим: если не можете найти элемент, то возможно ищите глазами текст, который находится в скрытом или недобавленном столбце.

6. Варианты конструкций

В русской локализации Ревита так называется инструмент для моделирования разных вариантов. Слово «конструкции» тут — странная ошибка перевода для термина «design options». Design переводится как проектирование, а не нафигачить в 3ДС Максе ниши с подсветкой и цветочками в несущих колоннах. Причём тут конструкции, мы никогда не узнаем.

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

Переключать варианты мы можем в переопределении видимости/графики у спецификации. Это отдельный параметр в свойствах с кнопкой «Изменить», как и у остальных видов в Ревите. Нажимаем, выбираем вместо <Авто> конкретный вариант и смотрим, появится ли нужный элемент.

С вариантами конструкций надо работать аккуратно, так как они работают по принципу слоёв в Автокаде: замоделили элемент, и он сразу присваивается активному варианту, как линия слою в Автокаде. Очень часто пользователи забывают переключать варианты, как и слои в Автокаде. Только если в Автокаде слой можно довольно легко переназначить, то в Ревите придётся выбирать элементы, вырезать их в буфер Ctrl + X, переключать вариант, а потом вставлять по тому же месту. Вот тогда вариант поменяется.

Подытожим: если в проекте есть варианты конструкции, то элемент может не отображаться в спецификации из-за того, что спецификация выводит элементы из другого варианта. Проверьте варианты у элемента и в видимости/графике спецификации.

7. Общие вложенные семейства

Подписчики предложили ещё такой вариант: у вложенного семейства, которое должно считаться отдельной позицией, в редакторе семейства не включили галочку «Общий». В результате геометрия семейства есть, а в спецификации его нет.

Это решается довольно просто: нужно зайти в редактор семейства → в диспетчере найти вложенное → нажать по названию вложенного семейства правой кнопкой мыши → «Правка» → и уже в редакторе вложенного поставить галочку «Общий» → загрузить в родительское.

С этой галочкой семейство будет учитываться отдельной позицией

Куда сложнее будет обратная ситуация: когда какое-то вложенное является общим и учитывается в спецификации, хотя и не должно. В этом случае просто отжать галочку «Общий» будет недостаточно, потому что Ревит не разрешает заменять такие семейства в проекте, так как это потенциально может затронуть многие семейства и элементы модели.

Поэтому вам придётся опять же зайти в редакторе семейства, открыть вложенное, снять галочку «Общий», но не загружать семейство обратно сразу же. Вернитесь в родительское семейство и переименуйте через диспетчер проекта вложенное. Далее уже загрузите измененное вложенное. Оно будет как новое семейство. Выделяйте старое вложенное и через селектор в свойствах замените одно на другое. Если связи параметров не сохранились, свяжите их заново.

Подробнее про общие вложенные читайте в отдельной статье блога:

В целом, эту ошибку должны устранять разработчики ещё на этапе тестирования семейства. Но бывает так, что её не замечают, у меня тоже такое было в семействах фланцев. Когда вложенное одно, то заметить легко, а когда их много, то можно и пропустить ненароком.

8. Элемент в связанном файле

Предложили подписчики и такой вариант: элемент находится в связанном файле, поэтому не отображается в спецификации. Решается вопрос относительно несложно: в полях спецификации надо включить галочку «Включить элементы из связей».

После включения галочки в спецификацию попадут элементы и из связи

Этот вариант изначально не рассматривал, потому что речь была про элементы в текущем проекте, а не в связанном. Ну пусть тоже будет.

Итоги

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

  1. Фильтры в спецификации — проверьте, что значения параметров у элемента удовлетворяют критериям фильтров в спецификации.
  2. Сортировка в спецификации — проверьте, чтобы сортировка выводит все строки и ваш элемент не затерялся в «схлопнувшихся» строках.
  3. Категория элемента должна совпадать с категорией для спецификации. В случае спецификации по нескольким категориям в неё не попадут системные строительные категории.
  4. Общие вложенные — проверьте, что галочка «Общий» стоит у вложенного семейства.
  5. Стадии и варианты конструкций — проверьте, что элемент находится в подходящей стадии и/или варианте конструкций.
  6. Элемент в связи — а зачем вы его считаете? А если считаете, то почему он в связи, а не в вашем проекте?
  7. Включите отображение всех столбцов, чтобы видеть все параметры, и убедитесь, что добавили в спецификацию нужные параметры, по которым ищите элементы.