14/11/2013
Как сделать невидимую вставку атрибута видимой?
Если у определения блока для данной вставки блока есть невидимое определение атрибута, тогда и у вставки блока будет невидимый атрибут. Но вы можете сделать такие атрибуты видимыми при помощи кода, как показано ниже. Невидимые вставки атрибутов идентифицируются свойством “AttributeReference.Invisible”
Код - C#: [Выделить]
- [CommandMethod("AttRefEdit")]
- static public void AttRefEdit()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- Database db = doc.Database;
- Editor ed = doc.Editor;
- PromptEntityOptions options =
- new PromptEntityOptions("\nВыберите вставку блока: ");
- options.SetRejectMessage("\nЭто не вставка блока ");
- options.AddAllowedClass(typeof(BlockReference), false);
- PromptEntityResult acSSPrompt = ed.GetEntity(options);
- if(acSSPrompt.Status != PromptStatus.OK)
- return;
- using (Transaction tx = db.TransactionManager.StartTransaction())
- {
- BlockReference blockRef = tx.GetObject(acSSPrompt.ObjectId,
- OpenMode.ForRead) as BlockReference;
- AttributeCollection collection =
- blockRef.AttributeCollection;
- foreach (ObjectId id in collection)
- {
- AttributeReference attRef = tx.GetObject(id,
- OpenMode.ForRead) as AttributeReference;
- // невидимый?
- if (attRef.Invisible)
- {
- // да – сделаем его видимым
- attRef.UpgradeOpen();
- attRef.Invisible = false;
- }
- }
- tx.Commit();
- }
- }
Источник: http://adndevblog.typepad.com/autocad/2012/07/making-invisible-attribute-references-visible.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=321
Опубликовано 14.11.2013Отредактировано 14.11.2013 в 03:26:06