如何使用 PyCharm 导入 Revit 和 pyRevit 库?

How to import Revit and pyRevit librairies with PyCharm?

这是我在这里的第一个问题,希望不会是我的最后一个问题。因为我已经使用了很多人的一些答案,所以我想首先感谢大家。

上下文:我正在为 Revit 开发一个模块,为此,我正在使用 pyRevit 与 Revit 进行交换 API。 pyRevit 允许我在 Python 中编码,我使用 PyCharm IDE.

问题: 当我尝试导入库时,出现 "Unresolved reference" 错误消息。否则,该模块已经在 Revit 上运行,因此使用它时导入顺利。

我已经尝试将文件夹的路径添加到 Files --> Settings --> Project Interpreter --> Interpreter path,然后将文件夹标记为源文件夹(右键单击 --> Mark Directory As -->源根),然后使缓存无效/重新启动。 路径是:

C:\Users\***\AppData\Roaming\pyRevit-Master\bin
C:\Program Files\Autodesk\Revit 2019

我也尝试在文件 --> 设置 --> 项目结构 --> 添加内容根目录中添加这些文件夹。完成后,它们会出现在项目根目录中。在这里,右侧是失败的导入(没有足够的声誉 post 图片所以这里是 link)

Project structure and red imports

因此所有内容都被标记为 "Unresolved Reference",甚至是系统导入。 我怎样才能帮助 Pycharm 正确读取这些库,删除所有导入错误并简化自动完成和开发?我想知道 Revit 库是否受到保护,但在这种情况下,它至少应该与 pyRevit 和系统一起工作。

如有任何帮助,我们将不胜感激。

更新:在将 Pyrevit 文件夹添加到项目结构并将其标记为源文件夹并单击文件 --> 无效 caches/restart 后,pyRevit 的导入就可以了。好消息。

对于 Revit 文件夹(以及 Microsoft .NET 库,如 mscorlib(对于列表)),我认为它失败了,因为它们是从 C# 语言编译的。有没有办法在 C# 中使用 Python IDE 导入库,或者至少识别内部结构和函数名称?

https://github.com/gtalarico/ironpython-stubs

尝试使用这些存根与 clr、revit 等自动完成。但是,它不包括 pyRevit 库。

在 GitHub link 发布的文件夹中找到存根并下载。然后在 PyCharm 项目结构中引用该文件夹。

存根中似乎有很多SyntaxError。你改正了吗?如果不是,您是如何在不更正文件的情况下使文件工作的?

语法错误示例:

File "C:\ironpython-stubs\release\stubs\System\__init__.py", line 7366
None = None

由于您使用的是 pyrevit,因此内置了一个存根构建器 - 这比 ironpython-stubs 更完整,并且可以针对您使用的 Revit 版本完成。

您可以 运行 在您自己的扩展中使用此脚本,它应该可以工作。 (注意 - 我已经通过 GitHub 上的安装程序安装了 pyRevit)

https://github.com/eirannejad/pyRevit/blob/7eb0a4e1f6d2509735b2da80168b1c8b0e5b2f20/extensions/pyRevitDevTools.extension/pyRevitDev.tab/Developer%20Tools.panel/Generate%20API%20Stubs.pushbutton/script.py

在您的解释器中添加生成的文件,您将拥有所有内容的存根。不过我会注意到,有时解释器不会理解你有什么样的元素(例如,即使你已经通过 DB.FilteredElementCollector.OfClass(DB.FabricationPart).ToElements()