DynamoDS / DynamoRevit

Dynamo Libraries for Revit
https://dynamobim.org
328 stars 184 forks source link

AGD-3139 Migrate requested selection nodes form GD to Revit #3013

Closed saintentropy closed 7 months ago

saintentropy commented 7 months ago

Purpose

The purpose of this PR is to migrate some of the nodes delivered with the GD Package to Revit as OOB nodes. User feedback has come in that in some scenarios, GD package is not present, and these nodes cannot be reliably utilized in shared graphs. The specific nodes included in this PR are:

  1. Pick Revit Elements, Similar to the Select Revit Element but utilizes the Multiple Selection UI (ie click multiple times and complete selection with finish button) vs Drag Select which limits precision.
  2. Select Family Instance
  3. Select Family Instances
  4. Pick Family Instances.

The family instance node serves as to fill a gap between the general Select (any) Model Element nodes which provide no filtering and the Selection By Category which may be two precise in some cases. The Family Instance selection nodes filter the selection in a more general way then the category filter can support. 

Ths PR also includes update icons for the new nodes as well as opportunistic updates for the missing Revit Selection icons.

image
image
image
image

Declarations

Check these if you believe they are true

Reviewers

@BogdanZavu @Mikhinja

FYIs

@twastvedt

BogdanZavu commented 7 months ago

Since we only have api tests which don't perform a real selection anyway and mostly our addition is just launching the pick editor on top of the base classes I think we can say we are covered. We can add something later if needed.

saintentropy commented 7 months ago

Hey @Mikhinja one thing we did notice that was a change in Revit independent of these new nodes is how the selection API that most of the Selection Nodes has changed. For all the single selection nodes there is a Ribbon selection UI that shows up which was not present before. The only oddity is that in the UI you can change the selection mode from single to multi... However the node itself still only "selects" the first item in the list of elements. Not a huge issue but something to be aware of. We did not think it warranted any behavior change on the node side. The contract for the single element selection nodes seems like it should remain the same.