Unless I misunderstood what you are after, there are not really anything you can do about it in this case. Whether you do it with a function or in the Timer trigger itself you will have to do it for each object, even though these might be part of the same family they ain't the same object meaning that Hotel and Casino are different objects, which you have to set individually. But you can do as you have done with calling a function to set the values as long as they are the same, if you don't want to look at so many actions. However to make your function work, you have change some things:
First you need to pick the ConstructionFloor object as well as the Rooms object.
And you have to change the way you pick to this:
Room Pick instance with UID Function.Param(0)
Since that is holding the UID that you pass to it in the call (Call "SetupRoom" (ConstructionFloor.UID <- This is Function.Param(0) since its the first parameter, the next parameter would be Function.Param(1) that's just the way it is, as C2 doesn't allow you to rename them.)
So in the Function SetupRoom you add these two lines instead of the one you have:
Room Pick instance with UID Function.Param(0)
ConstructionFloor Pick instance with UID Function.Param(0)
Then the function knows which elements you want to work with, and that should solve it for you.
The way you call the function itself is fine, you don't need to change that.