bloqueId
- это идентификатор объекта конкретной ссылки на блок, выбранной пользователем. SetBlockTableRecordId
нужен идентификатор определения блока в таблице блоков чертежа. Это совершенно разные типы (классы), так что это то, что означает сообщение об ошибке.
Класс Autodesk.AutoCAD.DatabaseServices.BlockReference
имеет свойство BlockTableRecord
, которое возвращает желаемый идентификатор объекта. Я бы рекомендовал переделать ваш код, чтобы везде использовать эти собственные классы C # вместо Autodesk.AutoCAD.Interop
(COM) классов, которые вы используете в настоящее время.
Если по какой-то причине вы не можете перейти на собственные классы, то лучшее, что я могу найти, это то, что используемый вами класс AcadBlockReference
предоставляет свойство Name
, которое является именем блока, и вы должны иметь возможность найдите идентификатор определения блока из таблицы блоков.