"The roof is made of sugar."
Translation:Das Dach ist aus Zucker.
Yes, you can denote ownership with"von" but as nobody would believe that sugar really owned the roof it would not be understood as that. "Das Dach ist von Zucker" would be understood but to me it sounds really oldfashioned. You can think of "Das Dach ist aus Zucker" as a short version of "Das Dach ist aus Zucker gemacht."
There are a few things: 1. Your sentence lacks a preposition. 2. Machen is a transitive verb, so the past participle takes haben, not sein. 3. However, you are trying to make a passive sentence "is made of (by)". In German, the passive voice uses werden and not sein as the conjugated verb: "Das Dach wird aus Zucker gemacht." This is a different sentence though, meaning "The roof is being made", describing an action taking place (the actual act of constructing the roof). "Das Dach ist aus Zucker" is a "state of being" statement that simply states the material property of the roof and not an action.
I hope that makes sense.
In this context, the preposition "aus" is used to denote something "is (made) of" something. This also applies to geographical names too (z.B. Man ist/kommt aus Deutschland).
You can't use "von" because normally that denotes ownership, association (von Trapp) or a place where one came from that doesn't have geographical names. (e.g. von da vorne - "from there at front" ).