ADN Open CIS
Сообщество программистов Autodesk в СНГ

14/11/2013

Как сделать невидимую вставку атрибута видимой?

Если у определения блока для данной вставки блока есть невидимое определение атрибута, тогда и у вставки блока будет невидимый атрибут. Но вы можете сделать такие атрибуты видимыми при помощи кода, как показано ниже. Невидимые вставки атрибутов идентифицируются свойством “AttributeReference.Invisible” 

Код - C#: [Выделить]
  1. [CommandMethod("AttRefEdit")]
  2. static public void AttRefEdit()
  3. {
  4.     Document doc = Application.DocumentManager.MdiActiveDocument;
  5.     Database db = doc.Database;
  6.     Editor ed = doc.Editor;
  7.  
  8.     PromptEntityOptions options =
  9.               new PromptEntityOptions("\nВыберите вставку блока: ");
  10.     options.SetRejectMessage("\nЭто не вставка блока ");
  11.     options.AddAllowedClass(typeof(BlockReference), false);
  12.  
  13.     PromptEntityResult acSSPrompt = ed.GetEntity(options);
  14.  
  15.     if(acSSPrompt.Status != PromptStatus.OK)
  16.         return;
  17.  
  18.     using (Transaction tx = db.TransactionManager.StartTransaction())
  19.     {
  20.         BlockReference blockRef = tx.GetObject(acSSPrompt.ObjectId,
  21.                                OpenMode.ForRead) as BlockReference;
  22.         AttributeCollection collection =
  23.                                         blockRef.AttributeCollection;
  24.  
  25.         foreach (ObjectId id in collection)
  26.         {
  27.             AttributeReference attRef = tx.GetObject(id,
  28.                          OpenMode.ForRead) as AttributeReference;
  29.  
  30.             // невидимый?
  31.             if (attRef.Invisible)
  32.             {
  33.                 // да – сделаем его видимым
  34.                 attRef.UpgradeOpen();
  35.                 attRef.Invisible = false;
  36.             }
  37.         }
  38.  
  39.         tx.Commit();
  40.     }
  41. }

 

Источник: 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