Scene Layer Doc
Root 3dSceneLayer.json document.
Constructors
Properties
1.7+ geometry table (MeshGeometryDoc.definition); each buffer's index is its archive file name (geometries/{index}.bin). Esri convention: buffer 0 = uncompressed, buffer 1 = Draco.
Vertical datum of heights; see usesGravityRelatedHeights.
1.7+ material table (MeshMaterialDoc.definition); empty in legacy packages, where texture names come from per-node index documents instead.
Horizontal CRS of OBB centers + vertex offsets: 4326 (degrees, the default) or Web Mercator (metres). See I3sWebMercator.isWebMercator.
1.7+ texture sets referenced from MaterialDefDoc; formats[].name is the archive entry stem.
Update-session id; not a format version. Store format version lives in StoreDoc.version.
Functions
Metres per heightModelInfo.heightUnit — the scale every z value in the package needs to reach the engine's metres. Applies to OBB centre heights and vertex z offsets, not to obb.halfSize, which the spec fixes in metres. Unset or unrecognised means metres; "meter" is what ArcGIS writes, the rest of the enum comes from surveyed data in legacy units.
Heights are orthometric (gravity-related/MSL), so an ellipsoid-datum consumer must add the geoid undulation. Sources in declaration-strength order: heightModelInfo.heightModel, the vertical CRS wkid, an embedded VERTCS/VERTCRS in spatialReference.wkt, then the vertCRS name. Nothing declared means ellipsoidal (HAE), matching how a package without a vertical CRS reads. The undulation applied downstream is always EGM96, so an EGM2008/NAVD88 package lands within the sub-metre difference between those geoids.