Расскажу, что делать, если при открытии или подгрузки связи IFC в проекте Ревита не отображается геометрия целиком или частично.

Проблема!
Иногда бывает так, что берём IFC-файл и грузим его связью или открываем в Ревите. Модель грузится-грузится, а потом на виде ничего нет, кроме осей и уровней. Или что-то отображается, но не полностью. А времени на конвертацию могло уйти много, вот что самое обидное.


Что же делать?
Понимание
Я не какой-то супер эксперт по работе с IFC, но некоторый опыт имеется, им и поделюсь.
Во-первых, когда вы получаете файл IFC и хотите подгрузить его связью, то надо учитывать такой момент: в отличие от связей в родном формате RVT файлы IFC по сути сначала конвертируются в проект Ревита, а уже он подгружается в вашу модель.
Файлы в формате IFC — это текстовые данные, которые содержат описание того, как надо строить геометрию и какие параметры добавлять к ней. То есть самой геометрии как таковой в файле нет, это просто длинное описание, как геометрию строить. Поэтому что делает Ревит? Он эту геометрию отстраивает с нуля по описанию. Поэтому всё так долго.
Во-вторых, с учётом первого пункта вам всегда нужно решать: подгружать IFC напрямую или сначала создавать файл проекта на основе IFC, а уже потом обычный файл Ревита подгружать в свой проект.
В обоих случаях вы по сути будете отстраивать геометрию заново при каждом изменении файла. В первом варианте удобство в том, что это будет происходить автоматически. Если связь изменилась, то она будет обновляться, а вы — ждать. Во втором варианте нужно будет самим руками открыть файл IFC, сохранить его и передать в работу. По сути это будет просто новый файл для замены.





Выше картинки из строки состояния при подгрузке связи IFC. По ним понятно, что Ревит создаёт эти элементы. Более того, он буквально создаёт файл RVT в той же папке, где лежит IFC-файл. Если в дальнейшем будете подгружать куда-то связью IFC, то будет грузиться очень быстро, потому что по сути Ревит подгрузит не сам IFC, а созданный на его основе RVT-файл.
Там же в папочке создаётся файл лога в формате html, где указывается количество ошибок.

Принятие
Лично я сторонник второго метода. У меня был такой опыт: нам скидывали металлокаркас здания из Теклы в формате IFC. Мне нужно было подгрузить этот файл смежникам и выставить его по координатам. Сам файл IFC в эти самые координаты не вставал, он улетал куда-то не туда. А у меня там 4 или 5 человек, которым надо всё выставить.
Я не стал разбираться, тем более, что особой связи со спецом по Текле не было, и пошёл по простому для меня пути:
- Получаю IFC;
- Открываю его в Ревите;
- Сохраняю как файл Ревита;
- Подгружаю связью, выставляю в правильное положение;
- Передаю координаты;
- Сохраняю файл Ревита и передаю пользователям.
- Повторяю, когда IFC обновится.
Поскольку это несущая часть здания, то обновлялась она не очень часто и была готова одной из первых, чтобы остальные архитекторы и конструкторы могли работать. Поэтому мне было не накладно несколько раз её вот так открывать и сохранять.
Но вернёмся к нашей проблеме и её решению.
Решение
На то, как подгружается файл IFC в Ревит, влияет шаблон проекта. Вот у меня есть модель вентиляции в формате IFC. Я беру стандартные шаблоны из поставки Ревита и делаю разные проекты: на основе шаблона механического оборудования (то есть для вентиляции), на основе шаблона сантехники (для воды), на основе строительного шаблона и проект вообще без шаблона.
В итоге получаю разное отображение связи.
Шаблон строительства
Пусто — только оси и уровни, больше ничего в файле не отображается.


Шаблон сантехники
Геометрия отобразилась частично, как будто только оборудование. Воздуховодов и прочих элементов нет. Хотя это вроде бы очень родственная дисциплина. То же самое было в шаблоне электрики.


Шаблон механического оборудования
Вот тут всё отлично, все элементы отображаются. В «родном» для элементов шаблоне всё выглядит хорошо. Ещё есть «Шаблон систем», в нём тоже было хорошо.


Проект без шаблона, метрические единицы
Здесь тоже всё отлично отображается.


Теперь забавное. Очевидно, что геометрия в файле есть, её видно, пусть и не во всех шаблонах. Если я открою в Ревите файл, который сгенерировался из IFC и сохранился в формате RVT, то снова получу пустой файл с осями и уровнями. Включаю лампочку — ничего нет.

А вот в спецификации показывает, что какие-то элементы есть.

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

Первым в стандартной поставке Ревита идёт шаблон строительства. В нём как раз есть несколько стадий: Существующие, Снос, Стадия 1, Стадия 2, Стадия 3. При генерации геометрии Ревит засовывает всё в последнюю стадию.
Выяснил я это довольно просто: поменял шаблон, который идёт первым в списке шаблонов проекта, и открыл IFC-файл заново. После смены шаблона файл вновь долго грузился, а потом появился новый проект. Судя по видам в проекте, действительно, Ревит использовал тот шаблон, что шёл первым в списке.
Когда я подгружал связь в проекты на разных шаблонах, то на 3Д-видах, где хотел увидеть геометрию в зависимости от шаблона были разные стадии. Поэтому где-то было видно, а где-то — нет.
Например, при создании файл на основе шаблона строительства вся геометрия уходит в самую позднюю стадию — Стадия 3. А когда я создаю новый проект на этом шаблоне и гружу в него связь, то там по умолчанию отображается Стадия 1. В итоге я и не вижу элементы со стадии 3, с точки зрения Ревита эти элементы ещё не существуют.
Кардинальное решение
Мы можем задать шаблон проекта для открытия IFC, который будет использоваться Ревитом по умолчанию каждый раз. Для этого откройте любой проект, далее нажмите Файл → Открыть → Параметры IFC. Делать это нужно именно в открытом проекте, иначе кнопка будет неактивна.


Откроется окно для мэппинга категорий Ревита и классов IFC, а выше будет строка для файла шаблона для импорта IFC.
Я создам пустой файл без всякого шаблона, а потом сделаю в нём спецификацию с именем «Привет, ревитчики!». Это будет такой опознавательный знак. Сохраню шаблон, укажу путь в окошке параметров IFC.
Далее удалю все прежние файлы от загрузки IFC и сделаю две вещи: сделаю связь файла IFC напрямую в проект, а затем просто открою файл IFC в Ревите. В первом случае Ревит сам сгенерирует мне файл RVT, я его открою и посмотрю, есть ли там моя спецификация. Если да, то Ревит брал шаблон проекта, который указал в параметрах. Во втором — модель сразу откроется и будет видно, есть спецификация или нет.

В итоге теория оказалась верна — в обоих случаях Ревит брал не первый шаблон проекта из списка, а указанный в параметрах IFC шаблон, что вполне логично.
Так что лучшее решение, на мой взгляд, — сделать пустой файл, сохранить как шаблон в формате RTE и указать его в параметрах для импорта IFC. А если что-то и пропадёт, то проверяйте стадии.
Экспорт в IFC
Читайте прекрасную статью Маши Кузнецовой для моего блога о том, как экспортировать модель Ревита с параметрами в формат IFC для экспертизы:
Курсы по Ревиту тут, магазин тут, а ссылки на Телеграм-канал с новостями и Телеграм-группа для вопросов по Ревиту ниже на картинках — жмите, подписывайтесь.



