Ok, should be fine. Different levels as in some tiles being higher than others is unproblematic. Buildings where both the inside of the building and the roof can be occupied will require you to change the loop limit or split up the processing up over multiple ticks as suggested for the map sizes you are going for.