问题标签 [pyrevit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6376 浏览

bounding-box - 如何使用 Revit API 从 Revit Element 获取边界框,然后调用该边界框的中心

我正在尝试围绕其中心点旋转 Revit 元素。为此,我需要选择一个 Revit 元素并找到它的中心点,然后使用该元素中心点的坐标创建一条线。

完成此操作的最佳方法是将 Revit 元素包装在边界框中,然后找到该框的中心。我的问题是我不确定如何做到这一点。

我正在使用 pyRevit (惊人的工具),我被困在如何使用边界框包装选定元素或检索其现有边界框。

任何帮助将不胜感激!我真的很想学习 Revit API 并了解一切是如何工作的。我正在取得进展,但还有很多事情要解开。

提前感谢您查看我到目前为止所拥有的内容。如果有任何需要进一步澄清的地方,请告诉我!

编辑:

@CyrilWaechter

我想你是对的。使用 LocationPoint 可能更有意义。我查看了您链接的脚本(谢谢顺便说一句!),我尝试在我的代码中实现这一部分。

我正在通过此语句传递 ElementId,但出现错误,“Wall”对象没有属性“GetTransform”。你能帮我理解这个吗?

编辑2:感谢@JeremyTammik 和@CyrilWaechter,您的见解帮助我了解了哪里出错了。虽然我仍然觉得 Revit API 中的某些属性不明确,但我能够让我的代码正确执行。我将在下面发布我能够工作的代码。

0 投票
0 回答
387 浏览

python - pyrevit 中的 FilteredElementCollector 出现意外错误

python、pyRevit 和 Revit API 的初学者,如果我的问题措辞不佳,我深表歉意。今天我用pyRevit开发了一个简单的按钮工具,然后几分钟后停止工作,没有任何改变(我知道)

我的工具将所有具有排除元素的组添加到选择中。它工作了一段时间,然后开始抛出这个错误,我无法做出正面或反面:

例外:函数 `anonymous-namespace'::FilteredElementCollector_constructor 或集合中的一项的输入参数“文档”在文件 d:\ship\2018_px64\source\revit\revitdbapi\APIFilteredElementCollectorProxy.cpp 的第 326 行为空。参数名称:文档

错误消息中的路径不是我在计算机上识别的路径。这是相关代码(回溯到第 24 行,即“groups = FilteredElementCollector...”:

非常感谢任何解决方案,甚至帮助破译错误消息。

0 投票
0 回答
809 浏览

ironpython - 从 python 脚本启动一个发电机图 (.dyn) 文件

是否可以通过 python 脚本(PyRevit 扩展)启动 revit dynamo .dyn 文件?

有人可以分享一个基本的例子。

我们在生产中测试了许多 dynamo 脚本,从 PyRevit 功能区上的按钮以及运行 python 脚本以执行更复杂任务的其他按钮启动它们会非常有帮助。

0 投票
1 回答
179 浏览

python - 使用python通过RPW访问元素的参数值

我不确定我做错了什么。我的代码是

我的错误信息是:

但是我知道这个参数是每个数据设备元素的一部分。

0 投票
1 回答
2165 浏览

revit-api - 通过 Selection.SetElementIds 将选择修改为第一个元素

我在编写让 med 选择我选择的第一个元素的脚本时遇到问题。这对我很有用,因为我从时间表中选择了正确的 Air Terminal(在那里我可以看到我想要使用的类似气流),并从选择中使用命令 Create Similar。The trouble is that this command does not work when multiple elements are selected. 因此,我想要列表中的第一个对象。这是我正在尝试的代码:

这将返回以下错误消息:

异常:Microsoft.Scripting.ArgumentTypeException:预期的 int,得到 ElementId 好的,然后我会尝试替换

这似乎有效,但未修改选择

我刚刚开始编写 RPS 脚本,但我希望有人能告诉我我在这里做错了什么,即使它很明显。

谢谢你。凯尔

编辑:谢谢杰里米,为我解决了这个问题!诀窍是生成一个列表,而不是 python 列表。.Add 方法是我没有得到的。

如果有人感兴趣,最终代码:

0 投票
1 回答
316 浏览

revit-api - 通过 RPW、python 和 revit API 组织 Revit 项目浏览器

是否可以通过 Revit API 和 RPW 在 Revit 项目浏览器窗口中展开/折叠项目(即视图、图纸、图例等)

0 投票
1 回答
609 浏览

python - python for revit - 在活动视图中收集视图

我正在尝试在我的 pyRevit 脚本中使用 FilteredElementCollector 来收集活动视图中的所有视图(剖面、立面、平面标注等)。

这将返回一些,但不是所有的意见。例如,有些部分包括在内,但有些部分没有,我不知道为什么。

如果我添加“.OfCategory(BuiltInCategory.OST_Views)”,我什么也得不到。我需要把它分解成几个更具体的类别吗?谢谢你的帮助。

0 投票
1 回答
106 浏览

python - Revit API 收集器:无法将值:空格转换为 target_type:

我不明白为什么我的代码适用于其他 revit 类别:

产生此错误:

0 投票
3 回答
513 浏览

revit-api - 为什么“ElementId(BuiltInCategory.OST_Walls)”在 Revit API 2019 中失败?

我正在尝试过滤墙壁。为此我使用

..但这显然不会返回有效的ElementId,因为当我打印它时,它有一些负值(如果我打印“doc.GetElement(myId)”,我会得到“None”)。

然后,确实在创建过滤器时...

...我得到一个 ArgumentException。我正在使用 Revit 2019(带有 pyRevit)。据我记得,它曾经与 Revit 2018 一起使用,但我看不出有任何理由不再适用。我错过了什么?

非常感谢!

0 投票
2 回答
1967 浏览

revit-api - Revit API 中的高级图元过滤

我正在关注此 youtube 视频 ( https://www.youtube.com/watch?v=WU_D2qNnuGg&index=7&list=PLc_1PNcpnV5742XyF8z7xyL9OF8XJNYnv ) 中显示的示例,该示例说明了 Revit API 中的过滤方法优于通常的迭代。但是我的代码比迭代方法慢得多:
过滤方法-0.16 秒
迭代方法-0.06 秒

我使用过滤方法的代码是:

对于迭代,使用了以下代码。