Параметры типа для системных семейств
Вопрос: Надеюсь кто-нибудь сможет мне помочь как получить параметры типа для системных семейств. Я могу получить параметры экземпляра, такие как Площадь или объем, но не могу, например, Ключевую пометку.
С экземплярами семейств я использую, к примеру, Door.Symbol.get_Parameter(BuiltInParam.KEYNOTE_PARAM); Но как заставить это работать с системными семействами? Что я упустил?
- FilteredElementCollector FMFloorCollector = new FilteredElementCollector(OpenDoc);
- FMFloorCollector.OfClass(typeof(Floor));
- foreach (Floor FMFloor in FMFloorCollector)
- {
- Floor_Keynote = FMFloor.get_Parameter(BuiltInParameter.KEYNOTE_PARAM);
- Floor_Family = FMFloor.get_Parameter(BuiltInParameter.ALL_MODEL_FAMILY_NAME);
- Floor_Mark = FMFloor.get_Parameter(BuiltInParameter.ALL_MODEL_MARK);
- Floor_Type = FMFloor.get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_NAME);
- Floor_Description = FMFloor.get_Parameter(BuiltInParameter.ALL_MODEL_DESCRIPTION);
- Floor_Area = FMFloor.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED);
- Floor_Volume = FMFloor.get_Parameter(BuiltInParameter.HOST_VOLUME_COMPUTED);
- }
Ответ: Похоже вы пытаетесь получить информацию о перекрытии. Для параметров экземпляра это не сложно и вы с этим легко справляетесь, но с параметрами типа не получается. Я бы посоветовал сначала получить все необходимые параметра экземпляра, затем, найти тип этих экземпляров и уже для него получить параметры типа. Например, вот так:
- foreach (Floor FMFloor in FMFloorCollector)
- {
- //параметры экземпляра
- Parameter Floor_Family = FMFloor.get_Parameter(BuiltInParameter.ALL_MODEL_FAMILY_NAME);
- Parameter Floor_Mark = FMFloor.get_Parameter(BuiltInParameter.ALL_MODEL_MARK);
- Parameter Floor_Type = FMFloor.get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_NAME);
- Parameter Floor_Area = FMFloor.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED);
- Parameter Floor_Volume = FMFloor.get_Parameter(BuiltInParameter.HOST_VOLUME_COMPUTED);
- Element el = FMFloor as Element;
- ElementId typeid = el.GetTypeId();
- Element floortype = OpenDoc.GetElement(typeid);
- //параметры типа
- Parameter Floor_Keynote = floortype.get_Parameter(BuiltInParameter.KEYNOTE_PARAM);
- Parameter Floor_Description = floortype.get_Parameter(BuiltInParameter.ALL_MODEL_DESCRIPTION);
- }
Обсуждение: http://adn-cis.org/forum/index.php?topic=3154
Опубликовано 28.10.2015