Реализовал следующим образом:
1. выбираю в чертеже все свои объекты
2. создаю все примитивы, которые вычерчиваются при DrawableOverrule
3. сохраняю id всех этих примитивов и копирую их с помощью функции Wblock(ObjectIdCollection outObjIds, Point3d basePoint)
4. сохраняю новую базу данных с помощью SaveAs(string fileName, DwgVersion version)
5. удаляю все созданные в п.2 примитивы
В результате у меня создается новый чертеж, который содержит только примитивы, относящиеся к объектам моего модуля. Все хорошо, но потом созданный новый чертеж не открывается в C3D2018 - появляется ошибка:
Этот же чертеж без проблем открывается в C3D2019. Если выполнить экспорт в C3D2019, то картина такая же - созданный файл в 2018 версии не открывается, а в 2019 версии открывается. Этой проблемы нет только если новый чертеж создается без примитивов, т.е. ObjectIdCollection, передаваемый в Wblock не содержит элементов.
Неужели тут может быть моя ошибка? Я передаю "чистые" примитивы - без словарей и XData, никакие Overrule тут уже не работают.