Скажу честно — раньше я думал, что работать с элементами в связанных моделях в Revit скриптом это как пытаться гладить кота через стекло: и вроде рядом, и вроде видно, но тронуть нельзя. Спойлер: можно. Главное — знать подход. Когда ты подключаешь связанный файл в Revit, он как бы и здесь, но как бы и не здесь. Это отдельный Document, а все элементы внутри — чужие. Поэтому простая конструкция типа: doc = __revit__.ActiveUIDocument.Document walls = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).ToElements() ...не покажет тебе ничего из связанного файла. Потому что doc — это твоя текущая модель. Все связи в Revit — это RevitLinkInstance. Чтобы добраться до чужих элементов, сначала надо найти сами инстансы связи: from Autodesk.Revit.DB import RevitLinkInstance link_instances = FilteredElementCollector(doc).OfClass(RevitLinkInstance).ToElements() А дальше магия: for link in link_instances: linked_doc = link.GetLinkDocument() # вот он, чужой doc — с ним и работаем Тепе
pyRevit. Как работать со связями через Revit API
13 апреля 202513 апр 2025
64
2 мин