Сделал небольшой тест с Dispose и без него.
В цикле создавал 2000 шт. SelectionSet все норм сработало.
Для примера выборка 1500 примитивов в чертеже.
С методом Dispose ОЗУ acad.exe не меняется
Без метода Dispose ОЗУ acad.exe вырастает на 5-10 МБ
Ограничений 127 объектов SelectionSet не заметил.
Может из-за того что объект SelectionSet объявлен локально внутри подпрограммы, а не глобально?
Вот код теста проверял на AutoCAD API 2012
Imports CAD_DBS = Autodesk.AutoCAD.DatabaseServices
Imports CAD_RTM = Autodesk.AutoCAD.Runtime
Imports CAD_EDI = Autodesk.AutoCAD.EditorInput
Imports CAD_APS = Autodesk.AutoCAD.ApplicationServices
<Assembly: CAD_RTM.CommandClass(GetType(cmds.psm_commads))>
Namespace cmds
Public Class psm_commads
<CAD_RTM.CommandMethod("PSM_T")> _
Public Sub test_SelectionSet()
Dim k As Integer = 0 ' счетчик объектов ss
Dim cErr As Integer = 0 ' счетчик ошибок
Dim Doc As CAD_APS.Document = CAD_APS.Application.DocumentManager.MdiActiveDocument
If Doc Is Nothing Then Exit Sub
Dim Ed As CAD_EDI.Editor = Doc.Editor
For i As Integer = 0 To 1999
Try
Dim ss = Ed.SelectAll().Value
If ss IsNot Nothing Then k += 1
ss.Dispose()
Catch ex As Exception
cErr += 1
End Try
Next
MsgBox("Selection = " & k & "Errors = " & cErr)
End Sub
End Class
End Namespace