Я устал периодически искать отдельные команды по зоопарку скриптов, поэтому решил сделать общую страницу с блоками кода
Шапка скрипта
import clr
# Import the Revit API
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
# Import DocumentManager and TransactionManager
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
#Making windows
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *
from Autodesk.Revit.UI.Selection import *
uiapp = DocumentManager.Instance.CurrentUIApplication
uidoc = uiapp.ActiveUIDocument
doc = DocumentManager.Instance.CurrentDBDocument
element = UnwrapElement(IN[0])
Выбор нескольких элементов
# getting preselected elements
selection = uidoc.Selection.GetElementIds() #preselected elements ids
elements = doc.GetElement(i) for i in selection.GetElementIds()]
# choose elements
selection = uidoc.Selection.PickObjects(ObjectType.Element)
elements = [doc.GetElement(i) for i in selection]
Отрисовка простого окна с текстом
TaskDialog.Show('Заголовок', 'Основной текст')
Проведение транзакций для внесения изменений в модель
family_symbol_name = "_MAG Вывод"
family_symbol = None
collector = FilteredElementCollector(doc)
family_symbols = collector.OfClass(FamilySymbol).ToElements()
for symbol in family_symbols:
if symbol.FamilyName == family_symbol_name:
family_symbol = symbol
break
# Delete old Schedule
[doc.Delete(i.Id) for i in UnwrapElement(FilteredElementCollector(doc, schedule.Id).ToElements())]
# get schedule data
colTableData = schedule.GetTableData()
tsd = colTableData.GetSectionData(SectionType.Body)
#make a row
row = tsd.InsertRow(1)
row.LookupParameter('KT_Наименование и техническая характеристика').Set('2. Кабельно-проводниковая продукция')
Сбор всех элементов с активного вида с фильтрацией по категории
active_view = doc.ActiveView
elements = FilteredElementCollector(doc, active_view.Id).OfCategory(BuiltInCategory.OST_GenericAnnotation).WhereElementIsNotElementType()