Как написать такой скрипт, чтоб при извлечений участков в ин4 оставались только смежества типа “землі зального коритсування(дорога)”, а остальные удалялись.Просто при запуску DMT шаблона надо вместо физических лиц чтобы были “земли запаса”, и сразу запустить ДМТ шаблон.
Прикрепляю DMF файл.Результат должен получиться, как для учаска 272. По умолчанию стоят DefaultNeighbor=землі запасу Городищенської с.р.
1234.dmf (24.4 KB)
$AcceptedNM=землі заг.кор.(дорога)
$DefaultNM=@GetConstant DefaultNeighbor
Файл | Извлечь участок в In4
$ON=0
$MC=@Map.Count
%Loop
$ON=$ON+1
$L=@Map.Object[$ON].LayerID
@if $L<>50000 then @Goto %Continue
$PNM=@Map.Object[$ON].Parameter[NM]
@if $PNM=$AcceptedNM then @Goto %Continue
@if $PNM=$DefaultNM then @Goto %Continue
@Map.DeleteObject $ON
%Continue
@if $ON<$MC then @Goto %Loop
Большое спасибо. Реально помогло
Я конечно извиняюсь, как будет выглядеть этот скрипт если перемення $AcceptedNM может принимать два разных значения одновременно, например
землі заг.кор.(дорога) и например землі Держлісгоспу
$AcceptedNM1=землі заг.кор.(дорога)
$AcceptedNM2=землі Держлісгоспу
$DefaultNM=@GetConstant DefaultNeighbor
Файл | Извлечь участок в In4
$ON=0
$MC=@Map.Count
%Loop
$ON=$ON+1
$L=@Map.Object[$ON].LayerID
@if $L<>50000 then @Goto %Continue
$PNM=@Map.Object[$ON].Parameter[NM]
@if $PNM=$AcceptedNM1 then @Goto %Continue
@if $PNM=$AcceptedNM2 then @Goto %Continue
@if $PNM=$DefaultNM then @Goto %Continue
@Map.DeleteObject $ON
%Continue
@if $ON<$MC then @Goto %Loop