问题标签 [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 回答
291 浏览

numpy - 如何在 IronPython for Revit API 中使用 NumPy?

我正在使用 python 在 Revit API 中编写脚本。我正在寻找使用 NumPy,因为我正在尝试生成一个点阵网格来放置家庭。但是,我知道 NumPy 与 IronPython 不兼容,因为它是用 CPython 编写的。有解决方案吗?如果没有,有没有什么好的方法可以在不使用像 NumPy 这样的外部包的情况下生成点的格子网格?

0 投票
1 回答
927 浏览

python - 带有 ISelectionFilter 的 PickObjects 不允许我选择任何东西,为什么?

我正在尝试通过使用 GUI 选择一个空间以在 Revit MEP 2019 中使用,并存储选择以供在脚本中进一步使用。代码是用 pyRevit 编写的。该脚本从 shell 和 addin 按钮运行,但是当进入选择模式(PickObject 方法)时,我根本不允许选择任何东西。我没有收到任何错误,只是在 GUI 中输入选择工具时没有任何内容可供选择。

我已经在代码中评论了我尝试过的没有用的代码。

我不明白问题出在哪里,我最好的猜测是在过滤器定义中。帮助字符串“选择空间(房间)”在左下角正确显示,当我应该在视图中选择某些内容时,除了视口之外的所有内容都会变成灰色。鼠标变成了某种“禁止”的符号。

我将非常感谢一些帮助。提前感谢任何可能希望提供帮助的人!

0 投票
0 回答
63 浏览

python-2.7 - 如何在pyRevit中创建项目类

我正在使用 pyRevit 为 Revit 创建一堆插件,使用起来很简单。我对 python 并不陌生,所以我已经在其他项目中成功地使用它的方法导入了许多类,这样我就可以避免重复代码等。

我试图在 pyRevit 中做同样的事情,但没有成功。

我想做的是在上层文件夹中创建一些东西,并在需要时导入它的方法。

就像是:

并从他们孩子的 script.py 文件中访问methoslibrary.py 中的所有方法。

我正在尝试使用以下命令导入文件:

从脚本文件之一但没有成功,即使这适用于其他 python 项目。

有任何想法吗?我应该更改任何配置吗?

0 投票
1 回答
1203 浏览

python-3.x - 使用 Revit API 更改元素的族和类型

我正在尝试构建一个脚本来更改 Revit 模型中选定元素的族和元素类型。我已经尝试了我一直在为元素的其余参数所做的事情:

这样我可以访问 type 参数,但它根本没有改变(对于 family 参数也是一样的,但同样,运行代码后没有任何变化)。

我假设这一定是因为类型和家庭之间的关系。你知道如何改变这个吗?

先感谢您!

0 投票
0 回答
52 浏览

c# - Revit C#跳过加载pyrevit

我刚刚开始在 Visual Studio 上使用 C#,它很棒。

我有一个简单的问题。我的电脑上加载了 PyRevit。当我在 Visual Studio 上运行 Debug 时,PyRevit 在加载 Revit 时又增加了 2 分钟。由于我经常运行调试来测试我的应用程序,因此每次启动 Revit 都会增加相当多的时间。

有没有办法在调试期间每次使用 c# 跳过加载 PyRevit?

0 投票
0 回答
110 浏览

python - 如何将项目附加到类对象的属性?

我正在尝试在 Revit API 中创建一个具有多个列表属性和一个方法的类。

这个类是检查一些表示模型模板版本的共享参数并收集相关参数。

我想我的主要问题是关于如何将方法中的项目附加到类的列表属性中。

建议将不胜感激!

0 投票
1 回答
123 浏览

c# - Revit API - 创建新的 ScheduleField

我正在尝试使用 revit-api 中的 C# 以编程方式在我的工作表列表计划中创建一个新字段,但我遇到了问题。我在这里找到了如何添加常规 OOTB 字段,但没有提及如何创建新字段然后添加它。

例如如何添加“Sheet Order”字段和“Sheet subOrder”字段。

任何和所有的帮助/方向表示赞赏。我一直在爬网和Revit API 文档,但还没有找到任何关于添加新字段的信息。

0 投票
2 回答
407 浏览

python - 使用 pyRevit 的 Revit API 事件

我正在尝试在我的 Iron python 插件上使用 revit api 事件(使用 pyRevit 添加功能区和按钮),但我真的不明白该怎么做。

我找到了这段代码,但我无法让它工作。对于初学者,我想在每次激活视图时打印“视图已激活”

https://github.com/eirannejad/pyRevit/issues/201

谢谢,

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”命令

下面是我的代码: 代码