Hi
I recently started learning the Modelbuilder in ArcGIS Pro, but I got stuck on the iteration tools, Actually I can't differentiate between Iterate Feature Selection and Iterate Row Selection.
For reference
Iterate Feature Selection (ModelBuilder)—ArcGIS Pro | Documentation
Iterate Row Selection (ModelBuilder)—ArcGIS Pro | Documentation
Examples of using iterators in ModelBuilder—ArcGIS Pro | Documentation
A "selection" may be the results of some process like a query.
If you want to process the selection and not all the records (aka, rows) then use it. If you want all the records to be used then don't use the selection.
The 3rd link has other information
The simplest way to looks at it is that row selection treats the feature class as a table with no geometry and can't be used as an input for a geoprocessing tool which requires a geometry operation (e.g. buffer, select by location).
Feature selection includes the geometry, and can be used in subsequent geoprocessing tools in the same way as the original feature class.
row selection - outputs the row of the attribute table
feature selection - outputs as if a selection from the feature class, including the geometry/shape.
ModelBuilder is straining to support iterators. Much better to start using Python for iterations. You are still using the same functions but the iteration is much easier to understand and you can have much better control of missing data, errors and the process is much more understandable. You can use Cursors that are much faster.
Start your upgrade by taking each function and right-click to create a python snippet. Then put them all in a script. You can also encapsulate the iterator into a single script and publish it as a custom tool and leave the rest of the process in ModelBuilder.