Thanks for replying, Jeremy.
Just some background information - I've been programming for a couple years but I am new to Revit.
To clarify, I am talking about the void and non-void "forms" under the Create tab of Revit. https://snag.gy/c6gfvs.jpg
The void forms cut away from the non-void forms.
When using RevitLookup on a void, I think it's the same as a solid except that it has "Is solid" marked to false. This is also in the api docs http://www.revitapidocs.com/2016/8d62241f-2efe-6581-4a70-83a0be66413c.htm
I looked at some of the SetoutPoints code but it seems like it just finds all vertices of all solids and places a marker on them? I don't need the corners of each individual solid but I need the corners of the final solid, taking into account all void and solid (non-void) geometries. If I have the corners of the final solid, I can easily find out what is the one that is the lowest and most left. So in the RevitLookup picture above, I don't need the vertices of each individual form, but I the corners of the merged solid (as if it was only one solid and not a combination of solids and voids).
There are two ways I can think of doing this. One way is if there is a simple way in Revit to merge all forms (void or solid) into a single solid form, I can then find the vertex that is the lowest and most left by looping through all vertices.
If that is not possible, I would need some algorithm that looks through all forms and finds out the vertices of the merged solid and then find the one that is lowest and most left. This would be easy if all forms were solid, because all vertices actually exist. But it's harder with void forms because they cut away at solids and can create new vertices where an edge exists, and a vertex may or may not exist depending on what gets voided out.
Here is a basic example I drew in microsoft paint (haha):
The red box is void and the black one is solid. I want to select the green vertex as lower left. The black box with the red face on the bottom is the final, merged solid. Notice how the green vertex is not actually any vertex on the individual forms. Notice how the vertex gets formed on the edge of the black solid.
This example does not cover all cases. Imagine a cookie cutter type example, where a void form with a hole in it shapes a solid by cutting out the excess solid. In this case, the vertex would be formed on the void form edge (instead of the solid form edge like above).
I tried a little at thinking of an algorithm but I'm not sure if there is a simpler way with the API. So far, I only thought of a 2D algorithm (not 3D), but it's still not complete and I would have to be able to tell if a point is inside a polygon - http://www.geeksforgeeks.org/how-to-check-if-a-given-point-lies-inside-a-polygon/. In 3D, I would have to be able to tell if a point is inside a polyhedron (a geometry or void/solid form). Not sure if Revit API can help me with this.