问题标签 [revitpythonshell]

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 回答
138 浏览

revit-api - Revit API:维护多个 API 版本的代码

我有一些为 Revit 2019 或以下版本编写的 Revit 加载项。现在我正在尝试升级 Revit 2020 的工具,但似乎 API 方法发生了一些重大变化。幸运的是,其中一些是向后兼容的,因此我可以使用新的 API 方法更新代码并将其用于 Revit 2020 和 2019。但是,其中一些仅适用于 Revit 2020。(ex)ImageInstance.Create(Document, View, ElementId, ImagePlacementOptions

在这种情况下,保持相同代码库与不同 Revit 版本兼容的最佳方法是什么?我可以很容易地想象使用 If 语句来确定每个 Revit 版本的正确 API 方法,但对于工具的维护来说似乎并不理想。

任何意见,将不胜感激!

0 投票
2 回答
444 浏览

c# - Revit API - 新墙类型 - 如何排列图层?

我正在通过 Revit API 从头开始​​创建新的墙类型,并且我已经走得很远(在我看来)但是我还有最后一个问题要解决。

如何按照我想要的方式排列墙壁的层次?墙是由核心边界内的所有层创建的,这显然并不理想。我正在尝试将外部的 Finish 1 和 Finish 2 层置于核心边界的任一侧

任何和所有的帮助表示赞赏。

我的墙是这样创建的:

在此处输入图像描述

以下是我一直在查看的资源,但没有找到任何显示如何重新排列图层的内容。

https://thebuildingcoder.typepad.com/blog/2009/06/core-structural-layer.html

https://thebuildingcoder.typepad.com/blog/2013/08/setting-the-compound-structure-core-and-shell-layers.html

https://thebuildingcoder.typepad.com/blog/2012/03/updating-wall-compound-layer-structure.html <--可能是信息最丰富的,但我没有找到“setlayerIndex”命令

下面是我的代码: 代码

0 投票
2 回答
84 浏览

python - RevitPythonShell 用户输入 raw_input 错误

有人知道如何在 RevitPythonShell 2018.1.0.0 中修复此错误吗?

在此处输入图像描述

0 投票
0 回答
42 浏览

python - 使用 Cucumber 和子进程从 Node js 调用时,循环在 python 中不起作用

主类:

我正在尝试创建一个 e2e 自动化测试用例,其中数据的创建是测试脚本的一部分。我用 python 编写的测试数据创建,我想将它与黄瓜框架一起使用。

我正在使用带有打字稿的 Cucumber,其中一个步骤是创建测试数据,它使用 spawn 在步骤定义中调用的方法之一中调用上述 python 脚本。

用例: 1. 在一个文件夹中创建 4 个文件。2.检查上述文件是否被删除(实时测试文件被删除,因为读取这些hl7文件的工具在读取后将其删除。)3.一旦删除,然后在另一个目录中创建另一个文件4.检查上述文件是否被删除. 5. 打开 UI 6. 在 UI 上验证数据。

流程突然结束,显示测试完成,通过了一个场景,但只创建了 4 个文件,其余逻辑不起作用。当我通过 python 执行上述 python 脚本时,它按预期工作,但不与 spawn 一起工作。

我看到的一种一般行为是,当我试图从 spawn 调用 python 中的循环时,它一直工作到 15K 的值,之后它就不起作用了

0 投票
2 回答
433 浏览

python - Revit 使用 Python,按族过滤(族符号)

我刚刚开始使用 Revit API,我有一个问题。我现在一直在寻找一种按族过滤 Revit 元素的方法。这是我的程序:首先我做了一个过滤元素收集器来获取所有家庭符号 ID。

这应该让我得到家庭符号 ID。然后,我尝试使用此 ID 创建过滤后的元素收集器。

这给了我以下错误:Microsoft.Scripting.ArgumentTypeException: expected BuiltInParameter, got ElementId

BuiltInParameter如果FamilySymbolFilters要求元素 ID ,我不知道为什么它期待一个。无论如何,任何帮助将不胜感激。谢谢!

0 投票
1 回答
189 浏览

f# - Revit API:System.MissingMethodException:在 Autodesk.Revit.UI.IExternalApplication 上找不到方法

我正在使用类似于 RevitPythonShell 或 pyRevit 的 F# 脚本编辑器。由于它是一个非模态 WPF 窗口,我尝试按照该ExternalEvent模式来评估脚本。在具有接口的主插件类上,IExternalApplication我还创建了一些实用程序成员来引发外部事件。我创建了一个静态成员来访问这个插件类的当前实例。见插件:https ://github.com/goswinr/Seff.Revit/blob/minimal/Addin.fs#L51

插件运行后,我将当前运行插件的引用 ( #r @"D:\Git\Seff.Revit\bin\Debug\net472\Seff.Revit.dll") 发送到 Fsharp Interactive。静态成员具有正确的签名可见,但使用它们时,我得到一个System.MissingMethodException. 这只发生在使用 Revit 命名空间的成员身上。与 Revit 无关的成员按预期工作。

在此处输入图像描述 在此处输入图像描述 其他成员工作正常: 在此处输入图像描述

编辑: 当我启动 Revit 并打开一个项目时,我只有这个错误。首次启动 Revit,然后从 revit 中打开项目时,不会发生此错误。

此 Revit 和 F# repro在自述文件末尾指出了一个类似的错误。

0 投票
1 回答
539 浏览

revit-api - Revit API - 从 Revit 项目中完全删除族

我在尝试从项目中删除一个家庭时遇到了问题。我可以删除族类型,但似乎该族仍在项目中加载。有没有办法彻底去除?

到目前为止,我已经查看了这些来源:

1) https://adndevblog.typepad.com/aec/2012/07/supported-workflow-for-unloading-a-family-using-the-revit-api.html

2) https://adndevblog.typepad.com/aec/2012/07/supported-workflow-for-unloading-a-family-using-the-revit-api.html

