The answer sounds slightly odd to me, in British English. We would most likely say "... is very old", rather than "... is many years old". Sometimes DL sticks to a more literal translation, as in this case, and in others it is more idiomatic. I can never seem to work out which way it will go!
Зданию is dative. Why it's dative, I cannot tell you, but this is the standard case we use when stating the age of someone/something. This corresponds to something like "It's X years to Y" where "to Y" becomes dative in Russian.