По-видимому, разница объясняется тем, что командным методом удаляется вся группа, а энтделом удаляются объекты один за другим. Если командным методом начать удалять объекты по очереди, а не группой, результат будет, очевидно, ровно наоборот другой.
Предложил бы использовать метод erase. Протестировал код на 200к объектов. Стандартная команда удалить выполняется за 20с. Удаление группы через activeX приблизительно за 30с. Медленнее, конечно, но может и подойти
Позволю себе слегка побурчать
Метки начала и конца отмены забыты. И, возможно, преобразовав набор в список элементов, скорость изменится.
P.S. М.б., regenmode поменять еще? Ну и восстановить ее обратно потом, естественно
Надеялся, что прокатит без бурчания)))
Что интересно, отмена команды работает вполне себе ожидаемым образом, несмотря на отсутствие меток. Кроме того, это не рабочий код, а идея использования группового метода по отношению к объектам в наборе.
Предположу, что удаление группой всяко будет быстрее, чем удаление по объектам. Независимо от способа реализации (командный, лисп или шарп).
А удаление группы на большом количестве объектов будет плюс-минус одинаковым, т.к. все методы под капотом содержат старые добрые плюсы.
В варианте ActiveX меня больше всего напрягает неудобство манипуляций с наборами в части добавления объектов (если свойства ActiveSelectionset недостаточно), хотя во всем остальном видится наиболее рациональным подходом: достаточно быстро, универсально, платформо-независимо.
Спасибо,
подскажите пожалуйста, какой способ выбора объектов (*выбираю из всех в модели, то что внутри или пересекает полилинии) самый быстрый может быть (язык программирования)?
По языкам - шарп однозначно.
По способу выбора, к сожалению, не подскажу. Чисто интуитивно и зная особую “слабость” наны к контурам, я бы сказал, что поиск внутри полилинии выглядит более скоростным. Но в вашей задаче это проверить - дело двух секунд, всего то поменять опцию в функции ssget (или ее аналоге).