Архитектору и проектировщику|Тепло- и звукоизоляция URSA.RU
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Как получить список выбранных элементов (Revit API)

Как получить список выбранных элементов (Revit API)

Ответ
Поиск в этой теме
Непрочитано 26.10.2018, 08:11 #1
Как получить список выбранных элементов (Revit API)
AlexBud
 
Студент
 
Регистрация: 26.01.2016
Сообщений: 73

Доброго времени суток! Занимаюсь разработкой небольшого приложения для Revit на C#. Суть заключается в следующем: пользователь выбирает элементы (плиты перекрытия) в Revit, затем запускает приложение где с выбранными ранее элементами осуществляются определенные действия. Другими словами мне необходимо получить элементы текущего выбора в качестве списка. Подскажите пожалуйста, как это можно осуществить? Заранее спасибо!
Просмотров: 2607
 
Непрочитано 26.10.2018, 08:47
1 | #2
YarUnderoaker

Негропроект, инженегр-конструктор
 
Регистрация: 16.02.2008
Черкассы
Сообщений: 824


Код для макроса уровня приложения
Код:
[Выделить все]
 
            ICollection<ElementId> elementSet = this.ActiveUIDocument.Selection.GetElementIds();
  	
            foreach(ElementId id in elementSet)
            {
            	Element e = doc.GetElement(id);
            	FamilyInstance fi = e as FamilyInstance;
                ...
            }
YarUnderoaker вне форума  
 
Автор темы   Непрочитано 26.10.2018, 13:36
#3
AlexBud

Студент
 
Регистрация: 26.01.2016
Сообщений: 73


YarUnderoaker, Спасибо! Попробовал сделать так:

ICollection<ElementId> selectedIds = uiApp.ActiveUIDocument.Selection.GetElementIds();
IList<Element> SelSlabs1 = null;
foreach (ElementId ElId in selectedIds)
{

Element Elem = doc.GetElement(ElId);
FamilyInstance fi = Elem as FamilyInstance;

SelSlabs1.Add(Elem);


}


Но не дает пройти дальше этого куска, пишет ошибку - "ссылка на объект не указывает на экземпляр объекта" (проверяю с помощью MessageBox). Пишу в VisualStudio. Сам кусок кода - часть метода Execute.

Последний раз редактировалось AlexBud, 26.10.2018 в 13:39. Причина: Дополнение информации
AlexBud вне форума  
 
Непрочитано 26.10.2018, 13:42
1 | #4
trir


 
Регистрация: 18.12.2010
Сообщений: 3,422


List<Element> SelSlabs1 = new List<Element>() ;
trir вне форума  
 
Автор темы   Непрочитано 26.10.2018, 13:51
#5
AlexBud

Студент
 
Регистрация: 26.01.2016
Сообщений: 73


trir, Огромное спасибо! Все сработало.
AlexBud вне форума  
 
Непрочитано 26.10.2018, 14:05
#6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,785


Цитата:
Сообщение от trir Посмотреть сообщение
List<Element> SelSlabs1 = new List<Element>() ;
в данном случае можно сразу указать емкость списка
List<Element> SelSlabs1 = new List<Element>(%Количество элементов%) ;
чтобы память лишний раз не распределять и не копировать внутри List
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Как получить список выбранных элементов (Revit API)

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить список доступных принтеров с помощью словарей zenija2007 LISP 2 02.06.2016 15:50
Lisp: как получить список загруженных шейпов? cj_lex LISP 2 01.02.2013 14:24
Как с помощью lisp получить список всех состояний видимости динамического блока crosandr LISP 4 11.04.2012 22:33
Как получить Список файлов в директории (поддиректорий) VBA sf Программирование 2 17.12.2010 12:06
Можно ли получить список реакторов объекта? kos Программирование 1 13.01.2005 13:28