├── BIMPlanet_Github.jpg ├── Dynamo_Python ├── BIMpl1_01_PythonTemplate.py ├── BIMpl1_02_DynamoLibraries.py ├── BIMpl1_03_AllElemOfCats.py ├── BIMpl1_04_AllElemOfCatsInView.py ├── BIMpl1_05_AllElemOfTypes.py ├── BIMpl1_06_AllElemOfTypesInView.py ├── BIMpl1_07_GetParValues.py ├── BIMpl1_08_SetParValues.py ├── BIMpl1_09_MaterialCreate.py ├── BIMpl1_10_WallTypeRename.py ├── BIMpl1_11_ViewSetWorksetVis.py └── BIMpl1_12_ElemSelectInRevit.py ├── LICENSE └── README.md /BIMPlanet_Github.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/architectBIM/BIMPlanet_RevitAPI/ffa63d0c111954745d912157a5ec5aa1760ce54e/BIMPlanet_Github.jpg -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_01_PythonTemplate.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Компактный мини-шаблон нода Python Script 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | import clr # Модуль для подгрузки .NET библиотек 8 | 9 | # Библиотеки Revit API 10 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 11 | clr.AddReference('RevitAPIUI') # Библиотека Revit API интерфейса 12 | from Autodesk.Revit.DB import * # Указать классы для импорта 13 | # from Autodesk.Revit.UI import * # Убрать решетку (если надо) и указать классы 14 | 15 | # Библиотеки Dynamo 16 | clr.AddReference('RevitNodes') # Конвертация элементов и геометрии 17 | import Revit # Расширяем исходные методы классов через ImportExtensions 18 | clr.ImportExtensions(Revit.GeometryConversion) 19 | clr.ImportExtensions(Revit.Elements) 20 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 21 | from RevitServices.Persistence import DocumentManager as DM # Менеджер документа 22 | from RevitServices.Transactions import TransactionManager as TM # Менеджер транзакций 23 | 24 | # Системные библиотеки 25 | import System # Работа с системными типами и структурами данных .NET 26 | from System.Collections.Generic import * # Можно конкретно указать List 27 | import sys # Настройки интерпретатора IronPython, путь к библиотекам 28 | sys.path.append(r'C:\Program Files (x86)\IronPython 2.7\Lib') 29 | 30 | # Документ и транзакции 31 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 32 | # uidoc = DM.Instance.CurrentUIApplication.ActiveUIDocument # Интерфейс 33 | TM.Instance.EnsureInTransaction(doc) # Открытие транзакции 34 | ### Действия внутри транзакции ### 35 | TM.Instance.TransactionTaskDone() # Закрытие транзакции 36 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_02_DynamoLibraries.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Шаблон подгрузки .NET библиотек для работы с нодами Dynamo внутри узла Python Script 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | import clr # Модуль для подгрузки .NET библиотек 7 | 8 | clr.AddReference('ProtoGeometry') # Классы, аналогичные нодам Dynamo вкладки Geometry 9 | from Autodesk.DesignScript.Geometry import * # Указать классы для импорта 10 | 11 | clr.AddReference('DSCoreNodes') # Классы, аналогичные базовым нодам Dynamo 12 | import DSCore # Импортирование пространства имен DSCore 13 | clr.ImportExtensions(DSCore) # Добавление дополнительных методов к текущим классам 14 | from DSCore import * # Указать классы для импорта 15 | 16 | clr.AddReference('RevitNodes') # Классы, аналогичные базовым нодам Dynamo 17 | import Revit # Импортирование пространства имен Revit 18 | clr.ImportExtensions(Revit.Elements) # Добавление дополнительных методов к текущим классам 19 | from Revit.Elements import * # Указать классы для импорта 20 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_03_AllElemOfCats.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Выборка элементов нескольких категорий через коллектор и цикл 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | import clr # Модуль для подгрузки .NET библиотек 8 | 9 | # Библиотеки Revit API 10 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 11 | from Autodesk.Revit.DB import * # Импорт всех классов 12 | 13 | # Библиотеки Dynamo 14 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 15 | from RevitServices.Persistence import DocumentManager as DM 16 | 17 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 18 | 19 | elems = [] # Создание пустого списка для будущих элементов 20 | 21 | # Написание строки с именами системных категорий через запятую. Расщепляем строку разделителем. 22 | catNames = 'OST_Walls,OST_Floors,OST_Rooms,OST_Doors'.split(',') 23 | # catNames = ['OST_Walls','OST_Floors','OST_Rooms'] # Можно просто через список строк 24 | 25 | for cn in catNames: # Создание цикла для получение элементов каждой из категорий данного списка 26 | exec('cat = BuiltInCategory.'+cn) # Исполнение кода на основе поданной строки 27 | # Добавляем элементы в список. Если на выходе нужен плоский список - заменяем append на extend 28 | elems.append(FilteredElementCollector(doc).OfCategory(cat).WhereElementIsNotElementType().ToElements()) 29 | # Заменить WhereElementIsNotElementType() на WhereElementIsElementType() для получения типоразмеров 30 | 31 | OUT = elems # Вывод элементов из узла Python Script 32 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_04_AllElemOfCatsInView.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Выборка элементов нескольких категорий на активном виде через фильтр 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | import clr # Модуль для подгрузки .NET библиотек 8 | 9 | # Библиотеки Revit API 10 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 11 | from Autodesk.Revit.DB import * # Импорт всех классов 12 | 13 | # Библиотеки Dynamo 14 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 15 | from RevitServices.Persistence import DocumentManager as DM # Класс по работе с документом Revit 16 | 17 | # Системные библиотеки 18 | import System # Работа с системными типами и структурами данных .NET 19 | from System.Collections.Generic import List # Импортируем класс типизированного списка 20 | 21 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 22 | 23 | cats = List[BuiltInCategory]() # Создание пустого типизированного списка c типом данных BuiltInCategory 24 | 25 | catNames = ['OST_Walls','OST_Floors','OST_Rooms'] # Список имен системных категорий через запятую 26 | 27 | for cn in catNames: # Создание цикла для добавления категорий в типизированный список 28 | exec('cat = BuiltInCategory.'+cn) # Исполнение кода на основе поданной строки 29 | cats.Add(cat) # Добавляем элементы в типизированный список методом Add 30 | 31 | # Создание фильтра. Меняем False на True, если надо исключить элементы, а не оставить их в коллекторе 32 | filter = ElementMulticategoryFilter(cats,False) 33 | # Получение элементов на активном виде с примененным фильтром по нескольким категориям 34 | elems = FilteredElementCollector(doc,doc.ActiveView.Id).WherePasses(filter).ToElements() 35 | 36 | OUT = elems # Вывод элементов из узла Python Script 37 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_05_AllElemOfTypes.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Выборка элементов нескольких классов через коллектор и цикл 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | 8 | import clr # Модуль для подгрузки .NET библиотек 9 | 10 | # Библиотеки Revit API 11 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 12 | from Autodesk.Revit.DB import * # Импорт всех классов 13 | 14 | # Библиотеки Dynamo 15 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 16 | from RevitServices.Persistence import DocumentManager as DM # Класс по работе с документом Revit 17 | 18 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 19 | 20 | elems = [] # Создание пустого списка для будущих элементов 21 | classes = [WallType,Floor,FamilyInstance] # Создание списка необходимых классов 22 | 23 | # Создание цикла для получение элементов каждой из категорий данного списка 24 | for cl in classes: 25 | 26 | # Добавляем элементы в список. Если на выходе нужен двухмерный список - заменяем extend на append 27 | elems.extend(FilteredElementCollector(doc).OfClass(cl).ToElements()) 28 | 29 | OUT = elems # Вывод элементов из узла Python Script 30 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_06_AllElemOfTypesInView.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Выборка элементов нескольких классов на активном виде через фильтр 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | import clr # Модуль для подгрузки .NET библиотек 8 | 9 | # Библиотеки Revit API 10 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 11 | from Autodesk.Revit.DB import * # Импорт всех классов 12 | 13 | # Библиотеки Dynamo 14 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 15 | from RevitServices.Persistence import DocumentManager as DM 16 | 17 | # Системные библиотеки 18 | import System # Работа с системными типами и структурами данных .NET 19 | from System import Type # Импорт класса Type, необходимого для создания типизированного списка классов 20 | from System.Collections.Generic import List # Импорт класса типизированного списка 21 | 22 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 23 | 24 | types = [FamilyInstance,Wall,Floor] # Создание списка необходимых классов 25 | typeList = List[Type]() # Создание пустого типизированного списка c типом данных Type (класс) 26 | 27 | for t in types: # Создание цикла для добавления классов в типизированный список 28 | typeList.Add(t) # Добавляем элементы в типизированный список методом Add 29 | 30 | # Создание фильтра. Меняем False на True, если надо исключить элементы, а не оставить их в коллекторе 31 | filter = ElementMulticlassFilter(typeList,False) 32 | # Получение элементов на активном виде с примененным фильтром по нескольким классам 33 | elems = FilteredElementCollector(doc,doc.ActiveView.Id).WherePasses(filter).ToElements() 34 | 35 | OUT = elems 36 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_07_GetParValues.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Методы получение параметров различными методами и для различных типов данных 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | import clr # Модуль для подгрузки .NET библиотек 8 | 9 | # Библиотеки Revit API 10 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 11 | from Autodesk.Revit.DB import * # Импорт всех классов 12 | 13 | # Библиотеки Dynamo 14 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 15 | from RevitServices.Persistence import DocumentManager as DM 16 | 17 | # Системные библиотеки 18 | import System # Работа с системными типами и структурами данных .NET 19 | from System import Guid # Импорт необходимого .NET класса для получения общего параметра по его Guid 20 | 21 | # Объекты Revit, полученные через Dynamo, необходимо разворачивать для работы с ними через Revit API 22 | elems = UnwrapElement(IN[0]) # Разворачивание списка элементов Revit 23 | vals = [] # Создание пустого списка для значений параметров 24 | 25 | # Документ и транзакции 26 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 27 | 28 | # Создание цикла для получения значений параметров нескольких элементов 29 | for el in elems: # Получение значений параметров различными методами и для различных типов данных 30 | 31 | # Получение параметра по имени. Возвращает все найденные параметры. Получение значения в виде ElementId 32 | level = doc.GetElement(el.GetParameters('Level')[0].AsElementId()) # GetElement() - объект по его Id 33 | # Получение параметров по системному имени. Получение значения в виде строки 34 | number = el.get_Parameter(BuiltInParameter.ROOM_NUMBER).AsString() 35 | # Получение параметров по Guid. Получение значения в виде целого числа 36 | stepik = el.get_Parameter(Guid('8d4e4384-2203-4066-b1b6-52c40c69eb15')).AsInteger() 37 | # Получение параметра по имени. Метод возвращает первый найденный параметр 38 | area = el.LookupParameter('Area').AsDouble()/(1/0.3048**2) # Получение значения в виде дробного числа 39 | # (1/0.3048**2) - перевод из квадратных футов в квадратные метры 40 | 41 | vals.append([level,number,stepik,area]) # Добавление полученных значений в список 42 | 43 | OUT = vals # Вывод значений из узла Python Script 44 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_08_SetParValues.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Присвоение значений параметров различных типов данных 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | import clr # Модуль для подгрузки .NET библиотек 8 | 9 | # Библиотеки Revit API 10 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 11 | from Autodesk.Revit.DB import * # Импорт всех классов 12 | 13 | # Системные библиотеки 14 | import System # Работа с системными типами и структурами данных .NET 15 | from System import Guid # Импорт необходимого .NET класса для получения общего параметра по его Guid 16 | 17 | # Библиотеки Dynamo 18 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 19 | from RevitServices.Persistence import DocumentManager as DM 20 | from RevitServices.Transactions import TransactionManager as TM 21 | 22 | # Задание сразу нескольких входных переменных через конструкцию List Comprehension 23 | elems,lev = [UnwrapElement(IN[i]) for i in range(2)] # В скобках - количество переменных 24 | # Документ и транзакции 25 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 26 | 27 | TM.Instance.EnsureInTransaction(doc) # Открытие транзакции 28 | 29 | for el in elems: # цикл для присвоения значений параметров всем элементам списка 30 | el.GetParameters('Upper Limit')[0].Set(lev.Id) # Присвоение нового уровня через ElementId 31 | el.get_Parameter(BuiltInParameter.ROOM_NUMBER).Set('No1') # Присвоение строки 32 | stepik = el.get_Parameter(Guid('8d4e4384-2203-4066-b1b6-52c40c69eb15')).Set(1) # Присвоение целого числа 33 | el.LookupParameter('Limit Offset').Set(1200.5/304.8) # Присвоение дробного числа (перевод футов в метры) 34 | 35 | TM.Instance.TransactionTaskDone() # Закрытие транзакции 36 | 37 | OUT = elems 38 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_09_MaterialCreate.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Создание материалов Revit 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | import clr # Модуль для подгрузки .NET библиотек 8 | 9 | # Библиотеки Revit API 10 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 11 | from Autodesk.Revit.DB import Color, Material # Необходимые классы для импорта 12 | 13 | # Библиотеки Dynamo 14 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 15 | from RevitServices.Persistence import DocumentManager as DM # Менеджер документа 16 | from RevitServices.Transactions import TransactionManager as TM # Менеджер транзакций 17 | 18 | # Входные переменные для числовых значений от 0 до 255 для каждого из трех каналов цветов 19 | red,green,blue = [IN[i] for i in range(3)] # В каждую переменную подается от двух и более значений 20 | 21 | mats = [] # Пустой список для будущих материалов 22 | 23 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 24 | 25 | TM.Instance.EnsureInTransaction(doc) # Открытие транзакции 26 | 27 | # Цикл, создающий материалы и присваивающий им соответствующие имена и значения цветов 28 | for i in range(len(red)): # Перебор индексов элементов на основе длины списка 29 | r,g,b = red[i],green[i],blue[i] # Получение текущих значений цветовых каналов для материала 30 | name = '_'.join(['Material',str(r),str(g),str(b)]) # Генерация имени материала 31 | mat = doc.GetElement(Material.Create(doc,name)) # Создание материалов 32 | color = Color(r,g,b) # Создание цвета 33 | mat.Color = color # Присвоение цвета материалу 34 | mats.append(mat) # Добавление материала в список 35 | 36 | TM.Instance.TransactionTaskDone() # Закрытие транзакции 37 | 38 | OUT = mats # Вывод созданных материалов из узла Python Script 39 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_10_WallTypeRename.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Переименование типоразмеров стен 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | import clr # Модуль для подгрузки .NET библиотек 8 | 9 | # Библиотеки Revit API 10 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 11 | from Autodesk.Revit.DB import * # Указать классы для импорта 12 | 13 | # Библиотеки Dynamo 14 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 15 | from RevitServices.Persistence import DocumentManager as DM # Менеджер документа 16 | from RevitServices.Transactions import TransactionManager as TM # Менеджер транзакций 17 | 18 | # Входные переменные с исходным фрагментом имени и текстом для его замены 19 | old,new = [str(IN[i]) for i in range (2)] 20 | 21 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 22 | 23 | wallTypes = FilteredElementCollector(doc).OfClass(WallType).ToElements() # Выборка типоразмеров стен 24 | 25 | # Получение списка имен типоразмеров 26 | names = [w.get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_NAME).AsString() for w in wallTypes] 27 | namesNew = [n.replace(old,new) for n in names] # Формирование списка новых имен 28 | 29 | TM.Instance.EnsureInTransaction(doc) # Открытие транзакции 30 | 31 | for t,n in zip(wallTypes,namesNew): # Цикл по переименованию типоразмеров 32 | t.Name = n # Присвоение типоразмеру нового имени 33 | 34 | TM.Instance.TransactionTaskDone() # Закрытие транзакции 35 | 36 | OUT = wallTypes # Вывод списка типоразмеров стен из узла Python Script 37 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_11_ViewSetWorksetVis.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Изменение настроек видимости рабочих наборов на видах 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | import clr # Модуль для подгрузки .NET библиотек 8 | 9 | # Библиотеки Revit API 10 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 11 | from Autodesk.Revit.DB import * # Указать классы для импорта 12 | 13 | # Библиотеки Dynamo 14 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 15 | from RevitServices.Persistence import DocumentManager as DM # Менеджер документа 16 | from RevitServices.Transactions import TransactionManager as TM # Менеджер транзакций 17 | 18 | views = [] # Пустой список для отфильтрованных видов 19 | 20 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 21 | 22 | # Полный список планов этажей и их шаблонов 23 | allViews = FilteredElementCollector(doc).OfClass(ViewPlan).ToElements() 24 | 25 | for view in allViews: # Цикл для фильтрации исходного списка видов и шаблонов 26 | if view!=None and not view.IsTemplate: # Исключение нулевых значений и шаблонов вида 27 | views.append(view) # Добавление видов, прошедших проверку, в новый список 28 | 29 | worksets = FilteredWorksetCollector(doc).OfKind(WorksetKind.UserWorkset) # Получение рабочих наборов 30 | 31 | TM.Instance.EnsureInTransaction(doc) # Открытие транзакции 32 | 33 | for v in views: # Цикл для поочередной обработки видов 34 | for ws in worksets: # Цикл для поочередной работы с каждым из рабочих наборов 35 | if 'BIM Planet' in ws.Name: # Проверка имени рабочего набора 36 | # Скрытие рабочего набора, прошедшего проверку, на виде 37 | v.SetWorksetVisibility(ws.Id, WorksetVisibility.Hidden) 38 | 39 | TM.Instance.TransactionTaskDone() # Закрытие транзакции 40 | 41 | OUT = # Вывод списка видов из узла Python Script 42 | -------------------------------------------------------------------------------- /Dynamo_Python/BIMpl1_12_ElemSelectInRevit.py: -------------------------------------------------------------------------------- 1 | """ 2 | BIM Planet No1. Знакомство с Dynamo (https://stepik.org/course/50129) 3 | Выделение списка элементов в интерфейсе Revit 4 | Copyright (c) 2019 Maxim Stepannikov, https://bimplanet.org 5 | """ 6 | 7 | import clr # Модуль для подгрузки .NET библиотек 8 | 9 | # Библиотеки Revit API 10 | clr.AddReference('RevitAPI') # Основная библиотека Revit API 11 | clr.AddReference('RevitAPIUI') # Библиотека Revit API интерфейса 12 | from Autodesk.Revit.DB import * # Импорт всех классов данного пространства имен 13 | 14 | clr.AddReference('RevitServices') # Работа с документом и транзакциями 15 | from RevitServices.Persistence import DocumentManager as DM # Менеджер документа 16 | 17 | # Системные библиотеки 18 | import System # Работа с системными типами и структурами данных .NET 19 | from System.Collections.Generic import List # Импорт класса типизированного списка 20 | 21 | doc = DM.Instance.CurrentDBDocument # Получение файла документа 22 | uidoc=DM.Instance.CurrentUIApplication.ActiveUIDocument # Получение файла документа пользовательского интерфейса 23 | 24 | # Выборка всех экземпляров стен в проекте, получение их в виде ElementId 25 | elemIds = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).WhereElementIsNotElementType().ToElementIds() 26 | 27 | uidoc.Selection.SetElementIds(List[ElementId](elemIds)) # Выделение элементов в интерфейсе Revit 28 | # ids = uidoc.Selection.GetElementIds() # Получение списка ElementId выделенных в интерфейсе Revit элементов 29 | 30 | OUT = [doc.GetElement(id) for id in elemIds] # Вывод списка выделенных элементов из узла Python Script 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Maxim Stepannikov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![BIMPlanetNo1_Logo](BIMPlanet_Github.jpg) 2 | --------------------------------------------------------------------------------