Name Error: Autodesk not defined

Hi there,

I amt trying to run Naviswork via Dynamo, similar to Dynawork node. I need to do this to add some customized options to it. I can successfully run it from Visual Studio as a C language program. Though, when I try to do the same w.r.t. Python it is giving me an error: ‘Autodesk’ no defined. Any suggestions?

image

import clr
import sys
pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib'
nav_path = r'C:\Program Files\Autodesk\Navisworks Manage 2020'
sys.path.append(pyt_path)
import os
import io
import System

try: 
	clr.AddReference('ProtoGeometry')
	from Autodesk.Revit.DB import *
	from Autodesk.Revit.DB.Structure import*
except: pass
	
try: #try to import All Revit dependencies
	clr.AddReference('RevitAPIUI')
	from  Autodesk.Revit.UI import Selection , TaskDialog 
	from  Autodesk.Revit.UI.Selection import ISelectionFilter
	clr.AddReference('RevitNodes')
	import Revit
	clr.ImportExtensions(Revit.Elements)
	clr.ImportExtensions(Revit.GeometryConversion)
	
	clr.AddReference('RevitServices')
	from RevitServices.Persistence import DocumentManager
	doc = DocumentManager.Instance.CurrentDBDocument
	uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
	
	clr.AddReference('RevitAPI')
	try:
		from Autodesk.Revit.DB import ImageImportOptions	
	except:
		from Autodesk.Revit.DB import ImageTypeOptions , ImageType, ImagePlacementOptions , ImageInstance
	from Autodesk.Revit.DB import FilteredElementCollector , Transaction, View , ViewType , ViewFamily, ViewDrafting, ViewFamilyType, Element, ElementId , FamilyInstance , Document , XYZ, BoxPlacement, UnitUtils
					
	try: #Naviswork dependencies
		from nav_path import *
		#from nav_path import Autodesk
		clr.AddReference('Autodesk.Navisworks.Api')
		clr.AddReference('Autodesk.Navisworks.Automation')
		clr.AddReference('Autodesk.Navisworks.Controls')
		from Autodesk.Navisworks.Api import *
	except: pass
except: pass

filepath_nv = IN[0]
nv_visbility = IN[1]


nwapp = Autodesk.Navisworks.Api.Automation.NavisworksApplication();

doc = nwapp.ActiveDocument

OUT = doc

You are trying to import the Navisworks and Revit api, but if it fails just passing onto the next aspect of the code. Instead you need to surface the error, or simply remove the try/except statement (which is the preferable option in my opinion).

2 Likes

Hello,

try replace this

with

nwapp = Automation.NavisworksApplication()

this article can help you

1 Like

This works! @jacob.small Thank you!

This helps, thank you for the link @c.poupin !