问题标签 [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.
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
python - 如何使用 python 在 revit API 中复制对象
有没有办法可以复制过滤器元素收集器对象?例如,原始对象指向 0x000000000000156B,我希望复制的对象指向不同的位置,这样我就可以在不更改原始对象的情况下继续进行修改。
这是一些代码来说明我的想法:
我知道 FilteredElementCollector 类中没有这样的方法,但应该有办法做到这一点,对吧?我还阅读了有关 deepcopy 的信息,但无法在 Revit 上使用它。
任何帮助将不胜感激,谢谢!
python - 是否有将 Revit 中的所有元素和特征写入 .csv 文件的功能?
我使用 Revit(PyRevit) 并希望将所有使用过的元素及其特征写入 .csv 文件中。
这是一个例子:
但是我只得到“基本约束”是否可以将所有元素/类别放入该文件?
非常感谢。此致
python - 如何将所有墙壁涂成黑色
我想用 Pyrevit 为 Revit 中的一些元素着色:所有墙壁为黑色,窗户为绿色,门为粉色。
我找到了这个解决方案,但它不起作用:
愿你能帮助我!!非常感谢。问候
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
python-2.7 - 从 python 类为 WPF 设置多个 ItemsSource
您好我正在尝试使用 PyRevit 在 WPF 应用程序中填充 ComboBox 和 ListBox。该应用程序运行良好,其中一个 WPF“框”获得了一个列表,但当我尝试添加两者时,我收到一条错误消息,提示“意外缩进”。以下是我想要实现的目标:
这仅在我仅尝试填充一个 WPF 容器时才有效,下面只是 ListBox 而不是 ComboBox:
XAML 如下:
我可能需要使用我认为的 DataContext ?但不确定它是 pythonic 还是 WPFonic 问题。任何帮助,将不胜感激!谢谢!
python - 如何在 Revit API 中从 C# code.where(...) 转换为 python
我正在尝试将 C# 代码(用于 revit API)转换为 python,但没有运气。C# 代码看起来:
我遇到的问题是.Where(m=>(m as FamilyInstance).Host.Id == r.ElementId);
我使用 pyrevit 的部分。谁能建议怎么做?谢谢你!
revit-api - Xceed AvalonDock - Revit MainWindow.FindFirstChild 返回 nul
我是 C# 相对较新的建筑师,我正在尝试在我自己的工具栏中实现 Ehsan Iran-Nejad 令人惊叹的 PyRevit 彩色选项卡。
对我来说不幸的是,这将返回 null:
从外部命令启动:
我看不出出了什么问题,任何建议将不胜感激。
干杯,
标记
python-2.7 - Revit API Python SetBoxCenter() 应用于多个视口
在 Revit 中,我选择了要与主视图 (primaryCenter) 对齐的视图 (selvpsElements)。我的主要视图中心如下所示:
这是使用应用于特定视口的 GetBoxCenter() 方法生成的
然后与主视图对齐的选定视图如下
我努力了
但它不起作用。我是否需要使用 .ToXyz() 将 primaryCenter 转换为 XYZ?任何帮助将不胜感激!
编辑:
此信息通过以下方式生成:
然后使用 pyrevit forms.WPFWindow 和用户选择的列表框(colViews)和组合框(colPrimary)(lbxViews 和 cmbPrimary)有一个附加到按钮的函数(alignviews)来执行以下操作:
该应用程序工作得很好,只是想将选定的视口中心与主视口中心对齐。一旦我这样做,我打算提供一个选择以将“左上角”等与下面对齐。但那是另一天
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')