1

我如何使用IronPython的 NET API 从Navisworks .NWD 文件中获取信息(主要是每个项目的名称,以确认所有部件都已建模)。

我没有使用 C# 但使用 python 的经验,所以我想使用 IronPython。

我知道 NavisPythonShell,但经过一些尝试,它对我不起作用。插件运行后,Navisworks 立即崩溃。

无论如何,我使用 IronPython 取得了一些进步。Navisworks 打开,加载文件并关闭,但使用 Autodesk.Navisworks.Api.Application.ActiveDocument,它只有 NoneType“对象”。

import sys, clr
navis_path = r'C:\Program Files\Autodesk\Navisworks Manage 2017'
nw_model = r'C:\Users\myName\Client\navis\nodel.nwd' 
sys.path.append(navis_path)

clr.AddReference('Autodesk.Navisworks.Api')
clr.AddReference('Autodesk.Navisworks.Automation')
clr.AddReference('Autodesk.Navisworks.Controls')

from Autodesk.Navisworks.Api import *
from Autodesk.Navisworks.Api.Automation import *
from Autodesk.Navisworks.Api.Controls import *

nw = NavisworksApplication()
nw.Visible = True
nw.OpenFile(nw_model)

doc = Application.ActiveDocument

文档类型等于“NoneType”

4

1 回答 1

1

Autodesk.Navisworks.Api.Application可以在插件中访问。

仅使用自动化 API,您可以做的是打开文件、附加文件、合并文件等。对于访问活动文档、操作模型等更多功能,您需要编写一个插件,并在自动化中调用插件NavisworksApplication.ExecuteAddInPlugin

如果您只是想做一些批处理作业,.NET DocumentControl 也是一种选择。中有一个示例SDK\api\NET\examples\Controls\PublishFile,它可以像插件一样发布文件,您也可以通过 访问活动文档Autodesk.Navisworks.Api.Application.ActiveDocument

于 2019-09-29T13:24:03.920 回答