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

22/11/2018

Как получить локализованные имена свойств примитива в Панели свойств?

Ниже приводится код, который выводит все свойства, которые видны в Панели свойств:

Код - C#: [Выделить]
  1. using System;
  2. using Autodesk.AutoCAD.Runtime;
  3. using Autodesk.AutoCAD.ApplicationServices;
  4. using Autodesk.AutoCAD.DatabaseServices;
  5. using Autodesk.AutoCAD.Geometry;
  6. using Autodesk.AutoCAD.EditorInput;
  7. using Autodesk.AutoCAD.Internal.PropertyInspector;
  8.  
  9. // This line is not mandatory, but improves loading performances
  10. [assembly: CommandClass(typeof(Rivilis.GetLocalizedProperties))]
  11.  
  12. namespace Rivilis
  13. {
  14.   public class GetLocalizedProperties
  15.   {
  16.     [CommandMethod("GetLocProperties")]
  17.     public static void GetLocProperties()
  18.     {
  19.       Document doc = Application.DocumentManager.MdiActiveDocument;
  20.       Editor ed = doc.Editor;
  21.       PromptEntityResult pres = ed.GetEntity("\nВыберите примитив: ");
  22.       if (pres.Status == PromptStatus.OK)
  23.       {
  24.         ed.WriteMessage("\nИмя: {0}",
  25.           ObjectPropertyManagerProperties.GetDisplayName(pres.ObjectId));
  26.         CollectionVector cats =
  27.           ObjectPropertyManagerProperties.GetProperties(pres.ObjectId, false, false);
  28.  
  29.         for (int i = 0; i < cats.Count(); i++)
  30.         {
  31.           using (CategoryCollectable cat = cats.Item(i) as CategoryCollectable)
  32.           {
  33.             ed.WriteMessage("\n\tИмя категории: {0}, \t\tОписание категории: {1}",
  34.               cat.Name, cat.Description);
  35.             CollectionVector props = cat.Properties;
  36.             for (int j = 0; j < props.Count(); j++)
  37.             {
  38.               using (PropertyCollectable prop = props.Item(j) as PropertyCollectable)
  39.               {
  40.                 ed.WriteMessage("\n\t\tИмя свойства: {0}\n\t\t\t Описание свойства: {1}, DISPID: {2}",
  41.                   prop.Name, prop.Description, prop.dispid);
  42.               }
  43.             }
  44.           }
  45.         }
  46.       }
  47.     }
  48.   }
  49. }

Результаты работы в AutoCAD 2019 Russian и English:

 

 

 

Автор: Александр Ривилис

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

Опубликовано 22.11.2018
Отредактировано 30.11.2018 в 20:56:08