这是我的代码:

在此处输入图像描述

0 投票
1 回答
242 浏览

revit-api - Revit 2020 API - 在家庭文档打开和激活后家庭文档活动视图返回空值

我正在尝试获取我家人文档的活动视图,但它返回 null。在 Revit 2019 中,它总是会返回一个值,但是我最近切换到了 Revit 2020,它似乎给了我一个问题。

有没有其他人遇到过这个问题并找到解决方案?

我偶然发现了这篇文章,但它的建议是使用我不喜欢的过滤元素收集器。我在将它传递给其他类时遇到问题。Revit 2019 看起来如此简单。

注意:这在 Revit 2021 中也存在

这是我的调试图片,显示其为空在此处输入图像描述

然后这是我的家庭文档 Snoop 打开并激活后的图片,显示它具有价值。 在此处输入图像描述

0 投票
2 回答
1347 浏览

revit-api - Revit API - 如何检查打开的事务、子事务或组事务

我正在开发一个按钮,在该按钮上打开了一个项目文档并打开了一个家庭文档。我正在尝试关闭家庭文档,但是我收到一条错误消息:

Autodesk.Revit.Exceptions.InvalidOperationException: 'Close is not allowed when there is any open sub-transaction, transaction, or transaction group.'

我已经检查了我的所有交易,它们都使用transactionName.Start(document)and启动和提交transactionName.Commit()

有谁知道检查任何正在进行的活动交易的方法?

我也尝试过使用

'RevitCommandId closeDoc = RevitCommandId.LookupPostableCommandId(PostableCommand.Close); uiapp.PostCommand(closeDoc);'

但是,这往往只想关闭我的项目文档。

///////////////////////////////////更新////////////// ///////////// 太棒了,我刚刚发现我不需要使用 uiapp.OpenAndActivateDocument()。我不知道您可以在不打开文档的情况下编辑家庭。这解决了我的问题。不过,我仍然很好奇是否有办法检查未结交易。

0 投票
1 回答
153 浏览

api - RPS:无法导入名称 ExporterIFCUtils

使用 revitpythonshell 2020 我尝试导入类ExporterIFCUtils

并得到错误:

“异常:IronPython.Runtime.Exceptions.ImportException:无法导入名称 ExporterIFCUtils”