<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Calculate Footprint of Building Scene Layer in ArcGIS API for Python Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-python-questions/calculate-footprint-of-building-scene-layer/m-p/1676670#M11838</link>
    <description>&lt;P&gt;Hello!&lt;/P&gt;&lt;P&gt;Is it possible to calculate a more accurate footprint of a Scene Layer than the extent given?&amp;nbsp; It needs to be done on the server side either using ArcGIS API for Python or any Rest Service or GP Tool. Also any ideas of a concept to calculate the footprint and writing our own GP Tool for that would be nice to have, if there is nothing available out-of-the-box.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;Bernd&lt;/P&gt;</description>
    <pubDate>Thu, 08 Jan 2026 14:00:11 GMT</pubDate>
    <dc:creator>Bernd_Loigge</dc:creator>
    <dc:date>2026-01-08T14:00:11Z</dc:date>
    <item>
      <title>Calculate Footprint of Building Scene Layer</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/calculate-footprint-of-building-scene-layer/m-p/1676670#M11838</link>
      <description>&lt;P&gt;Hello!&lt;/P&gt;&lt;P&gt;Is it possible to calculate a more accurate footprint of a Scene Layer than the extent given?&amp;nbsp; It needs to be done on the server side either using ArcGIS API for Python or any Rest Service or GP Tool. Also any ideas of a concept to calculate the footprint and writing our own GP Tool for that would be nice to have, if there is nothing available out-of-the-box.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;Bernd&lt;/P&gt;</description>
      <pubDate>Thu, 08 Jan 2026 14:00:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/calculate-footprint-of-building-scene-layer/m-p/1676670#M11838</guid>
      <dc:creator>Bernd_Loigge</dc:creator>
      <dc:date>2026-01-08T14:00:11Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Footprint of Building Scene Layer</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/calculate-footprint-of-building-scene-layer/m-p/1713379#M11994</link>
      <description>&lt;P&gt;If someone is interested — I came up with a &lt;A href="https://pastebin.com/vR0Q6G9w" target="_self"&gt;method&amp;nbsp;&lt;/A&gt; to derive a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;precise ground footprint polygon for a Scene Layer / Building Scene Layer entirely on the client&lt;/STRONG&gt;, without any server-side queries or a separate footprint feature layer. Afterwards the footprint can be used for automatically clip away the footprint of a BuildingSceneLayer from extruded OSM 3D Tiles or from Google 3D Tiles as IntegratedMesh3DTilesLayer.&lt;/P&gt;&lt;P&gt;The trick: once the SDK has streamed a scene layer into a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="" target="_blank"&gt;&lt;SPAN class=""&gt;SceneView&lt;/SPAN&gt;&lt;/A&gt;, it caches the decoded I3S tile geometry in an IndexedDB called&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;esri-scenelayer-cache&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(same origin/tab, so&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="" target="_blank"&gt;&lt;SPAN class=""&gt;window.indexedDB&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;gives you read access). Each cache entry keyed by the tile URL (ending in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;@ECEF) contains:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;A title="" target="_blank"&gt;&lt;SPAN class=""&gt;geometryObbData&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;— the tile's oriented bounding box: center in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;ECEF metres&lt;/STRONG&gt;, half-sizes in a local frame, and a quaternion rotating that frame into ECEF; and&lt;/LI&gt;&lt;LI&gt;&lt;A title="" target="_blank"&gt;&lt;SPAN class=""&gt;transformedGeometry&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;+&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="" target="_blank"&gt;&lt;SPAN class=""&gt;globalTrafo&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;— the actual decoded mesh vertices plus a 4×4 local→ECEF matrix.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;From there the approach is:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Open the cache DB and collect all keys that start with the layer's&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;SceneServer&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;URL (this covers every sublayer — Walls, Floors, …).&lt;/LI&gt;&lt;LI&gt;Decode each tile mesh, transform vertices to lon/lat, and rasterise the triangles into an occupancy grid (~0.75 m cells).&lt;/LI&gt;&lt;LI&gt;Morphologically close the grid (dilate/erode) to bridge hairline gaps between tiles, trace the region outlines into rings, simplify, and union into a single WGS84&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="" target="_blank"&gt;&lt;SPAN class=""&gt;Polygon&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that follows the model's real shape.&lt;/LI&gt;&lt;LI&gt;If no mesh is cached yet (layer still streaming), fall back to unioning the per-tile OBB ground rectangles, and retry once geometry is available.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;One important gotcha: the cached ECEF frame is&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;spherical&lt;/STRONG&gt;, not WGS84-ellipsoidal — the generator treats geodetic lon/lat as spherical angles. Using an ellipsoidal conversion introduces a noticeable latitude error, so the conversion is deliberately spherical.&lt;/P&gt;&lt;P&gt;I use the resulting polygon to clip the integrated-mesh / 3D-tiles basemap around each loaded building so the model isn't buried. Full standalone module below — no references to my own system, so feel free to adapt it. Caveat: it relies on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;undocumented SDK internals&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(the cache DB name, its single object store, and the entry shapes), so it may break between SDK versions (I'm on 4.34).&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Jul 2026 19:38:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/calculate-footprint-of-building-scene-layer/m-p/1713379#M11994</guid>
      <dc:creator>Bernd_Loigge</dc:creator>
      <dc:date>2026-07-08T19:38:12Z</dc:date>
    </item>
  </channel>
</rss>

