How to list all Schemas in a RVT and then to Delete them

Here an example

import clr
import sys
import System
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
uidoc = uiapp.ActiveUIDocument
app = uiapp.Application
sdkNumber = int(app.VersionNumber)

clr.AddReference('RevitAPI')
from Autodesk.Revit.DB.ExtensibleStorage import Schema

lstSchemas_to_del = [s for s in Schema.ListSchemas() if s.SchemaName in IN[0]]

TransactionManager.Instance.EnsureInTransaction(doc)

for schema in lstSchemas_to_del:
	if sdkNumber < 2021:
		Schema.EraseSchemaAndAllEntities(schema, True)
	else:
		doc.EraseSchemaAndAllEntities(schema)

TransactionManager.Instance.TransactionTaskDone()

Note

look like a GPT answer

Schema.Lookup() need a Guid as parameter not the schema name

2 Likes