ModelBuilder中的For循環(huán)和While循環(huán)
鴿了這么久了的ModelBuilder教程,開始恢復(fù)更新了,嚶嚶嚶
現(xiàn)在開始講迭代器,迭代是指以一定的自動化程度多次重復(fù)某個過程,通常又稱為循環(huán)。說的通俗點就是批量循環(huán)處理,簡稱批處理。
需要注意的是個模型僅可使用一個迭代器。如果模型中已經(jīng)存在一個迭代器,那么就沒辦法再添加迭代器了,只能嵌套一個子模型,在子模型里使用。

ModelBuilder提供了四個大類,十二種迭代,在之后的文章中我會依次講到,這次講前兩個,For循環(huán)和While?循環(huán),本質(zhì)上和編程中的For循環(huán)和While?循環(huán)工作原理完全相同
For循環(huán),起始值到結(jié)束值按特定次數(shù)運行工作流,簡單來說就是你給定一個循環(huán)次數(shù),然后你的模型將從頭到尾執(zhí)行這個數(shù)量的項目。
下面以一個建立多環(huán)緩沖區(qū)的樣例來介紹一下這個工具

For循環(huán)初始值設(shè)置為10m,之后每次自加10m直至100m停止循環(huán),c108是一段道路數(shù)據(jù)
將值作為距離添加至緩沖區(qū)

最后輸出文件為防止名稱一樣被覆蓋,采用行內(nèi)變量替換

運行結(jié)果如下


While?循環(huán),模型會一直運行到特定變量或條件變為?True?或?False?時為止。簡單來說,你可以把他理解成為一個開關(guān),如果達到你設(shè)定的條件,循環(huán)會自動終止
還是這個多環(huán)緩沖區(qū)的案例,我們來深入了解一下While?循環(huán)

相較于上一個for循環(huán)的實現(xiàn),這個While?循環(huán)添加了兩個計算值工具和While?循環(huán)
兩個計算值工具第一個是計算緩沖區(qū)距離,然后輸出長整型字段,并將其作為距離添加到緩沖區(qū)工具中

如果我們不加以限制的話,他會無限循環(huán),所以添加了第二個計算值工具來限制它所輸出的value大小,輸出類型為布爾型(布爾型的值只有兩個:false(假)和true(真)。

然后將其作為輸入值添加到while循環(huán)中

最后的文件存儲依舊使用行內(nèi)變量替換

運行結(jié)果如下
