如何通过 revit API 访问所有族类型?
How to access all the family types through revit API?
是否可以使用 Revit API 访问特定类别的所有族类型(例如 Windows、门等)?与实例相反。据我所知,使用 FilteredElementCollector(doc).OfCategory(...).ToElements() 或 FilteredElementCollector(doc).OfClass(...).ToElements() 指向 class/type 的实例,但是我想检查特定类型是否已加载到 Revit 中,即使它尚未实例化。
(我使用的是 pyRevit、Revit 2017)
非常感谢!
好的,对不起。显然我错了,它确实指向了所有的Element,包括那些没有被实例化的。
在您的 filteredElementCollector 中,在执行 ToElements() 之前,您应该添加 WhereElementIsElementType(),然后是 ToElements()。
对于门等基于系列的元素,您将返回 FamilySymbol 元素 - 从那里您可以检查它们是否处于活动状态。
我认为确定所有已实例化系列的最简单方法是检索所有系列实例。
从实例中,您可以确定家族符号和家族本身,并确定它已被实例化。
如果没有实例,您将不会获得家族或家族符号条目。
哦,在重新阅读时,我发现你想要相反的东西,一个所有族的列表,不管它们是否已经被实例化。哦不,一个特定类别的所有家族符号的列表,无论它们是否已被实例化。
事实上,The Building Coder 示例 CmdCollectorPerformance
模块中的众多过滤元素收集器片段之一已经证明了这一点:
准确地说,那里实施的方法 GetFamiliesOfCategory
检索给定类别的所有系列。您可以轻松地修改它来检索系列符号。
是否可以使用 Revit API 访问特定类别的所有族类型(例如 Windows、门等)?与实例相反。据我所知,使用 FilteredElementCollector(doc).OfCategory(...).ToElements() 或 FilteredElementCollector(doc).OfClass(...).ToElements() 指向 class/type 的实例,但是我想检查特定类型是否已加载到 Revit 中,即使它尚未实例化。
(我使用的是 pyRevit、Revit 2017)
非常感谢!
好的,对不起。显然我错了,它确实指向了所有的Element,包括那些没有被实例化的。
在您的 filteredElementCollector 中,在执行 ToElements() 之前,您应该添加 WhereElementIsElementType(),然后是 ToElements()。
对于门等基于系列的元素,您将返回 FamilySymbol 元素 - 从那里您可以检查它们是否处于活动状态。
我认为确定所有已实例化系列的最简单方法是检索所有系列实例。
从实例中,您可以确定家族符号和家族本身,并确定它已被实例化。
如果没有实例,您将不会获得家族或家族符号条目。
哦,在重新阅读时,我发现你想要相反的东西,一个所有族的列表,不管它们是否已经被实例化。哦不,一个特定类别的所有家族符号的列表,无论它们是否已被实例化。
事实上,The Building Coder 示例 CmdCollectorPerformance
模块中的众多过滤元素收集器片段之一已经证明了这一点:
准确地说,那里实施的方法 GetFamiliesOfCategory
检索给定类别的所有系列。您可以轻松地修改它来检索系列符号。