问题标签 [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.
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)
谢谢!
阿尔诺。
revitpythonshell - 在 pyRevit 或 RPS 中使用法语字符
我想使用 pyRevit 脚本以法语打印对话框。一旦我在我的代码中包含像“ê”这样的重音,pyRevit 脚本甚至不会执行。
但是,如果我在 RevitPythonShell 中打印“être”,没问题。
为什么?为什么要进行不同的处理,是否可以使用 pyRevit 处理?
非常感谢,阿诺。
revit-api - 如何在 2 个 pyRevit 脚本之间共享一个变量?
我正在使用最新版本的 pyRevit,v45。我在临时文件中写了一些信息
这将创建一个名为 pyRevit_2018_xxxx_id.tmp 的文件,我在其中存储有用的信息。如果我没记错的话,每次我重新加载 Revit 时,“xxxx”部分都会发生变化。现在,我需要从另一个 pyRevit 脚本访问这些信息。
如何检索我需要读取的临时文件的名称?换句话说,我如何从不知道“myTempFile”名称的第二个脚本中访问“myTempFile”?
我想我可以在我的脚本之间以某种方式共享该变量,但是这样做的正确方法是什么?我知道这一定是一个非常基本的编程问题,但我确实不是程序员;)
非常感谢,阿诺。
revit-api - Revit API中使用python获取过滤规则信息
我已经启动了一个提取过滤器规则信息的python脚本,但是找不到从“GetRuleParameters()”中获取信息的方法
任何帮助是极大的赞赏。我看到了很多关于创建规则过滤器的信息,但很少有关于提取规则信息的信息。
这是视图中过滤器覆盖的示例
这是我所在的位置:
python - 如何使用 pyRevit 重新加载主题演讲
我正在尝试修改非常有用的打开主题按钮脚本以创建“重新加载主题”按钮。
目前我正在尝试使用 KeyBasedTreeEntryTable 类的 Reload 方法。
这是我收到的错误消息。
TypeError: Reload() 正好需要 2 个参数(给定 0)
我被困在这里,感谢任何帮助。
revit-api - Python 中的 Revit API 更改组
我正在尝试编写一个脚本,将组从一种类型更改为另一种类型。本质上,我想完成 UI 等效于右键单击组类型、选择所有实例并更改类型。
我可以使用类似下面的代码,但是当有很多组(例如 270 个左右)时,它比 UI 方法花费的时间要长得多。在 UI 中需要不到 5 分钟的时间,以编程方式需要大约 20 分钟或更长时间。
有没有更好的方法来做到这一点,这样它就不会比 UI 方法花费更长的时间?
这是我用来在 Revit Python Shell 中测试的代码:
python - 如何使用 Python 存储 Revit 插件设置?
我的 Revit 插件有时会读取一个文本文件,该文件可能位于任何位置。在我当前的实现中,文本文件的路径是硬编码的。我想避免这种情况,这样当我将加载项分发给其他人时,它不会简单地崩溃。
理想情况下,我想让他们能够在他们的计算机上为该文件指定他们自己的位置,并且他们不需要在每次重新启动加载项时都重新指定它!换句话说,我想一劳永逸地存储所有这些信息。如果您关闭并重新打开 Revit,当您重新使用该插件时,该位置仍会存储在某个位置。
这个问题实际上类似于这个问题,除了在 Python ( pyRevit )中开发时我需要一个解决方案。有什么帮助吗?
revit-api - 如何处理 Revit API 中的故障?
我试图避免在使用 Revit 2018 API 复制大量墙壁时收到警告消息,例如当一些墙壁重叠时。为此,我正在实现Building Coder中记录的 FailureHandler 类,稍微适用于 Python,也如此处记录。
现在,在一个简单的测试用例中,复制一些不会引发任何警告/错误的墙(我尝试过不考虑故障,只是复制墙,它可以完美运行而没有任何错误),当我实现并使用 FailureHandler 时类,我所有的墙创建事务都是回滚的。他们不应该,因为没有警告!我将 FailureHandler 实现减少到严格的最小值以尝试理解行为,但它不断回滚事务......
这是我对 FailureHandler 的实现:
如您所见,我希望它只是继续进行交易。但它会回滚。
主要程序:
同样,如果没有考虑所有这些 failureHandler ,此例程会创建没有警告/错误的墙。
有人可以解释一下为什么它会回滚吗?FailureProcessingResult.ProceedWithCommit 不只是暗示事务应该提交吗?
非常感谢!
python - 如何使用 PyRevit 获取用户输入?
在运行 PyRevit 脚本时,我将如何在不同点获取用户输入?我知道 input('') 不起作用。我希望用户输入整数来执行计算。