#ironpython #autodesk-navisworks
#ironpython #autodesk-navisworks
Вопрос:
Как я могу получить информацию из файла Navisworks .NWD, используя его NET API от IronPython (в основном, имя каждого элемента в orden, чтобы подтвердить, что все части уже смоделированы).
У меня нет опыта работы с C #, но с python, поэтому я хочу использовать IronPython.
Я знаю о NavisPythonShell, но после некоторых попыток у меня это не сработало. Navisworks разбился при запуске плагина.
В любом случае я получил некоторые успехи, используя IronPython. Navisworks открывается, загружает файл и закрывается, но с использованием Autodesk.Navisworks.Api.Application.ActiveDocument, он получил только нетипичный «объект».
import sys, clr
navis_path = r'C:Program FilesAutodeskNavisworks Manage 2017'
nw_model = r'C:UsersmyNameClientnavisnodel.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:
Autodesk.Navisworks.Api.Application
доступно в плагине.
Только с помощью API автоматизации вы можете открыть файл, добавить файл, объединить файл и т.д. Для получения дополнительных возможностей, таких как доступ к активному документу, управление моделью, вам нужно будет написать плагин и вызвать плагин в Automation by NavisworksApplication.ExecuteAddInPlugin
.
Хотя, если вы просто хотели выполнить какое-то пакетное задание, .NET DocumentControl также является вариантом. В нем есть образец SDKapiNETexamplesControlsPublishFile
, он может публиковать файл, как плагин, и вы также можете получить доступ к активному документу с помощью Autodesk.Navisworks.Api.Application.ActiveDocument
.