Флаги пользовательских свойств подшивок

Автор Тема: Флаги пользовательских свойств подшивок  (Прочитано 9487 раз)

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

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Доброго времени суток.

API подшивок позволяет создавать пользовательские свойства элементам подшивки, присваивая им определённые флаги (PropertyFlags). Эти флаги регламентируют, к чему относятся свойства: к подшивке в целом или же к её листу (sheet). Однако имеются и два дополнительных варианта этого флага: PropertyFlags.EMPTY и PropertyFlags.IS_CHILD. Документация по обозначенному флагу отсутствует (смотрел файл acad_sso.chm).

Подскажите, для каких целей существуют флаги PropertyFlags.EMPTY и PropertyFlags.IS_CHILD? В каких случаях используются эти флаги и вообще, какие комбинации флага PropertyFlags допускаются (помимо одиночного значения)?

Для наглядности показываю маленький набросок кода, в котором я создаю пользовательские свойства всех четырёх типов и добавляю их подшивке. Код работает без ошибок, значит имеется возможность создавать свойства всех четырёх вариантов.
Код - C# [Выбрать]
  1. using Ss = ACSMCOMPONENTS17Lib; // Sheet Set
  2. ...
  3. // Create the custom properties for the sheet set:
  4. Ss.AcSmCustomPropertyBag bag = sheet_set.GetCustomPropertyBag();
  5. // The custom property of the sheet set's level
  6. Ss.AcSmCustomPropertyValue sheetset_prop = new Ss.AcSmCustomPropertyValue();
  7. sheetset_prop.InitNew(bag);
  8. sheetset_prop.SetValue("Ivan");
  9. sheetset_prop.SetFlags(Ss.PropertyFlags.CUSTOM_SHEETSET_PROP);
  10. bag.SetProperty("Boss", sheetset_prop);
  11. // The custom property of the sheet's level
  12. Ss.AcSmCustomPropertyValue sheet_prop = new Ss.AcSmCustomPropertyValue();
  13. sheet_prop.InitNew(bag);
  14. sheet_prop.SetValue("Peter");
  15. sheet_prop.SetFlags(Ss.PropertyFlags.CUSTOM_SHEET_PROP);
  16. bag.SetProperty("Supervisor", sheet_prop);
  17. // The empty custom property (unknown level)
  18. Ss.AcSmCustomPropertyValue empty_prop = new Ss.AcSmCustomPropertyValue();
  19. empty_prop.InitNew(bag);
  20. empty_prop.SetValue("This is the empty property's value...");
  21. empty_prop.SetFlags(Ss.PropertyFlags.EMPTY); // What the PropertyFlags.EMPTY means?
  22. bag.SetProperty("empty_property", empty_prop);
  23. // The "is child" custom property (unknown level)
  24. Ss.AcSmCustomPropertyValue child_prop = new Ss.AcSmCustomPropertyValue();
  25. child_prop.InitNew(bag);
  26. child_prop.SetFlags(Ss.PropertyFlags.IS_CHILD); // // What the PropertyFlags.IS_CHILD means?
  27. child_prop.SetValue(true); // I think it is the Boolean value, or the Int32 [1|0] value.
  28. bag.SetProperty("is_child_property", child_prop);
  29. ...

Спасибо.
« Последнее редактирование: 26-11-2013, 11:05:08 от Андрей Бушман »

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
У меня есть предположения для чего эти флаги, но так как нет уверенности в правильности предположений решил отправить этот вопрос в ADN DevHelp.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
решил отправить этот вопрос в ADN DevHelp.
Спасибо, жду результат. :)

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Получил частичный ответ:
Цитировать
...Документация SheetSet API весьма ограничена...
Из того, что мне известно, PropertyFlags.Empty может быть использован для создания пользовательского свойства, которое не будут отображаться в AutoCAD UI в разделе пользовательских свойств.
Что касается PropertyFlags.IS_CHILD, то я не нашел ни одного примера его использования.
Я свяжусь с нашей командой инженеров по поводу обоих этих флагов и когда от них будет информация сообщу.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Спасибо.
Я свяжусь с нашей командой инженеров по поводу обоих этих флагов и когда от них будет информация сообщу.
С интересом жду ответа.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Пришел ответ от команды инженеров:
Цитировать
PropertyFlags.Empty используется для инициализации переменной перед получением пользовательского свойства.
PropertyFlags.IS_CHILD в данный момент не используется и предназначен для будущих расширений.

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

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Пришел ответ от команды инженеров:
Цитировать
PropertyFlags.Empty используется для инициализации переменной перед получением пользовательского свойства.
PropertyFlags.IS_CHILD в данный момент не используется и предназначен для будущих расширений.
Спасибо.