here's a solution that I've used. It can be used to reveal a shape path, or as a way to add a smooth fade-out on the stroke effect as-is:
Create your dotted path using the pen tool (or whatever you like),
then use the path to create a mask on a new adjustment layer. I use
an expression so that I can dynamically change the path - just
alt-click the stopwatch on the Mask Path property and drag the
pick-whip to the shape path:
Apply the stroke effect to the mask path on the adjustment layer.
We'll be using the adjustment layer as an alpha matte for your
dotted line layer, but best to do that later so you can see what
you're doing. Set the Brush Size property so that the brush
covers the dotted line layer. Set the Paint Style property to
Animate the Start and / or End property for the stroke
effect to animate the reveal / disappearance of your stroke. Now
this creates a hard start and end, so what you have to do is apply
the Echo effect — Effects>Time>Echo. set the decay to
something less than 1. You may want to increase the Number of
Echos and decrease the Echo Time to make the fade
Now set your alpha matte on the shape layer et Voila!
If you want the stroke to fade in as well as out, you'll need to add another echo, but with the echo time set to a positive value (or is it negative) so that you're echoing from the future. You thought it was slow with just one echo effect applied? You're in for a world of waiting now! The reason it's so slow is that it has to compute the value for the previous frames for each of the echos, so for every frame you're rendering ten, twenty frames. That's why you might want to only ramp up the number of echos when it's time to send it off to the render.
Caveat: if the stroke crosses itself the alpha matte will reveal areas out of sequence. You can manually mask the offending areas out, or split the stroke path up into separate layers, this works, but it's a world of tediousness, I know from experience - I used it on an animation that featured hand-written text slowly fading in. Also Echo is dog slow, so you may want to ramp the settings up to final quality only once you done everything else you want to in the comp.
out-of sequence image appearing.
You can mitigate this by making sure that your brush size is as small as possible:
But if that's still a problem you can spit the stroke: add an extra point somewhere between the overlapping parts of the stroke
Now duplicate the shape layer and the adjustment layer (note that I've coloured the duplicated shape layer yellow)
Then you delete the points at either side of the point you created on each layer
and the other.
Make sure you adjust the expression in your duplicated adjustment layer to reflect the name of the new stroke layer - if it was
thisComp.layer("Shape Layer **1**").content("Shape 1").content("Path 1").path you'll have to use the pick-whip or manually correct it to
thisComp.layer("Shape Layer **2**").content("Shape 1").content("Path 1").path.
Now you just have to offset the keyframes in your adjustment layer so that one starts when the last one stops. You might need to juggle the position of the middle keyframes to deal with the echoes.
and you have a correctly revealing crossing: