Категории для произвольной фигуры
Вопрос: Я хотел бы создать произвольные фигуры (DirectShape) для визуального отображения разлиных типов балок и поместить их в различные категории. Пока что я могу создать их только во встроенной категории, например, вот так:
- ElementId id = new ElementId(
- BuiltInCategory.OST_StructuralFraming );
- DirectShape ds = DirectShape.CreateElement(
- doc, id, "A", "B" );
А могу ли я создать свою категорию и использовать ее при создании фигуры? Что-то типа этого:
- Category cat = doc.Settings.Categories.get_Item(
- BuiltInCategory.OST_StructuralFraming );
- Category subCat = doc.Settings.Categories
- .NewSubcategory( cat, "Sparren" );
- ElementId elemIdSubCat = subCat.Id;
- DirectShape ds = DirectShape.CreateElement(
- doc, elemIdSubCat, "A", "B" );
При выполнении этого кода, на метода создания фигуры возникает исключение, в котором говорится, что под-категории не поддерживаются.
Ответ: Единственное что я могу сделать – это подтвердить ваши слова:
- Можно создавать под-категории. Нельзя создавать категории верхнего уровня.
- При создании произвольной фигуры, требуется указывать идентификатор категории верхнего уровня.
Я добавил вашу просьбу в список пожеланий CF-1748 [API wish: DirectShape subcategory support], где прошу добавить поддрежку создания фигуры в под-категории.
В качестве альтернативного метода, который уже можно реализовать, я рекомендую рассмотреть создание одного или нескльких общих параметров и использовать их в фильтрах и спецификациях для того, чтобы понять, что за фигура используется. Начиная с Revit 2015, общие параметры могут быть заданы ‘только для чтения’.
Обсуждение: http://adn-cis.org/forum/index.php?topic=1740
Опубликовано 25.12.2014