Ускорение времени удаления компонентов сборки API7

Автор Lito 2, 16.01.15, 10:29:47

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Lito 2

Добрый день.
При наличии массива sPartsEx := Spart.PartsEx[ksAllParts];
и использовании IFeature7.Delete в невидимом документе.
При каждом удалении в цикле происходит перестроении модели, что приводит к длительности операции у большого кол. компонентов (порядка 500 шт.).
Как можно ускорить удаление компонентов из состава сборки?


Использовать свойства:
ksDocument3D.treeNeedRebuild  - запретить пе­перестраивать дерево
и
ksPart.needRebuild - запретить перестроения объектов при изменении их свойств.

Slaviation

Глянь ksPart::needRebuild, ksDocument3D::treeNeedRebuild, windowNeedRebuild


Lito 2

Эти свойства в SDK я видел, но пока не использовал и прирост производительности не проверял.

Может быть можно как-то получить коллекцию компонентов и сразу ее удалить, а не каждый элемент по отдельности.

Через ISelectionManager - интерфейс менеджера выделенных объектов, выделить удаляемые компоненты и вызвать IApplication.ExecuteKompasCommand выполнив команду ksCMEditClear.

Lito 2

А разве команда  ksCMEditClear доступна при слепом режиме?