Но почему так ума не приложу
1. Попробуй добавить блокировку документа. Она нужна, если редактируешь Database.
2. ResultBuffer rb = new ResultBuffer(typedValues.ToArray()); возможно переполнение для Xrecord, ограничение вроде есть, поищи темы на форуме.
3. Если первые 2 пункта не помогли, можно попробовать следующее. Иногда бывает так, что если объект создан в транзакции, и транзакция не закрыта, то что-то не срабатывает при его модификации. Как правило это для множественного действия, когда в одной транзакции создал стиль таблицы, создал таблицу и пытаешься назначить ей новый стиль.
И если в какой-то версии автокада ошибка, можно попробовать разделить транзакции, в первой транзикции создать стиль, во второй таблицу и назначить стиль.
так ты добавляешь Xrecord, если его нет. tr.AddNewlyCreatedDBObject(xrec, true); а потом его открываешь в этой-же транзакции Xrecord xrec1 = (Xrecord) tr.GetObject(xrecId, OpenMode.ForWrite); можно попробовать после добавления tr.AddNewlyCreatedDBObject(xrec, true) закрыть транзацию tr.Commit(); сохранить ObjectId xrecId и затем открыть новую транзакцию на модификацию. Маловероятно, но если другое не помогло, можно попробовать.