06. MicroStation Python常见问题


有关MicroStation Python

MicroStation的Python API是MicroStation C++API的薄包装。如果您了解了C++API使用DGN文件和MicroStation的核心概念,那学习Python API将会得心应手。

从哪里能找到MicroStation Python API的文档?

MIcroStation Python开发者文档位于:MicroStation Python API   【注:需要登录网站后才能看到帮助内容】

从哪里能找到MicroStation Python示例? 

Python示例可从如下位置找到:

C:\ProgramData\Bentley\PowerplatformPython\Examples\

Python管理器用户界面在哪里?

Python管理器 对话框位于Drawing(绘图)工作流的Utilities(实用工具)卡片下。

如何创建一个Python项目?

在Python管理器对话框的工具栏中点击Create Python Project(创建Python项目) 图标。 选择一个您喜欢的目录来存储Python项目/文件。输入文件名,然后单击"保存"按钮。

如何装载一个Python项目?

在Python管理器对话框的工具栏中点击Open a Python project from disc(从磁盘打开Python项目) 图标。然后从软件自带的目录下装载Python示例项目。

如何运行/执行一个Python文件?

从Python管理器中选择一个装载的Python项目,点击工具栏中的Run Python File(运行Python文件) 图标。

如何用单个命令装载并运行一个Python文件?

在键入窗口中输入PYTHON LOAD <文件名>

例如:

PYTHON LOAD DrawLine.py

可以在MicroStation之外运行MicroStation Python脚本吗?即,从Visual Studio Code或其它Python编辑器中运行?

不可以。MicroStation Python脚本需要仅随MicroStation提供的库。因此,脚本需要从MicroStation Python管理器或MicroStation中的键入命令窗口中运行。

如何编辑Python文件?

编辑器菜单允许用户选择要使用的首选IDE(集成开发环境)。从Python管理器中选择加载的Python项目,然后从可用列表中选择首选IDE。
注意:机器上安装的IDE会自动添加到IDE列表中。

如何录制宏?

录制宏并将其升级到Python也是在MicroStation中开始使用Python的快速方法。这在录制宏文档部分有更详细的概述。录制宏的过程将捕获视图中的点、鼠标按钮和按键,以在MicroStation中执行功能。

可以使用Python访问MicroStation中的任何功能吗?

还不能。Bentley的MSPython开发者们目前正在努力暴露MicroStation中的每个功能,所以请耐心等待。 

如何知道目前暴露了哪些功能?

如果一个功能在示例脚本中使用了,那它就是暴露了的。如果一个功能在MicroStation Python API 文档中列出了,那它就是暴露了的。

MicroStation Python API当前的支持级别

MicroStation Python当前(2024版MicroStation)不支持以下功能:

  1. MicroStation对话框功能。要想访问mdlDialog_类函数,请用TkInter或PyQt作为UX(用户体验)框架。
  2. MicroStation打印API。这将在未来的版本中得到支持。
  3. MicroStation API回调。在未来的版本中,将支持访问mdlSystem_函数和回调函数。
  4. 在MstnPlatform层调用MicroStation API。许多mdl开头的函数在API的其他地方都有。如果您对某个函数有特殊需求,请在MicroStation编程论坛网站上提交。

遇到MicroStation Python API问题怎么办?

如果您有任何疑问或问题,寻求帮助的最佳方式是通过Bentley社区网站。从搜索开始,查找最新文档和/或现有答案。如果无法找到解决问题的信息,请考虑将编程问题发布到MicroStation编程论坛网站。或申请加入Bentley开发人员网络计划(BDN)寻求更高级的专业服务。

MicroStation交付的Python版本是多少?

随MicroStation发布的是Python 3.12版本。MicroStation Python库也针对此版本进行了构建和测试。
虽然可以在MicroStation上使用不同版本的Python,但前提是它是相同的主版本,不建议使用。如果您必须使用一个不同版本的Python,则需要如下最少数量的软件包来支持MicroStation Python API正常工作的能力。它们是:
Debugpy、et-xmlfile、matplotlib、NumPy、openpyxl、pandas、PyQt5、pytest、pywin32

