Create Assembly views and sheets

Yes

did anyone get this script to work? Will they share how they did it or or the script.

Working in Revit 2022:

mine looks exactly like that and doesnt work?

Any suggestions? Using 2.12

got it working… Thanks

Maybe a little late but was having a lot of issues with the custom node so I just adjusted the inputs a bit and copied it into python script in dynamo. Didn’t have any issues after that ever and it was used often. On dynamo 2.6.1. Hope it will help someone.

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[1]).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[2] == 1:
		v=AssemblyViewUtils.Create3DOrthographic(doc,a)
		views.append(v)
	if IN[3] == 1:	
		ds2=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.HorizontalDetail)
		views.append(ds2)
	if IN[4] == 1:	
		ds3=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationTop)
		views.append(ds3)
	if IN[5] == 1:	
		ds4=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationBottom)
		views.append(ds4)
	if IN[6] == 1:	
		ds5=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationLeft)
		views.append(ds5)
	if IN[7] == 1:	
		ds6=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationRight)
		views.append(ds6)
	if IN[8] == 1:	
		ds7=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationFront)
		views.append(ds7)
	if IN[9] == 1:	
		ds8=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.ElevationBack)
		views.append(ds8)
	if IN[10] == 1:	
		ds9=AssemblyViewUtils.CreatePartList(doc,a)
		views.append(ds9)
	if IN[11] == 1:	
		ds10=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.DetailSectionA)
		views.append(ds10)
	if IN[12] == 1:	
		ds11=AssemblyViewUtils.CreateDetailSection(doc,a,AssemblyDetailViewOrientation.DetailSectionB)
		views.append(ds11)
	viewlist.append(views)
	if IN[13] == 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
6 Likes

hey! how did you get this to work? im really struggling

make sure the input for assembly is AssemblyInstance element