Purge in Revit 23

The tips with the eTransmitForRevitDB library work with all versions.

purge_unsed

import clr
import sys
import System
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
import Autodesk.Revit.DB as DB

# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
sdkNumber = int(app.VersionNumber)

pf_path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFilesX86)
prf_path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles)

eTransmit = None
try:
    clr.AddReference('eTransmitForRevitDB')
    import eTransmitForRevitDB as eTransmit
except:
    path_etransmit = prf_path + '\\Autodesk\\eTransmit for Revit {}'.format(sdkNumber)
    if System.IO.Directory.Exists(path_etransmit):
        sys.path.append(path_etransmit)
        clr.AddReference('eTransmitForRevitDB')
        import eTransmitForRevitDB as eTransmit
        

def purgeUnsed(currentDoc):
    if eTransmit is not None:
        eTransmitUpgradeOMatic = eTransmit.eTransmitUpgradeOMatic(app)
        resultPurg = eTransmitUpgradeOMatic.purgeUnused(currentDoc)
        return resultPurg
    return "Failed"

OUT = purgeUnsed(doc)
3 Likes