29/08/2015
InvalidOperationException при использовании метода FamilyManager.Set
Вопрос: Не могли бы вы подтвердить, что действительно невозможно установить значение параметра семейства, если не задан активный типоразмер?
Ответ: В редакторе семейств при вызове метода FamillyManager.Set(FamilyParameter) возникает исключение InvalidOperationException: There is no current type (не задан активный типоразмер).
Пример кода:
Код - C#: [Выделить]
- var para = RevitDoc.FamilyManager.AddParameter("Length", BuiltInParameterGroup.INVALID, ParameterType.Length, false);
- RevitDoc.FamilyManager.Set(para, 123.1);
Разрешается создать новый параметр, когда типоразмеры в принципе отсутствуют, но не разрешается задавать значение параметра, так как значение параметра относится уже к конкретному типоразмеру.
Поэтому, нужно перед вызовом метода FamillyManager.Set делать дополнительную проверку на существование активного типоразмера:
Код - C#: [Выделить]
- if (familyMgr.CurrentType == null)
- familyMgr.NewType("A new type");
- var para = familyMgr.AddParameter("Length", BuiltInParameterGroup.INVALID, ParameterType.Length, false);
- RevitDoc.FamilyManager.Set(para, 123.1);
Автор перевода: Виктор Чекалин
Обсуждение: http://adn-cis.org/forum/index.php?topic=2960
Опубликовано 29.08.2015