Question: [![enter image description here](https://i.stack.imgur.com/GdZn6.png)](https://i.stack.imgur.com/GdZn6.png)

I applied transparent because I wanted the roof to be transparent.
But even the shadows fade.
I want the roof shadow to be the same as the column shadow.

Answer: 
To make the roof transparent (or semi-transparent as you have it) but opaque in the shadows you can use the *Ray Depth* output of the *Light Path* node.

But, this gives you a value of 0 or 1 which in your case means your roof will be completely invisible but have a shadow, because for the camera the *Mix Shader* is using a factor of 0 (fully transparent) and for the shadow 1, so the *Toon BSDF* is only used to create the shadow.

So in order to keep it semi-transparent when the *Ray Depth* is 0, you can take a *Math* node to add the desired mix factor to this result, for example 0.6 as you are using here. Then to the camera the *Mix Shader* is set to 0.6 (semi-transparent) and 1.6 for the shadow (a value larger 1 is fully opaque). To avoid out-of-range values you could enable *Clamp* in the *Math* node but it's not necessary in this case.

My example (I just used a simple *Diffuse* instead of *Toon*):
[![transparent mix](https://i.stack.imgur.com/klW39.jpg)](https://i.stack.imgur.com/klW39.jpg)
A full shadow from a glass roof is physically incorrect, but it can probably be done. There is a node with Boolean outputs on wether the ray is actually coming straight from the camera or not. I think it’s called Ray Info but I’m not sure. Might be Light Path. Try configurations with that.