It can be reasoned by two meanings: place or time. Examples for "place": - *anbauen*: you put something __there__ (either to grow sth. (put the seed/plants in the ground) or to mount (add another piece), German: etwas da her**an** bauen. Examples for "time": - *ausbauen*: you __continue__ to build, means __out__ out of a certain time **until the end** - *anbraten*: you __start__ to roast (the beginning, German: **An**fang) - *ausbraten*: you __continue__ to roast, means __out__ out of a certain time **until the end** You see there is not logical rule which one is used, it has developed historically, you just have to learn the vocabulary. This answer just gives you a certain background for the reasons.