如何从Navisworks会话中使用IronPython获取模型信息? (没有NavisPythonShell)

时间:2019-04-13 19:32:11

标签: ironpython autodesk-navisworks

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

我没有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”

1 个答案:

答案 0 :(得分:0)

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

仅使用Automation API,您可以做的是打开文件,追加文件,合并文件等。要获得更多功能,例如访问活动文档,操纵模型,您将需要编写插件,并在Automation中调用该插件。由NavisworksApplication.ExecuteAddInPlugin

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