If you’ve ever worked on a split level home or other structure you’ve probably noticed that Revit won’t let you freely change the grayed out level instance parameter of placed rooms the way you can with most other placed families.
My workaround to this problem always involved cutting the room from one view and pasting it into a view with the desired associated level. This method usually renumbers the room creating a duplicate “not placed” room in the room schedule and usually also requires the tagging of a room again.
If you’d like to keep a room number and the tag, consider grouping the room first. You should now have access to the level in your model group instance properties to re-host rooms at will. A room disguised as a group can apparently defy gravity.
EDIT (05.23.2014): Luke Johnson points out that this method does assign a new element ID.
EDIT (03.11.2015): Rather that cutting the room from one view and pasting it into a view with the desired associated level, which creates a duplicate room, consider deleting the room from one view and placing the same room again from your options bar dropdown of available rooms. Room Number and other parameters are still present, you lose your room tag and need to open another plan view, but you preserve your Element ID.