Разбираемся с IfcAnnotation
@IgorSherstennikovПодробнее изучить как устроены аннотации в схеме IFC нас побудил @rvrn500. В своем посте https://t.me/IFC_club/10/3722 он делится результатами своих исследований по выгрузки аннотаций из Autodesk Revit в IFC. Используя инструмент "Линия модели" он смог создать аналог выноски и экспортировать их.
Давайте разберемся, что записалось в IFC-файл при таком экзотическом способе.
Просмотрщик BIMvision открыл файл и успешно отобразил все элементы.

При этом стандартного класса IfcAnnotation, отвечающего за аннотации, в дереве элементов не оказалось.

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

Если более детально изучить одну из аннотаций в текстовом редакторе, найдя элемент по его Guid (2q4CoYpEL6PfqZR5DIC3jM), то вскрывается еще больше особенностей.
Первое что бросается в глаза - элементу присвоен класс IFCBUILDINGELEMENTPROXY, со всеми присущими ему атрибутами.

Но основные фокусы связаны с геометрией. Условно, она состоит из двух ''субэлементов'': выноски и текста.
Выноска построена из двух линий, описываемых точкой начала и конца.
Не идеальный вариант, но криминала мы не видим и при желании таким образом можно целиком перегнать линии из DWG-файла прямо в IFC (однако не стоит так делать).

С геометрией ''Текста'' куда веселее. Ожидалось найти в файле ''Выноска 3_ХY'' в виде значения атрибута элемента, которое и должно отображаться в выноске. Но фактически каждая буква или символ описывается замкнутым полигоном с учетом всех поворотов и изгибов. При этом сам полигон строится по точкам, которые также записаны в файле.


В итоге при таком способе:
- текста как такого в выноске нет, а есть лишь его "взорванное" векторное представление, поэтому использовать его для машинной обработки не получится;
- вместо 13 символов в слове ''Выноска 3_ХY'' мы имеем порядка 10 000, что кратно увеличивает размер файла.
Важно понимать, что это недокументированное использование классов. Так что не стоит жаловаться на потерю данных и увеличение размер файла.
Использовать такой метод следует только в крайнем случае - если ПО не позволяет, но очень нужно чтобы в IFC были хоть какие-то аннотационные пометки.
В противовес такому подходу посмотрим на файл IFC, который содержит стандартный класс IfcAnnotation.
BIMvision также справляется с чтением и отображением таких элементов.


Из минусов - в просмотрщике также не видно текста аннотации ни в атрибутах, ни в свойствах.

Однако, давайте также как и в предыдущем примере посмотрим что записано в файле через текстовый редактор.
Геометрия элемента задается атрибутом, в который записывается обычный ТЕКСТ.

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

Для желающих углубиться, прикладываем и сами файлы с комментариями внутри (строки с рассматриваемыми элементами для удобства перенесены в начало файла).
Мы видим большие перспективы за внедрением аннотаций в файл IFC, и вероятнее всего, именно они позволят отказаться от традиционных чертежей в PDF и избежать расхождения данных.