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

revit-api - Revit API C# - ViewSheet 的 ShowElements、选择 ViewPort、Activate Viewport 在 Debug Step through 但不实时工作

我正在尝试使用工作表上的Jeremy's Keys激活视口,并且我可以在执行 Debug Step-Through 时执行此操作,但由于某种原因,它在实时时不起作用。

我尝试了以下方法:

1)使用while循环等待活动视图成为视口的视图,但它似乎没有触发。

2)将其放在单独的事务中

3)尝试使用System.Threading.Thread.Sleep(2000);

4)开始研究异步,等待但是我还没有那么熟练。

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

我当前的 Sudo 代码类似于问题的标题。

draw a temporary line across viewport

doc.showElements(temporaryline)

delete temporary line

Select viewport

Press.Keys("AV")(AV是我选择视口时激活视图的快捷方式)

如果需要,我可以上传实际代码

/////////////////////puts///////////////////// 这是Culprit

0 投票
2 回答
311 浏览

python - 如何使用 python 在 revit API 中复制对象

有没有办法可以复制过滤器元素收集器对象?例如,原始对象指向 0x000000000000156B,我希望复制的对象指向不同的位置,这样我就可以在不更改原始对象的情况下继续进行修改。

这是一些代码来说明我的想法:

我知道 FilteredElementCollector 类中没有这样的方法,但应该有办法做到这一点,对吧?我还阅读了有关 deepcopy 的信息,但无法在 Revit 上使用它。

任何帮助将不胜感激,谢谢!

0 投票
1 回答
101 浏览

python - 是否有将 Revit 中的所有元素和特征写入 .csv 文件的功能?

我使用 Revit(PyRevit) 并希望将所有使用过的元素及其特征写入 .csv 文件中。

这是一个例子:

但是我只得到“基本约束”是否可以将所有元素/类别放入该文件?

非常感谢。此致

0 投票
1 回答
37 浏览

python - 如何将所有墙壁涂成黑色

我想用 Pyrevit 为 Revit 中的一些元素着色:所有墙壁为黑色,窗户为绿色,门为粉色。

我找到了这个解决方案,但它不起作用:

愿你能帮助我!!非常感谢。问候

0 投票
1 回答
142 浏览

python - 通过 pyRevit 注册的 IUpdater 引发的 NameError

我正在尝试将动态模型更新器作为 pyRevit 扩展的一部分来实现。但是,我无法从更新程序的Execute方法中实例化类、调用函数或引用常量。

作为一个例子,让我们假设制作一个执行此脚本的按钮:

如果我移动一堵墙(当然是在单击按钮注册更新程序之后),则会引发异常并将其存储在墙的 comments 属性中:NameError: name 'do_thing' is not defined. TaskDialog.Show当我尝试调用最初未在 Python 中定义的函数时,也会引发类似的异常。

但是,如果我在 RevitPythonShell 中注册相同的更新程序,它会按预期工作:

允许更新程序在 RevitPythonShell 但不能在 pyRevit 中工作的两种环境之间有什么区别?

Revit 2019、pyRevit 4.7.4、IronPython 2.7.7

0 投票
1 回答
221 浏览

python-2.7 - 从 python 类为 WPF 设置多个 ItemsSource

您好我正在尝试使用 PyRevit 在 WPF 应用程序中填充 ComboBox 和 ListBox。该应用程序运行良好,其中一个 WPF“框”获得了一个列表,但当我尝试添加两者时,我收到一条错误消息,提示“意外缩进”。以下是我想要实现的目标:

这仅在我仅尝试填充一个 WPF 容器时才有效,下面只是 ListBox 而不是 ComboBox:

XAML 如下:

我可能需要使用我认为的 DataContext ?但不确定它是 pythonic 还是 WPFonic 问题。任何帮助,将不胜感激!谢谢!

0 投票
1 回答
429 浏览

python - 如何在 Revit API 中从 C# code.where(...) 转换为 python

我正在尝试将 C# 代码(用于 revit API)转换为 python,但没有运气。C# 代码看起来:

我遇到的问题是.Where(m=>(m as FamilyInstance).Host.Id == r.ElementId); 我使用 pyrevit 的部分。谁能建议怎么做?谢谢你!

0 投票
1 回答
113 浏览

revit-api - Xceed AvalonDock - Revit MainWindow.FindFirstChild 返回 nul

我是 C# 相对较新的建筑师,我正在尝试在我自己的工具栏中实现 Ehsan Iran-Nejad 令人惊叹的 PyRevit 彩色选项卡。

https://github.com/eirannejad/pyRevit/blob/12ecea9096bb649e2b6f084ba82ba1284bc78667/extensions/pyRevitTools.extension/pyRevit.tab/Toggles.panel/toggles1.stack/Tab%20Coloring.smartbutton/script.py

https://github.com/eirannejad/pyRevit/blob/12ecea9096bb649e2b6f084ba82ba1284bc78667/extensions/pyRevitTools.extension/pyRevit.tab/Toggles.panel/toggles1.stack/Tab%20Coloring.smartbutton/script.py

对我来说不幸的是,这将返回 null:

从外部命令启动:

我看不出出了什么问题,任何建议将不胜感激。

干杯,

标记

0 投票
1 回答
232 浏览

python-2.7 - Revit API Python SetBoxCenter() 应用于多个视口

在 Revit 中,我选择了要与主视图 (primaryCenter) 对齐的视图 (selvpsElements)。我的主要视图中心如下所示:

这是使用应用于特定视口的 GetBoxCenter() 方法生成的

然后与主视图对齐的选定视图如下

我努力了

但它不起作用。我是否需要使用 .ToXyz() 将 primaryCenter 转换为 XYZ?任何帮助将不胜感激!

编辑:

此信息通过以下方式生成:

然后使用 pyrevit forms.WPFWindow 和用户选择的列表框(colViews)和组合框(colPrimary)(lbxViews 和 cmbPrimary)有一个附加到按钮的函数(alignviews)来执行以下操作:

该应用程序工作得很好,只是想将选定的视口中心与主视口中心对齐。一旦我这样做,我打算提供一个选择以将“左上角”等与下面对齐。但那是另一天

0 投票
2 回答
124 浏览

revit-api - 使用 RevitPythonShell 的可扩展存储

我正在尝试利用 Revit API 中的 ExtensibleStorage。我正在尝试将数组存储在 ArrayField 中。我想也许我的错误是由于 IronPython 接口,但也许有人成功地做到了这一点?我知道要设置的对象应该是一个 IList,但我似乎无法制作一个。在 IronPython 文档中,Array-object 被用作示例。如果我尝试这个:vl = IList[ElementId]([v.ViewId for v in views])我得到一个系统错误:

这是我的代码:

这是我的错误信息:

顺便说一句:这工作正常:

要获取值:entity.Get[ElementId]('Views')