Статьи > Опубликованные статьи

Добавление полей к атрибутам блока, вставленными в пространство модели

(1/2) > >>

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) и т.д.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии