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

03/02/2014

Гиперссылки для атрибутов блоков

В настоящее время гиперссылка для вставки блока не отображается в атрибутах этой вставки блока. Единственный способ, чтобы у атрибутов отображалась гиперссылка – это установить эту гиперссылку для всех атрибутов этого блока, как показано в следующем коде.

Код - C#: [Выделить]
  1. [CommandMethod("SetHpLinkToAttRef")]
  2. static public void SetHpLinkToAttRef()
  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.  
  23.         if(blockRef.Hyperlinks.Count != 0)
  24.         {
  25.             AttributeCollection collection =
  26.                                        blockRef.AttributeCollection;
  27.  
  28.             foreach (ObjectId id in collection)
  29.             {
  30.                 AttributeReference attRef = tx.GetObject(id,
  31.                         OpenMode.ForWrite) as AttributeReference;         
  32.                 attRef.Hyperlinks.Add(blockRef.Hyperlinks[0]);
  33.              }
  34.         }
  35.         tx.Commit();
  36.     }
  37. }

Источник: http://adndevblog.typepad.com/autocad/2014/01/setting-hyperlinks-to-attribute-reference.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=503

Опубликовано 03.02.2014