I am creating event frames programatically using the SDK. After creating the event frame, I am pushing data into PI points(related to the event frame). My question is how does the framework link the event frame with the corresponding PI point data?
That really depends upon how you configured the event frame. Does the event frame have attributes referencing the primary element's PIPoints?
Let's say your primary referenced element has an attribute named "|Temperature". Then your event frame could have an attribute named "|Starting Temperature", which uses the PIPoint data reference and this relative point reference: .\Elements[.]|Temperature;TimeRangeMethod=StartTime
The above will dynamically fetch the temperature from the data archive as needed, which is fine for a value at a single instance in time. If you were performing aggregates on a PI point, you may also consider issuing a CaptureValues when the event frame is closed, that is to say when the EndTime is specified.
Retrieving data ...