Get an element from a document by an id

It is possible to get a GoObject from a GoDocument by an ID that is unique?
I tried using GoDocument.PickObjects Method but this pick the element by the position and pick the ‘top most’ one.

Not all GoObjects have identifiers. Most never need them.
But if you want GoDocument to keep track of some of them for you, you can set GoDocument.MaintainsPartID to true. Then all GoObjects that implement IGoIdentifiablePart get unique PartID property values when they are added to the document. Use GoDocument.FindPart to look up an identifier in the document’s internal hash table mapping ints to IGoIdentifiableParts.
The most general answer is to implement your own identification mechanisms and policies. Depending on whether you can use integers or strings or more complicated structures, you might be able to use IGoGraphPart.UserFlags or IGoGraphPart.UserObject. Or you can add your own fields.