问题标签 [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 投票
1 回答
43 浏览

pyrevit - RevitPythonWrapper 的某些功能是否已过时?

我想在 Revit 2018 中将 rpw ( https://github.com/gtalarico/revitpythonwrapper ) 与 pyRevit 和 RPS 一起使用。我本月初从 github 安装了 rpw,因此我可以将它与 RPS 一起使用,现在尝试使用一些对话框功能,例如“警报”功能。但是在 pyRevit 脚本中调用 rpw 时出现了一些错误,例如说 Alert 中的“header”参数不是预期的,或者在尝试导入 rpw.ui.forms.CommandLink 时出错。

但是,例如,如果我使用相同的“Alert”命令,并带有 RPS 中的“header”参数,它工作得非常好。CommandLink 导入也可以正常工作。

为什么?(使用 pyRevit v4.4:9c6ae17)

谢谢!

阿尔诺。

0 投票
2 回答
92 浏览

revitpythonshell - 在 pyRevit 或 RPS 中使用法语字符

我想使用 pyRevit 脚本以法语打印对话框。一旦我在我的代码中包含像“ê”这样的重音,pyRevit 脚本甚至不会执行。

但是,如果我在 RevitPythonShell 中打印“être”,没问题。

为什么?为什么要进行不同的处理,是否可以使用 pyRevit 处理?

非常感谢,阿诺。

0 投票
2 回答
121 浏览

revit-api - 如何在 2 个 pyRevit 脚本之间共享一个变量?

我正在使用最新版本的 pyRevit,v45。我在临时文件中写了一些信息

这将创建一个名为 pyRevit_2018_xxxx_id.tmp 的文件,我在其中存储有用的信息。如果我没记错的话,每次我重新加载 Revit 时,“xxxx”部分都会发生变化。现在,我需要从另一个 pyRevit 脚本访问这些信息。

如何检索我需要读取的临时文件的名称?换句话说,我如何从不知道“myTempFile”名称的第二个脚本中访问“myTempFile”?

我想我可以在我的脚本之间以某种方式共享该变量,但是这样做的正确方法是什么?我知道这一定是一个非常基本的编程问题,但我确实不是程序员;)

非常感谢,阿诺。

0 投票
2 回答
1085 浏览

revit-api - Revit API中使用python获取过滤规则信息

我已经启动了一个提取过滤器规则信息的python脚本,但是找不到从“GetRuleParameters()”中获取信息的方法

任何帮助是极大的赞赏。我看到了很多关于创建规则过滤器的信息,但很少有关于提取规则信息的信息。
这是视图中过滤器覆盖的示例

这是我所在的位置:

0 投票
1 回答
370 浏览

python - 如何使用 pyRevit 重新加载主题演讲

我正在尝试修改非常有用的打开主题按钮脚本以创建“重新加载主题”按钮。

目前我正在尝试使用 KeyBasedTreeEntryTable 类的 Reload 方法。

这是我收到的错误消息。

TypeError: Reload() 正好需要 2 个参数(给定 0)

错误信息图片

我被困在这里,感谢任何帮助。

0 投票
1 回答
528 浏览

revit-api - Python 中的 Revit API 更改组

我正在尝试编写一个脚本,将组从一种类型更改为另一种类型。本质上,我想完成 UI 等效于右键单击组类型、选择所有实例并更改类型。

我可以使用类似下面的代码,但是当有很多组(例如 270 个左右)时,它比 UI 方法花费的时间要长得多。在 UI 中需要不到 5 分钟的时间,以编程方式需要大约 20 分钟或更长时间。

有没有更好的方法来做到这一点,这样它就不会比 UI 方法花费更长的时间?

这是我用来在 Revit Python Shell 中测试的代码:

0 投票
2 回答
179 浏览

python - 如何使用 Python 存储 Revit 插件设置?

我的 Revit 插件有时会读取一个文本文件,该文件可能位于任何位置。在我当前的实现中,文本文件的路径是硬编码的。我想避免这种情况,这样当我将加载项分发给其他人时,它不会简单地崩溃。

理想情况下,我想让他们能够在他们的计算机上为该文件指定他们自己的位置,并且他们不需要在每次重新启动加载项时都重新指定它!换句话说,我想一劳永逸地存储所有这些信息。如果您关闭并重新打开 Revit,当您重新使用该插件时,该位置仍会存储在某个位置。

这个问题实际上类似于这个问题,除了在 Python ( pyRevit )中开发时我需要一个解决方案。有什么帮助吗?

0 投票
1 回答
595 浏览

revit-api - 如何处理 Revit API 中的故障?

我试图避免在使用 Revit 2018 API 复制大量墙壁时收到警告消息,例如当一些墙壁重叠时。为此,我正在实现Building Coder中记录的 FailureHandler 类,稍微适用于 Python,也如此记录。

现在,在一个简单的测试用例中,复制一些不会引发任何警告/错误的墙(我尝试过不考虑故障,只是复制墙,它可以完美运行而没有任何错误),当我实现并使用 FailureHandler 时类,我所有的墙创建事务都是回滚的。他们不应该,因为没有警告!我将 FailureHandler 实现减少到严格的最小值以尝试理解行为,但它不断回滚事务......

这是我对 FailureHandler 的实现:

如您所见,我希望它只是继续进行交易。但它会回滚。

主要程序:

同样,如果没有考虑所有这些 failureHandler ,此例程会创建没有警告/错误的墙

有人可以解释一下为什么它会回滚吗?FailureProcessingResult.ProceedWithCommit 不只是暗示事务应该提交吗?

非常感谢!

0 投票
1 回答
218 浏览

revit - Revit 无法运行外部应用程序 (PyRevit)

我按照文档说明安装了 pyRevit,但没有用。我安装了更多次,我从来没有遇到过错误。然后我更新了,但也不工作。我分享错误图片。

在此处输入图像描述

有人可以帮助我吗?谢谢。

0 投票
2 回答
473 浏览

python - 如何使用 PyRevit 获取用户输入?

在运行 PyRevit 脚本时,我将如何在不同点获取用户输入?我知道 input('') 不起作用。我希望用户输入整数来执行计算。