Всем привет. Столкнулся с проблемой..
Вставка блоков в чертеж осуществляется при помощи DrawJig(c#), но блоки вставляются без атрибутов (то есть они не отображаются), их нужно потом обновлять при помощи диспетчера атрибутов блоков.
В первую очередь наткнулся на тему:
http://adn-cis.org/forum/index.php?topic=1105.0, а именно на ответ #4 от
Александра Ривилиса. Попытался выполнить обновление атрибутов там же, где и изменяю свойства блока, то есть в WorldDraw, но ничего не вышло. Далее перенес обновление в основной класс (пробовал в отдельную транзакцию), но результат тот же.. Блок, все равно, вставляется в чертеж, словно он без атрибутов.
Вот фрагмент кода-попытки обновления:
var blockRef = blockRecId.GetObject(OpenMode.ForRead) as BlockReference;
foreach (ObjectId idAtt in blockRef.AttributeCollection)
{
var attr = (AttributeReference)tr2.GetObject(idAtt, OpenMode.ForRead);
switch (attr.Tag.ToUpper())
{
case "ДИАМЕТР":
attr.UpgradeOpen();
attr.Height = 2.5;
attr.TextString = "10";
break;
case "ШАГ":
attr.UpgradeOpen();
attr.Height = 2.5;
attr.TextString = "200";
break;
}
}
Так вот, думаю о том, чтобы сделать программно то, что делается в диспетчере атрибутов (в идеале, было бы это сделать прямо в WorldDraw, но что-то я уже сомневаюсь, что такое возможно):
В общем, совсем завис я с этим вопросом. Возможно, кто-то сталкивался и поможет? Заранее, спасибо.