1

我只是想找到一种方法来访问 Revit Python Shell 中 Area 元素的 name 属性,尝试查看 Jeremy Tammik 的信息量惊人的博客,尝试 AUGI、Revit API 文档,现在已经找了 2 天...

尝试通过多种方式访问​​,FilteredElementsCollector(doc).OfCategory(BuiltInCategory.OST_Areas),通过 Area 类尝试,通过 AreaTag 尝试,每次我在每种情况下都遇到错误,它让我发疯,看起来像这样我似乎无法掌握的简单问题!

编辑:也通过元素 id、标签、区域方案、nada、不行...

谁能告诉我如何通过 RPS 访问此属性?

4

3 回答 3

1

为了回答我自己的问题,我实际上从未想过查看其他 Revit Python 脚本的代码......在 PyRevit 的这个例子中,在我看来,它比 RPS 写得更有说服力,非常期待他们的控制台工作成为完毕!

基本上,我错误地使用了 GetParameter('parameter') 而不是 LookupParameter('parameter')。

正如我所说,这是我不明白的愚蠢简单的事情。

如果有人有足够的知识来连贯地澄清这一点,请回答!

非常感谢!

于 2017-05-30T11:47:18.060 回答
1

也许你的问题和这个一样?:

https://groups.google.com/forum/#!searchin/RevitPythonShell/name|sort:relevance/revitpythonshell/uaxB1FLXG80/sdJNrTfoPuUJ

Your_Area.Name # throws error

Element.Name.GetValue(Your_Area) # works great
于 2017-05-31T11:07:15.083 回答
1

我想说两件事:

areaObject.LookupParameter("Name")
areaObject.GetParameters("Name")

...是有效的方法。请注意我是如何使用GetParameters()NOTGetParameter()的。使用两者中的任何一个都有一些缺点。查找方法将返回与名称匹配的 FIRST 参数,在许多情况下,该名称可能是不同元素的不同参数。这不是很可靠。

GetParameters()如果有多个,则方法将全部返回它们,因此您必须处理一个List<Parameter>而不是一个可以从中提取值的对象。

我个人建议使用areaObject.get_Parameter(BuiltInParameter.ROOM_NAME)方法从 Area 对象中提取 Name 值。BuiltInParameter 总是指向同一个参数,并且会可靠地只返回那个参数。以下是有关这些方法的更多详细信息: http ://www.revitapidocs.com/2018/4400b9f8-3787-0947-5113-2522ff5e5de2.htm

于 2017-07-01T01:53:37.253 回答