Delete view templates not in use

Hi @franciscusm ,

This should work :

import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import*
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

views = FilteredElementCollector(doc).OfClass(View)
appliedtemplates = [v.ViewTemplateId for v in views]
templates = [v.Id for v in views if v.IsTemplate == True]

toDelete = []
for t in templates:
	if t not in appliedtemplates:
		toDelete.append(t)

TransactionManager.Instance.EnsureInTransaction(doc)
for e in toDelete:
	doc.Delete(e)
TransactionManager.Instance.TransactionTaskDone()



OUT = '%d Template(s) deleted' %(len(toDelete))
15 Likes