I am assuming you the layout is flat data or shapes, not instances or pcells
This might get you some info to start.
load the script
Select your shapes then excute the script.
procedure(printPts()
let( (type
(cnt 0)
(objList geGetSelSet()))
foreach(obj objList
++cnt
type = obj~>objType
case(type
("inst"
printf("%s %L at %L\n" type obj~>xy))
("rect"
printf("%s on layer %L at %L\n" type obj~>lpp obj~>bBox))
("polygon"
printf("%s on layer %L at %L\n" type obj~>lpp obj~>points))
("path"
printf("%s on layer %L at %L\n" type obj~>lpp obj~>points))
("pathSeg"
printf("%s on layer %L at %L\n" type obj~>lpp list(obj~>beginPt obj~>endPt)))
("label"
printf("%s on layer %L at %L\n" type obj~>lpp obj~>xy))
(t printf("%s not defined\n" type))
)
)
printf("%n objects selected\n" cnt)
); end of let
); end of printPts
You can find more about the objects from selecting an object/s then executing in the ciw the command geGetSelSet()~>? this will output the variables to the object or geGetSelSet()~>?? will output the variables and values.
psill