Could ESRI consider adding a blurb to the docs somewhere that explains when zero-based numbering is used vs. one-based numbering?
For example, if I understand correctly, zero-based numbering is a software thing (at least, software that’s built on top of C++). It’s used for:
- ArcGIS Pro geometry: part and vertex numbers
- ArcObjects in general
- ArcPy/Python, Arcade (i.e. December is month 11), and other procedural languages used in ArcGIS.
Whereas one-based numbering is used in the database:
- All databases supported by ArcGIS (including their procedural languages like PL/SQL)
- Spatial types like SDE.ST_GEOMETRY
Reason:
For non-computer scientists, it can be confusing to switch back and forth between the two numbering systems, without having background info about why. For example, I finally got used to scripting in ArcGIS using zero-based numbering, but when I started using the SDE.ST_GEOMETRY db type, I didn’t understand why ESRI would have switched to one-based numbering. It seemed inconsistent. I later realized that it’s a database convention, not an ArcGIS convention.
A bit of info in the docs might help avoid confusion. Even though it’s not specific to the ArcGIS world, it’s still something that GIS practitioners can trip over.