When I use Grasshopper, I deconstruct B-Reps. Traditionally I keep a List-Item component selected to highlight the item, and use a (temporary) number slider to find the face, edge and vertex items I want, and then put those into a panel list.
Is there a way to build the list by selecting the faces from within Rhino?
Or a better method?
It depends on what is your project and which surface you want to select.
List Item is not very consistent if your brep changes shape or number of faces. Usually it’s better to find a rule that describes the face accurately (the smallest/largest one, the highest/lowest one, …) but it’s not always possible.
What you can do is insert a Point in Rhino, reference that point in GH and automatically select the face closest to that point. When you want to change the face, you just have to move your point elsewhere, this would “feel” more like a selection.
I don’t think it’s possible to directly select a BrepFace with native components.
A Brep (exactly like a Mesh) is a mini Database containing 3 Object classes (V: Vertices, E: Edges, F: Faces) plus info about how these are related plus some other things. These 3 classes yield 3*3 Connectivity Trees like the ones shown below (These Trees have 2 dim paths if we are talking about Lists (or 3: Trees)) . That said some combos are rare in real-life.
Given the Connectivity … you can do anything imaginable as far as well defined query rules are established. Using solely a slider for selections … is a roll the bones thingy.
Using Classes you can do any Query imaginable: say, find non planar BrepFaces that conntain 3 inner Loops AND have 3 non linear Edges AND their area is in some Interval AND … blah, blah.