Локализованные имена свойств

Автор Тема: Локализованные имена свойств  (Прочитано 5373 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Для получения локализованных имен объектов можно использовать такой код (источник):
Код - C# [Выбрать]
  1. [CommandMethod("GetName")]
  2. public static void GetObjName()
  3. {
  4.   Document doc = Application.DocumentManager.MdiActiveDocument;
  5.   Editor ed = doc.Editor;
  6.   PromptEntityResult pres = ed.GetEntity("\nSelect Entity: ");
  7.   if (pres.Status == PromptStatus.OK)
  8.   {
  9.     ed.WriteMessage("\nName: {0}",
  10.       Autodesk.AutoCAD.Internal.PropertyInspector
  11.       .ObjectPropertyManagerProperties.GetDisplayName(pres.ObjectId));
  12.   }
  13. }
  14.  

А как можно получить локализованные имена свойств?

Отмечено как Решение Алексей Терно 22-11-2018, 16:45:50

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Локализованные имена свойств
« Ответ #1 : 18-11-2018, 20:10:23 »
А как можно получить локализованные имена свойств?

Код - 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. }







Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: Локализованные имена свойств
« Ответ #2 : 22-11-2018, 16:46:47 »
Александр, двойное Вам спасибо! ))
Прошу прощения, что сразу не ответил.