If I have multiple AIS_Shapes sharing the same TShape then selecting an object in visualisation returns all objects sharing the TShape which makes it impossible to correctly obtain the correct selected shape.
i.e. behaves like it is returning all IsPartner() objects instead of IsSame().
Even more perplexing if you have:
obj = someAIS_Shape()
select shape and compare returned "shape" from the selection
The issue is in the location not passing == test.
When you examine the complete Location data (complete iteration data, power, gp_Trsf etc) both objects it appears identical!
Partial workaround for moment is to not share TShape handle which is inefficient.