Доброго времени суток.
API подшивок позволяет создавать пользовательские свойства элементам подшивки, присваивая им определённые флаги (PropertyFlags). Эти флаги регламентируют, к чему относятся свойства: к подшивке в целом или же к её листу (sheet). Однако имеются и два дополнительных варианта этого флага:
PropertyFlags.EMPTY и
PropertyFlags.IS_CHILD. Документация по обозначенному флагу отсутствует (смотрел файл
acad_sso.chm).
Подскажите, для каких целей существуют флаги
PropertyFlags.EMPTY и
PropertyFlags.IS_CHILD? В каких случаях используются эти флаги и вообще, какие комбинации флага
PropertyFlags допускаются (помимо одиночного значения)?
Для наглядности показываю маленький набросок кода, в котором я создаю пользовательские свойства всех четырёх типов и добавляю их подшивке. Код работает без ошибок, значит имеется возможность создавать свойства всех четырёх вариантов.
using Ss = ACSMCOMPONENTS17Lib; // Sheet Set
...
// Create the custom properties for the sheet set:
Ss.AcSmCustomPropertyBag bag = sheet_set.GetCustomPropertyBag();
// The custom property of the sheet set's level
Ss.AcSmCustomPropertyValue sheetset_prop = new Ss.AcSmCustomPropertyValue();
sheetset_prop.InitNew(bag);
sheetset_prop.SetValue("Ivan");
sheetset_prop.SetFlags(Ss.PropertyFlags.CUSTOM_SHEETSET_PROP);
bag.SetProperty("Boss", sheetset_prop);
// The custom property of the sheet's level
Ss.AcSmCustomPropertyValue sheet_prop = new Ss.AcSmCustomPropertyValue();
sheet_prop.InitNew(bag);
sheet_prop.SetValue("Peter");
sheet_prop.SetFlags(Ss.PropertyFlags.CUSTOM_SHEET_PROP);
bag.SetProperty("Supervisor", sheet_prop);
// The empty custom property (unknown level)
Ss.AcSmCustomPropertyValue empty_prop = new Ss.AcSmCustomPropertyValue();
empty_prop.InitNew(bag);
empty_prop.SetValue("This is the empty property's value...");
empty_prop.SetFlags(Ss.PropertyFlags.EMPTY); // What the PropertyFlags.EMPTY means?
bag.SetProperty("empty_property", empty_prop);
// The "is child" custom property (unknown level)
Ss.AcSmCustomPropertyValue child_prop = new Ss.AcSmCustomPropertyValue();
child_prop.InitNew(bag);
child_prop.SetFlags(Ss.PropertyFlags.IS_CHILD); // // What the PropertyFlags.IS_CHILD means?
child_prop.SetValue(true); // I think it is the Boolean value, or the Int32 [1|0] value.
bag.SetProperty("is_child_property", child_prop);
...
Спасибо.