If you have a simple, flat glass facade, a third option could be to use Curtain Walls and replace the panels with windows.
You need to create a window family starting from a Curtain Wall - Panel or a Window - Curtain Wall family template. (or edit an existing one, there is one in the 2019 US Library).
When you have to schedule them, you might Dynamo to group the family instance according to dimension.
There are different approaches, but I would say to use:
windows: when you have a host wall and the element are mostly isolated from each other
curtain wall panels/windows: when you have a glass facade (i.e. with mullions) and you want to place some openable/custom components
adaptive panels: as above, but with freeform shapes