Сбор параметров для линии

Дякую! Ця панель просто супер!!!

Доброго дня! Виникло в мене таке питання щодо груп об’єктів на карті, чи можливо за допомогою скриптів створювати ці групи опираючись на один спільний параметр для об’єктів?

Доброго дня!
Думаю, що можливо. Тільки трохи не ясно, що ви конкретно на увазі.
Наприклад, ось так можна спершу виділити об’єкти на карті за значенням певного параметра і потім додати їх у вказану групу

@Map.SelectByParameters 1|0=0
@Map.Selected.AddToGroup GroupName

В даному випадку в групу GroupName буде додано усі об’єкти, площа (параметр 0) яких дорівнює 0.

Можна зробити цикл, який зразу створить багато груп залежно від значення потрібного параметру.

Супер! Це саме те що мене цікавило. Вибачаюсь за свою наглість, але чи не могли б Ви допомогти мені із даним циклом щодо створення груп?

;перевірка відкритої карти $AM=@ActivateMap @if $AM=0 then @Break ;пошук параметра по айді $ParamID=1 $Param=@Map.Parameters.FindByID $ParamID @if $Param=0 then @Break ;у циклі по всім об'єктам перевіряємо значення параметра ;будуємо список усіх значень цього параметра $MC=@Map.Count $I=0 %LoopObj $I=$I+1 $IsDel=@Map.Object[$I].Deleted @if $IsDel=1 then @Goto %IgnoreEmpty $Val=@Map.Object[$I].Parameter[$Param] @if $Val= then @Goto %IgnoreEmpty @Text[1].Add $Val %IgnoreEmpty @if $I<$MC then @Goto %LoopObj ;сортуємо список значень та видаляємо дублікати @Text[1].Sort $I=@Text[1].Count $LastVal=@Text[1].Line[$I] %LoopLine $I=$I-1 $Val=@Text[1].Line[$I] @if $Val=$LastVal then @Text[1].Delete $I $LastVal=$Val @if $I>1 then @Goto %LoopLine ;в циклі по кожному значенню зі списка створуємо відповідну групу $LC=@Text[1].Count $I=0 %LoopLine2 $I=$I+1 $Val=@Text[1].Line[$I] @Map.DeselectAll @Map.SelectByParameters 1|$Param=$Val @Map.Selected.AddToGroup $Val @if $I<$LC then @Goto %LoopLine2 ; @Map.DeselectAll @Dialog.Message Створено груп: $LC

Велике ДЯКУЮ!

Всім доброго дня!
Зацікавило таке питання, чи можливо за допомогою скрипта присвоїти кожному лінійному об’єкту в масиві (групі) обє’ктів, відібраних за певним параметром, присвоїти значення параметра довгота/широта об’єкта дотичного до об’єкта іншого умовного слоя та довгота/широта найпівденнішого об’єкта (має вийти щось схоже на даний код: 485612302655083148561676265517541)
(це те чим зараз користуюся, але даний скрипт опрацьовує тільки цільні об’єкти)
%Events.OnChange,%Events.OnAdd,%Events.OnCollect,%Events.OnLayerChange
$EO=@EventObject
$PC=@Map.Object[$EO].Count
$BLCode1=@Map.Object[$EO].BLCode 1
$BLCode2=@Map.Object[$EO].BLCode $PC
$WC=@Map.Object[$EO].Parameter[ID7079]
@if $WC= then $WC=1
@Map.Object[$EO].Parameter[1] $BLCode1$BLCode2$WC
@Dialog.Message $BLCode1$BLCode2$WC
@Map.Selected.Refresh