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

revit-api - Revit API - 如何在调用 PostCommand 后返回“正常代码”

我一直在寻找答案,但没有找到任何可以解决的问题。

我有一个调用 PostCommand 的线程,我注意到了几件事:无论我将 PostCommand 放在哪里,它都会在我的线程中最后出现,即使它在单独的事务中也是如此。

有没有办法按顺序调用它,然后返回我的 Revit API 代码继续执行?

我找到了这个线程,但我希望他们的错误是因为他们在 dynamo 中运行,而不是在 Visual Studio 中使用 c#

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 投票
2 回答
302 浏览

python - 读取excel文件时如何在Revit Python Shell中将“字符串”转换为“BuiltInCategory”

我正在尝试将数据从 Excel 导入 Revit Python Shell,以验证 Revit 文件中是否存在用于选定对象类别的某些参数。但是我在第一个“for”循环中遇到了一些问题(查看 excel 表的第一列并获取类别)。实现我想要的第一步是获取我想要分析的类别的所有元素。我已经尝试了很多东西,但我总是以图片中显示的这个错误告终(得到字符串而不是内置类别)。我搜索了一种将字符串转换为内置类别的方法,但我没有找到任何东西。

有谁知道如何处理它?有没有办法将字符串转换为内置类别,或者是否有另一种解决方案?

谢谢! 图片 - 截图

0 投票
0 回答
26 浏览

django - 将 Django 模型数据保存到派生类的数据库中

我有以下型号

我能够创建学生对象。我尝试添加 StudentDetail 如下

最后一条语句给出了错误。如何将 StudentDetail 保存在数据库中。

0 投票
1 回答
346 浏览

c# - Google.Apis.Auth 1.46.0.0 已安装,但随后被要求提供多个版本

我可以自己通过winforms访问Firestore,并且可以正常工作。但是,如果我尝试通过外部命令访问 Firestore,则会收到错误消息:

System.IO.FileNotFoundException:'无法加载文件或程序集'Google.Apis.Auth,Version=1.44.1.0,Culture=neutral,PublicKeyToken=XXXXXXXXXX'或其依赖项之一。该系统找不到指定的文件。'

奇怪的部分是我有Google.Apis.Auth, Version=1.46.0.0作为参考。

如果我将参考版本更改为1.44.1.0,那么它会要求我将参考版本更改为1.21.0.0

我怎样才能使这项工作?

这是我的代码:

应用程序.cs

命令.cs

Form1.cs

应用程序配置

堆栈跟踪

日志

0 投票
1 回答
272 浏览

revit - 如何在 Revit Python Shell 中验证参数是否为空

我正在尝试验证文档中是否存在参数,以及(如果存在)它是空的还是填充的。

问题是代码总是返回参数如果存在则填充。即使它存在但为空。所以第 30 到 33 行并没有真正起作用。我已经尝试了很多事情,但我不知道我做错了什么。

有谁知道错误是什么?

谢谢! 在此处输入图像描述

...我必须在此处的评论中添加我正在谈论的代码,因为我无法在其中添加图片... 在此处输入图像描述

参数 IsExtendedWarranty 的屏幕截图: 在此处输入图像描述

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 投票
2 回答
325 浏览

python-2.7 - Revit Python Shell - 遍历每个元素,查找视图名称并按图纸编号分组

我想按关联的图纸编号、视图名称和位置中心创建所有视口的列表。像这样:

这样用户就可以在 WPF 中的列表框(此处未显示)中将多个视口相互对齐。我有以下内容:

这让我将所有工作表上的所有视口作为列表对象。但我现在想按上述方式格式化此列表。我尝试了以下方法:

我相信我没有遍历整个列表列表。更不用说我是python的新手了。任何帮助都将不胜感激。谢谢!

0 投票
1 回答
59 浏览

python - 在 for 循环期间创建嵌套字典

我在 for 循环期间创建了一个列表,效果很好,但我想创建一个字典。

输出如下:

哪个结构是完美的,但我希望它抓住一切,因为它在执行 for 循环时似乎停止在第一个循环上。这是为什么?我怎样才能让它保持循环?

我尝试了各种方法,例如创建另一个名为“Keys”的键列表和名为“viewPortList”的值列表,例如:

但是我总是遇到同样的问题,我无法遍历所有元素。为了全面披露,当我创建一个列表时,我是成功的。这就是它的样子。

哪个工作正常并打印以下内容(只是长列表的一部分)

但我想要一本字典。任何帮助,将不胜感激。谢谢!