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

revit-api - 如何通过 revit API 访问所有族类型?

是否可以使用 Revit API 访问某个类别的所有族类型(例如窗户、门……)?与事例相反。据我所知,使用 FilteredElementCollector(doc).OfCategory(...).ToElements() 或 FilteredElementCollector(doc).OfClass(...).ToElements() 指向该类/类型的实例,但我想要检查特定类型是否已加载到 Revit 中,即使它尚未实例化。

(我正在使用 pyRevit,Revit 2017)

非常感谢!

0 投票
2 回答
724 浏览

revit-api - 使用 Revit API 编码:减少内存使用的技巧?

我有一个非常“一般”的问题。我正在使用 Revit API(使用 python)进行开发,有时我会观察到 Revit 会话在我的测试和试验期间变得更慢(Revit 保持打开的时间越长,它似乎发生的越多)。它没有达到真正有问题的地步,但无论如何它让我想到了它。

所以,由于我没有编程背景,我很确定我的代码充满了真正“非正统”的东西,这些东西可能会好得多。

是否有一些我可以遵循的基本“提示和技巧”(我的意思是,与 Revit API 相关)来帮助提高代码执行速度?或者我应该说:帮助减少内存使用?

例如,我已经了解了可用的“处理”方法,特别是在使用事务时(例如这里:http://thebuildingcoder.typepad.com/blog/2012/09/disposal-of-revit-api-objects。 html),但最后我不太清楚这是否真的很重要(此外,因为我使用的是 Python,并且不知道这让我在讨论使用“使用”时处于什么位置或不)?

我应该“处理”所有东西吗?;)

除了'Dispose'方法,还有别的吗?

非常感谢,阿诺。

0 投票
3 回答
125 浏览

revit-api - 访问 Area.Name 引发错误

我只是想找到一种方法来访问 Revit Python Shell 中 Area 元素的 name 属性,尝试查看 Jeremy Tammik 的信息量惊人的博客,尝试 AUGI、Revit API 文档,现在已经找了 2 天...

尝试通过多种方式访问​​,FilteredElementsCollector(doc).OfCategory(BuiltInCategory.OST_Areas),通过 Area 类尝试,通过 AreaTag 尝试,每次我在每种情况下都遇到错误,它让我发疯,看起来像这样我似乎无法掌握的简单问题!

编辑:也通过元素 id、标签、区域方案、nada、不行...

谁能告诉我如何通过 RPS 访问此属性?

0 投票
1 回答
189 浏览

revitpythonshell - Revit API:“隐藏”方法?

在使用 Revit API 并浏览“RevitAPI.chm”文件(以及浏览 Internet 上的示例)时,我注意到有些方法存在,但在“RevitAPI.chm”文件中既没有列出,也没有在使用 RevitPythonShell 时提出建议。

我解释。例如,假设我有一个“空间”对象,通过

如果我这样做,让我们说(假设 s[0] 是一个有效的 Space 对象):

我有一个“索引器对象”:

如果我这样做:

然后我得到了我的 GeometryElement 对象。例如,get_BoundingBox 也有同样的行为。

现在,这很好,但我可以了解这些 get_something 方法的唯一方法是查看示例(在“RevitAPI.chm”或论坛等上)。所以这有点奇怪,不是吗?从某种意义上说,这些方法实际上并未列出。

所以我想我的问题是:

  • 这是正常行为吗?(或者我通常应该使用 s[0].Geometry 来获取 GeometryElement 对象吗?)
  • 如果是,……为什么?:D
  • 这些“索引器”是什么?

谢谢!阿尔诺。

PS:使用 Revit 2017,使用 RevitPythonShell 和 pyRevit 进行测试

0 投票
0 回答
77 浏览

python - RevitPythonShell 随机模块行为怪异?

我正在使用 RevitPythonShell,在我的代码中搜索了一个令人沮丧的错误之后,我发现问题是由于随机模块表现得很奇怪。几乎随机模块中的所有功能似乎都保留了一半的可能性。

random.sample 仅对列表的前半部分进行采样。random.uniform 生成的数字小于两个边界的平均值。random.random() 仅生成 0 到 0.5 之间的数字。

下面的代码来自 revitpythonshell 终端。谁能帮我理解发生了什么?

0 投票
1 回答
327 浏览

revit-api - 直接形状导入材质怪癖,材质颜色通过 API 无效,直到通过 UI 编辑材质

描述

我想查询材料的颜色属性。该材质是从 Rhino 3dm(DirectShape Import)自动生成的材质。Color 属性应该是图层颜色,这在查看材质浏览器及其渲染方式时适用。但是,通过 Revit API 查询它会导致颜色属性无效。

在您主动使用 ui 材质浏览器并修改材质之前,从直接形状存储在材质中的颜色参数不会正确初始化/出错。在此之前,使用 API(您可以使用 revit 查找测试)来获取材质颜色返回无效颜色,从而无法检索 rgb 值

但是通过 Ui 编辑材质,例如编辑表面图案或颜色...这会以某种方式刷新颜色参数,并允许之后使用 revit API 读取颜色参数。

到目前为止我尝试过的事情

想法

视觉解释

可以在这里看到问题的可视化 PDF 解释:https ://www.docdroid.net/n2j9Auy/170628-color-direct-shape-material-quirk.pdf.html

0 投票
3 回答
1120 浏览

revit-api - 如何在 Python(Revit Dynamo)中自动处理 DialogBoxShowing 事件?

如何在 Python (Dynamo) 中订阅 Revit 事件?

特别是 DialogBoxShowing,所以我可以查看它是否是“使用临时隐藏/隔离导出”警告并选择“打开并导出临时隔离模式”?

它在这里用 C# 完成:

http://thebuildingcoder.typepad.com/blog/2013/03/export-wall-parts-individually-to-dxf.html

见小标题:处理和解除警告信息

谢谢!

0 投票
2 回答
2431 浏览

python - 如何在linux命令行中运行sh文件

我想在 linux 命令行中运行 init.sh 文件
并确保执行 pyenv shell ammt-crawler 行。

但是当我刚刚放 ./init.sh 时,什么也没发生。
为什么要在linux中执行init.sh文件?

(ps)如果你能解释一下这个 init.sh 里面的 export , eval 是什么意思

0 投票
1 回答
322 浏览

revit-api - Revit API:创建新的足迹屋顶

我在使用 revit 2018 API 创建足迹屋顶时遇到问题。基本上,我这样称呼:

和:

  • “ca”是一个有效的Autodesk.Revit.DB.CurveArray对象。这是一个闭环。
  • “doc.GetElement(roofsInstances[0].LevelId)”是一个有效的Autodesk.Revit.DB.Level对象
  • 并且“roofsInstances[0].RoofType”是一个有效的Autodesk.Revit.DB.RoofType对象

当我调用它时,它返回:异常:值不能为空。

关于可能是什么问题的任何想法?非常感谢!

0 投票
1 回答
638 浏览

revitpythonshell - Revit Python Shell - 更改参数组

我正在尝试编写一个快速脚本来打开一个家庭文档,更改 2 个指定参数的参数组,然后关闭并保存文档。我已经进行了多次测试,并且可以更改指定参数的参数组,但是组的更改不会保存回族文件。当我打开新保存的族时,参数组恢复为原始组。

这适用于 Revit 2017.2。

相同的脚本在 Revit 2018 中的 RPS 中运行时将按需要执行。

有任何想法吗?

谢谢!