Hey All,
Has anyone else had issues with the SteamNodes Package with the Tool.AssemblyViews node in 2017? It doesn’t give any warning/yellow box, just results in a null value.
Investigating the python script, it was written for 1.0, but I would assume that it would still work with 1.3?
Script extract below.
> #python nodes in dynamo 1.0
> #proposed by Julien Benoit @jbenoit44
> #http://aecuandme.wordpress.com/
> import clr
> clr.AddReference('ProtoGeometry')
> from Autodesk.DesignScript.Geometry import *
> # Import ToDSType(bool) extension method
> clr.AddReference("RevitNodes")
> import Revit
> clr.ImportExtensions(Revit.Elements)
> # Import geometry conversion extension methods
> clr.ImportExtensions(Revit.GeometryConversion)
> # Import DocumentManager and TransactionManager
> clr.AddReference("RevitServices")
> import RevitServices
> from RevitServices.Persistence import DocumentManager
> from RevitServices.Transactions import TransactionManager
> from System.Collections.Generic import *
> # Import RevitAPI
> clr.AddReference("RevitAPI")
> import Autodesk
> from Autodesk.Revit.DB import *
>
> doc = DocumentManager.Instance.CurrentDBDocument
> uiapp = DocumentManager.Instance.CurrentUIApplication
> app = uiapp.Application
> uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
>
> elt = []
> for i in IN[0]:
> elt.append(UnwrapElement(i).Id)
>
> tb=UnwrapElement(IN[13]).Id
>
> catid=doc.GetElement(elt[0]).Category.Id
>
> collection=List[ElementId](elt)
> viewlist=[]
> schedlist=[]
> sheetlist=[]
> # Start Transaction
> TransactionManager.Instance.EnsureInTransaction(doc)
> for a in elt:
> views=[]
> if IN[1] == 1:
> v=AssemblyViewUtils.Create3DOrthographic(doc,a)
> views.append(v)
> if IN[2] == 1:
> ds2=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.HorizontalDetail)
> views.append(ds2)
> if IN[3] == 1:
> ds3=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationTop)
> views.append(ds3)
> if IN[4] == 1:
> ds4=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationBottom)
> views.append(ds4)
> if IN[5] == 1:
> ds5=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationLeft)
> views.append(ds5)
> if IN[6] == 1:
> ds6=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationRight)
> views.append(ds6)
> if IN[7] == 1:
> ds7=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationFront)
> views.append(ds7)
> if IN[8] == 1:
> ds8=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationBack)
> views.append(ds8)
> if IN[9] == 1:
> ds9=AssemblyViewUtils.CreatePartList(doc,a)
> views.append(ds9)
> if IN[10] == 1:
> ds10=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.DetailSectionA)
> views.append(ds10)
> if IN[11] == 1:
> ds11=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.DetailSectionB)
> views.append(ds11)
> viewlist.append(views)
> if IN[12] == 1:
> sh=AssemblyViewUtils.CreateSheet(doc,a,tb)
> for v in views:
> if Viewport.CanAddViewToSheet(doc,sh.Id,v.Id) == 1:
> Viewport.Create(doc,sh.Id,v.Id,XYZ(0,0,0))
> else:
> ScheduleSheetInstance.Create(doc,sh.Id,v.Id,XYZ(0,0,0))
> sheetlist.append(sh)
> doc.Regenerate()
> # End Transaction
> TransactionManager.Instance.TransactionTaskDone()
>
> OUT=viewlist,sheetlist