2016-04-21 5 views
1

Я новичок в Revit Api и ищу другой способ получить выделенный элемент, отличный от использования события холостого хода. Все чтение, которое я сделал, в основном на thebuidingcoder, говорит, что это единственный способ. Есть ли другой способ?Revit 2016 API «Выбор наблюдателя с использованием события на холостом ходу»

ответ

2

Это абсолютно не единственный способ. Выбор элемента не имеет ничего общего с событием Idling. Какая полная глупость!

Вы можете выбрать элемент интерактивно, используя метод Selection.PickObject.

Вы также можете извлечь элементы, предварительно выбранные до запуска команды из метода Selection.GetElementIds.

Если вы новичок в Revit API, первое, что вам нужно сделать, это работать с материалом, начатым с начала, особенно с учебниками DevTV и My First Revit Plugin.

что отвечает на этот вопрос твой сразу, и многое другое, кроме:

http://thebuildingcoder.typepad.com/blog/about-the-author.html#2

+0

Действительно. Я вижу три способа, каждый из которых имеет свои недостатки.1 -) использовать событие холостого хода. Не очень эффективно 2) использовать внешнюю команду. Это единственный способ добраться до Selection.PickObject, что означает, что пользователь должен сначала выбрать команду из панели ленты. 3-) используйте ленточный бар, вокруг которого будут только первые три элемента. Я ищу простой способ получить выбор без необходимости сначала щелкнуть по кнопке. – user1384026

0

Если вы пытаетесь сделать что-то, когда выбор изменения, вы можете захотеть, чтобы проверить следующее сообщение в блоге Джереми Таммиком: Element Selection Changed Event.

Основная идея - подписаться на мероприятие, а не на опрос (метод IdleEvent, который вы упомянули или используя таймер). Поскольку у Revit API на самом деле нет такого события, умный парень, давайте назовем его Vilo, придумал идею подписаться на PanelEvent группы Modify. Это гениально! Прочитайте сообщение в блоге для получения дополнительной информации (и пример кода!) О том, как это сделать!

+0

Thanx Daren. Этот пост заставил меня начать. Я не заинтересован в том, чтобы работать, так как он даст мне первые 3 выбора (согласно сообщению), однако это может быть единственная альтернатива тому, что пользователь не сначала нажимает на кнопку, пока я не получу выбор. – user1384026