【问题标题】:Accessing Area.Name Throws Error访问 Area.Name 引发错误
【发布时间】:2017-10-30 18:27:16
【问题描述】:

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

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

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

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

【问题讨论】:

  • 感谢您的赞赏! :-)

标签: revit-api revitpythonshell


【解决方案1】:

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

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

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

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

非常感谢!

【讨论】:

  • 感谢您的呼喊,太忙了,我忘了我什至发布了问题,我很抱歉!
【解决方案2】:

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

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

【讨论】:

【解决方案3】:

我想说两件事:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-20
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多