对于revit 2014的导出加载项,我需要在已打开的项目中获取所有构建元素。
要获取元素,我目前正在使用逻辑过滤器:
new LogicalOrFilter(new ElementIsElementTypeFilter(true),new ElementIsElementTypeFilter(false));
然后我使用类别ID上的一些过滤器解析它们,使用Element.Category.Id.IntegerValue将它与我的数组中的每个元素进行比较。
我可以获得所有元素,但缺少一些参数:
另外,当我获取元素时,某些元素确实没有名称,或者像#34; 300x75"这样的无名名称,而不是元素名称(例如Wood Door)。
答案 0 :(得分:0)
Supamiu, 其中一些取决于你真正想要做的事情。 您正在使用的LogicalOrFilter通常会引入每个元素 - 无论是" Type"元素或"实例"元素(以及其他非真实的元素,如家庭,材料等)。
要调查您拥有的门数,您需要计算特定类别的实例元素。根据我的经验,通常对于" family" -type元素,您可能无法获得有效的元素类别,并且您必须从FamilyInstance-> FamilySymbol-> Family导航,然后检查" FamilyCategory& #34;属性。此外,您可能会遇到过滤器中某些类别为NULL的元素(通常是奇怪的内部元素)。
单位类型存储在每个参数的定义中(即长度,区域,文本等),DisplayUnitType也是如此,这是一个具有所有可用显示选项的枚举。
我相信Element.GetMaterialIds()至少可以很好地反映INSTANCE元素中存在的所有材料。