Python和IronPython实现的区别

IronPython是一个用C#编写的Python实现,针对微软的.NET框架。它使用.NET虚拟机,即公共语言运行库。IronPython可以使用.NET框架和Python库等。.NET语言可以非常有效地使用Python代码。
参考文献:

Python实现

Iron Python

如何检查MicroStation安装的Python版本? 

在安装目录中键入Python --version或Python -V以显示交付的版本号。

C:\ProgramData\Bentley\PowerPlatformPython\python>Python -V
Python 3.12.3

如何列出MicroStation安装的Python库? 

在安装目录中键入python -m pip list。

C:\ProgramData\Bentley\PowerPlatformPython\python>python -m pip list
Package           Version
----------------- ------------
asttokens         2.2.1
attrs             23.2.0
backcall          0.2.0
colorama          0.4.6
comm              0.1.3
comtypes          1.1.10
contourpy         1.2.0
cycler            0.10.0
debugpy           1.8.1
decorator         5.1.1
et-xmlfile        1.1.0
executing         1.2.0
fonttools         4.49.0
impi-rt           2021.10.0
iniconfig         1.1.1
ipykernel         6.22.0
ipython           8.12.1
ipython-genutils  0.2.0
jedi              0.18.2
jupyter_client    8.2.0
jupyter_core      5.3.0
kiwisolver        1.4.5
matplotlib        3.8.4
matplotlib-inline 0.1.6
nest-asyncio      1.5.6
numpy             1.26.4
openpyxl          3.1.2
packaging         24.0
pandas            2.2.2
parso             0.8.3
pickleshare       0.7.5
pillow            10.2.0
pip               23.3.1
platformdirs      4.2.0
pluggy            1.0.0
prompt-toolkit    3.0.38
psutil            5.9.8
pure-eval         0.2.2
Pygments          2.15.1
pyparsing         3.0.9
PyQt5-commercial  5.15.10
PyQt5-Qt5         5.15.2
PyQt5-sip         12.13.0
pyqtgraph         0.13.3
pytest            7.2.0
python-dateutil   2.8.2
pytz              2023.3.post1
pywin32           306
pyzmq             25.1.2
qtconsole         5.4.2
QtPy              2.3.1
setuptools        69.1.0
six               1.16.0
stack-data        0.6.2
tornado           6.3.1
traitlets         5.9.0
tzdata            2024.1
wcwidth           0.2.6
wheel             0.43.0

 

如何安装项目所需的其他Python库? 

比如,要安装geojson库,可以在安装目录下,键入python -m pip install geojson。

C:\ProgramData\Bentley\PowerPlatformPython\python>python -m pip install geojson

注意:安装新库时要确保不会扰乱现有或已交付的库。

如何找到Python包的安装位置?

在安装目录下,键入python -m pip show pandas可找到pandas库的安装位置。

C:\ProgramData\Bentley\PowerPlatformPython\python>python -m pip show pandas

如何在我的机器中定位和显示Python可执行文件的路径?

在安装目录下,键入where python。

C:\ProgramData\Bentley\PowerPlatformPython\python>where python

注意: Where是一个Windows的命令

MSPython的IntelliSense(智能感知)文件位于何处?

VSCode编辑器所需的.PYI智能感知文件在如下位置:

C:\ProgramData\Bentley\PowerPlatformPython\Examples\Microstation\Intellisense\

有关在VSCode中设置智能感知的说明,请参阅MicroStation Python API 文档中标题为Using VS Code IntelliSense with MicroStation Python的部分。

如何消除VSCode中导入库语句下的黄色波浪线?

在VSCode的settings.json中做如下配置:

 "python.analysis.stubPath": "C:/ProgramData/Bentley/PowerPlatformPython/Examples/MicroStation/Intellisense",
 "python.analysis.extraPaths": ["C:/Program Files/Bentley/MicroStation 2024/MicroStation"],