Answering to your first option for numbering, sorting points radially is quite simple by giving a centre and location points (see file attached and gif below).
The difficult part would be in your case to define which location point to consider per room, theoretically (considering only room point location) :
Group rooms per Bay (using Revit spaces, they can be group under Zones which would help, using rooms maybe worth adding a parameter to identify which bay they belong to? Good for scheduling later on as well ).
For each group > get all room locations and sort them by angle. In case two rooms have the same angle, I would group them by distance to centre and sort them descending, so the furthest will come first.
Flatten list per group, assign numbering and add bay code.
You need to take into consideration which vector is used to measure the angles on each bay, as in the case of the northern one using the Y axis will sort them starting from the middle.
On the second example from the dyn file, it is tested how points with same angle from centre point are handled (in this case, further points come first).
Hope it helps
SortPointsByAngle.dyn (50.0 KB)