对于如何访问Revit的图元数据(例如图元的参数、位置、Id等),我有点困惑。。如果我有这个代码:
collector = FilteredElementCollector(doc)
collector.OfCategory(BuiltInCategory.OST_Walls)
walls = collector.OfClass(FamilySymbol)
return walls
它将打印:Autodesk.Revit.DB.FilteredElementCollector对象,位于0x0000000000000038[自动…]。从这里我要去哪里?例如,如何返回墙的位置?在
这里可能有很多,每个项目都有多个步骤。我主要是寻找获取和/或设置新元素数据的一般概念。在
有什么想法吗?在
我无法帮助您使用Python,但我对Revit的API+C非常熟悉。在
您正在使用收集器列出项目中的所有墙。您想要的(获取位置)是这些墙的FamilyInstance对象。在
在C中应该是这样的:
接下来,应循环结果以获取每个单独的图元并将其转换为墙:
^{pr2}$您需要的大部分信息都是关于这个FamilyInstance对象->;http://wikihelp.autodesk.com/Revit/enu/2014/Help/3665-Developers/0074-Revit_Ge74/0083-Family_I83/0086-FamilyIn86
Revit API文档指出
FilteredElementCollector
是IEnumerable<Element>
。所以你实际上有一个墙对象的列表。我喜欢将这些添加到python列表中,以便更轻松地使用它们:在幕后,
^{pr2}$list(collector)
将执行以下操作:(请注意,这并不是真正的工作原理,但在某种程度上解释了这一点)。在
您可以使用.NET内部工作来枚举
collector
中的墙,方法是:{{cds}如果你想在我的文档中找到一个空的{cds}行。。。在
接下来,要使用墙对象。那么,拿第一面墙来说:
然后处理参数。。。如果安装了Revit SDK,您将找到一个用于监视对象并查找其参数和值的工具。用这个!探索!玩得高兴!在
相关问题 更多 >
编程相关推荐