ADN Club > Revit API

Имя параметра

(1/1)

shss:
Добрый день!
Столкнулся с такой проблемой:
Для изменения параметров объекта использую процедуру поиска параметра по имени:

--- Код: ---Parameter bc = pLst.First(p => p.Definition.Name == "Base Constraint");
--- Конец кода ---
Но у пользователей стоят разные языковые пакеты для Revit'a ( :o), соответственно данный код неприменим для другого языкового пакета, так как будет

--- Код: ---Parameter bc = pLst.First(p => p.Definition.Name == "Базовая зависимость");
--- Конец кода ---
Переписывать под каждый языковой пакет - плохая идея.
Есть ли у параметра какое-нибудь внутреннее имя, с помощью которого я мог бы обращаться к параметру независимо от языка?

Спасибо

Виктор Чекалин:
shss, конечно есть.
Для встроенных параметров есть свойство BuiltInParameter. Используйте его, чтобы искать параметр без привязки к языку. Для общих параметров, параметр можно искать по GUID параметра.
Для того, чтобы определить значение BuiltInParameter, можно воспользоваться утилитой RevitLookup.

Кстати, использовать LINQ для поиска параметра конечно можно, но не нужно. В Revit API для этого есть встроенные методы:

* Element.getParameter()
* Element.GetParameters(string name) (в Revit 2015)
Всегда имейте ввиду, что параметров с одинаковым именем у элемента может быть несколько. Поэтому поиск по BuiltInParameter более надежен.

shss:
Виктор Чекалин, спасибо за ответ!
Все исправил - работает, как часы!

Навигация

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

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