Статьи > Опубликованные статьи
Добавление полей к атрибутам блока, вставленными в пространство модели
ADSK:
Добавление полей к атрибутам блока, вставленными в пространство модели
Alexandr1993:
Добрый день! Ознакомился со статьёй, разобрался, свою задачу по аналогии решил.
Но столкнулся с проблемой при создании поля со ссылкой на динамическое свойство. В этом случае строка с формулой имеет вид:
%<\AcObjProp Object(%<\_ObjId 1710562835008>%).Parameter(3).UserVariable \f "%lu2">%
Как оптимальнее/проще всего получить этот самый номер (как я понимаю номер динамического свойства в коллекции)? Если есть пример - то вообще отлично.
Alexandr1993:
ADSK, очень нужен Ваш профессиональный совет. Самому решить данную проблему не получается. Уже подумываю над отказом от UserVariable в пользу атрибутов.
Владимир Шу:
А почему Вы не хотите пойти по самому простому пути, просто распарсить строку?
Как то так:
--- Код - C# [Выбрать] --- string str = @"%<\AcObjProp Object(%<\_ObjId 1710562835008>%).Parameter(3).UserVariable \f ""%lu2"">%"; if (str.Contains("Parameter(")) { var t0 = str.Split("Parameter(".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Last(); t0 = t0.Split(')').First(); int n = int.Parse(t0); }
Alexandr1993:
Так я это строку должен создать и поместить в конструктор класса Field. И уже Field поместить в атрибут блока. И вот в примере (статья выше) - точно такое же выполняется для ссылки на атрибут блока. А мне нужно не на атрибут, а на UserVariable. И вопрос - как составить эту самую строку, а именно узнать номер Parameter. При этом я тут экспериментировал - это НЕ порядковый номер, потому что в блоках с 2-3 динамическими свойствами встречал Parameter(92), Parameter(103) и т.д.
Навигация
Перейти к полной версии