Hi,
I think the Viewport.Number is the right way to distinguish paperspace and floating viewports. It the way I use to use with LISP.
You can deal with this within a selection filter.
[CommandMethod("TEST")]
public void Test()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
TypedValue[] filter = { new TypedValue(0, "VIEWPORT"),
new TypedValue(-4, "!="),
new TypedValue(69, 1) };
PromptSelectionResult psr = ed.SelectAll(new SelectionFilter(filter));
ed.WriteMessage("\nThis drawing contains {0} floating viewport(s)",
psr.Status == PromptStatus.OK ? psr.Value.GetObjectIds().Length : 0);
}