ok ok ok....
let's tae it from the top.
yes, there are effects and AEGPs.
effects are applied to layers, and AEGPs serve as "facilities" for general
purposes.
the suites offer both access to AE's opaque data, as well as some
processing tools.
AEGP_GetNewStreamValue() is as example of a suite function accessing opaque
data.
AEGP_TransformWorld() is an example of a suite offering some processing
tools.
AEGP_GetEffectLayer() is an example for a suite giving utilities.
(PF stands for "Plug-in Filter", AEGP stand for "After Effects General
Plugin)
now,
most of these suites, can be used on both effects and AEGPs. really AE
doesn't care.
you also don't have to get a plug-in id to use functions that take it as an
argument. you can just pass a NULL.
some suite functions, only apply either AEGPs or effects specifically. that
doesn't mean you can't call the function from the wrong sort of plug-in,
but you'll requite valid data that's not normally available to the wrong
sort.
for example, calling AEGP_GetEffectLayer() needs the effect_ref, available
only in an effect's in_data. if you pass that data to an AEGP, you can call
this function, as long as that data is valid. (and it's valid only during a
call to the effect)
idle_hook, for instance, can only be assigned to an AEGP (to the best of my
knowledge).
even if you get it to call your effect (which i don't think is possible),
the call won't be associated with any specific instance.
the closest you can get, is creating a custom comp window UI, which while
the effect is selected in the effects window, will call your effect at idle
times with an "event".
but perhaps we're diving in too deep.
what exactly are your needs for causing a render?
what is the nature of that separate thread which decides on the re-render?
do you have to have an IMMEDIATE re-render? or do you just want to tell an
effect it needs to change?