<?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 Re: ArcGIS Urban Parcels in CityEngine - Accessing zoning code as attribute in CGA in ArcGIS CityEngine Questions</title>
    <link>https://community.esri.com/t5/arcgis-cityengine-questions/arcgis-urban-parcels-in-cityengine-accessing/m-p/1658048#M11592</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/638446"&gt;@RidleySoudack&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm excited to see you are&amp;nbsp;&lt;SPAN&gt;leveraging CityEngine functionality to check for and handle conditional zoning regulations.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;This example rule for &lt;EM&gt;Parcel&lt;/EM&gt; shapes shows how to work with &lt;I&gt;the&lt;/I&gt;&amp;nbsp;&lt;EM&gt;ZoneTypeID&lt;/EM&gt;&amp;nbsp;attribute obtained from in the scene's &lt;EM&gt;Zone Boundaries&lt;/EM&gt; layer:&lt;/P&gt;&lt;LI-CODE lang="c"&gt;version "2025.0"

@Order(1)
@Enum(valuesAttr=zoneTypeIDs,restricted=false)
@DisplayName("Zone Type ID")
attr ZoneTypeID = ""
@Hidden
attr zoneTypeIDs = getKeys(zoneTypeTable)

@Order(2)
@DisplayName("Zone Type Label")
attr Zone_Type_Label = getValue( zoneTypeTable, ZoneTypeID, "Label")

@Order(3)
@Color
@DisplayName("Zone Type Color")
attr Zone_Type_Color = getValue( zoneTypeTable, ZoneTypeID, "Color")

@Order(4)
@DisplayName("Zone Type HeightMax")
attr Zone_Type_HeightMax = float(getValue( zoneTypeTable, ZoneTypeID, "HeightMax"))

@Order(0)
@File
@DisplayName("Zone Type Table")
attr Zone_Type_Table = "data/Urban_for_CE_Database_View.csv"

const zoneTypeTable = readStringTable(Zone_Type_Table)

getKeys(table) = transpose(table[1:nRows(table) - 1, 0])

getValue(table, key, columnName) with(
	keysColumn := getKeys(table)
	rowIndex := findFirst(keysColumn, key) + 1
	columnIndex := findFirst(table[0, 0:nColumns(table)], columnName)
	) = 
	case (rowIndex == 0) || (columnIndex == -1): "Error"
	else: table[rowIndex, columnIndex]

@StartRule
Parcel --&amp;gt; 
	print(ZoneTypeID)
	print(Zone_Type_Label)
	
	color(Zone_Type_Color)
	extrude(Zone_Type_HeightMax)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Unlike the space type info, the zoning info doesn't get added to the project as a CSV when importing a plan form ArcGIS Urban.&amp;nbsp;Here is what you can do to work with the zoning information:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;Find the&amp;nbsp;ArcGIS Urban Database View of your plan in the portal contents. It contains a table named &lt;EM&gt;&lt;STRONG&gt;ZoneTypes&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasFuchs_0-1760539452591.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142016iAD29D497BB22F3C5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasFuchs_0-1760539452591.png" alt="ThomasFuchs_0-1760539452591.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Export this &lt;SPAN&gt;&lt;EM&gt;ZoneTypes&lt;/EM&gt; &lt;/SPAN&gt;table to a CSV file and then download it&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasFuchs_1-1760539532443.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142018i5C4AB17845AB3D1B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasFuchs_1-1760539532443.png" alt="ThomasFuchs_1-1760539532443.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;LI&gt;Inside CityEngine, add the &lt;SPAN&gt;&lt;EM&gt;ZoneTypes&lt;/EM&gt; CSV&amp;nbsp;&lt;/SPAN&gt;file to your project's &lt;EM&gt;data&lt;/EM&gt; folder&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasFuchs_4-1760542154472.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142027i8149C75A6847667E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasFuchs_4-1760542154472.png" alt="ThomasFuchs_4-1760542154472.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;LI&gt;Now you can connect the&amp;nbsp;&lt;SPAN&gt;&lt;SPAN&gt;rule attribute&amp;nbsp;&lt;EM&gt;Zone_Type_Table&lt;/EM&gt;&amp;nbsp;to the downloaded &lt;EM&gt;ZoneTypes&lt;/EM&gt; CSV file.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasFuchs_6-1760543009825.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142029i88D6DC3766A885A3/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasFuchs_6-1760543009825.png" alt="ThomasFuchs_6-1760543009825.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;To get the parcel's &lt;/SPAN&gt;&lt;EM&gt;Zone Type&lt;/EM&gt;&lt;SPAN&gt; information, simply connect the rule attribute&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;EM&gt;ZoneTypeID&lt;/EM&gt;&amp;nbsp;to the matching attribute in the scene's &lt;EM&gt;Zone Boundaries&lt;/EM&gt; layer:&lt;BR /&gt;&lt;/SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasFuchs_2-1760540184344.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142020i72A80412997A04B9/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasFuchs_2-1760540184344.png" alt="ThomasFuchs_2-1760540184344.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;LI&gt;The final result should look like this:&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="visulalizeZoneType.png" style="width: 945px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142118iADA9D47BF84C02AD/image-size/large?v=v2&amp;amp;px=999" role="button" title="visulalizeZoneType.png" alt="visulalizeZoneType.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;/OL&gt;</description>
    <pubDate>Thu, 16 Oct 2025 10:29:26 GMT</pubDate>
    <dc:creator>ThomasFuchs</dc:creator>
    <dc:date>2025-10-16T10:29:26Z</dc:date>
    <item>
      <title>ArcGIS Urban Parcels in CityEngine - Accessing zoning code as attribute in CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/arcgis-urban-parcels-in-cityengine-accessing/m-p/1657127#M11590</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;I'm looking for confirmation on whether the following is currently possible. I'm currently writing a CGA rule for use alongside my ArcGIS Urban scenarios. The rule I'm writing leverages CityEngine functionality to check for and handle conditional zoning regulations that go beyond what is possible directly in Urban. One of the conditions I am exploring is instances where the zoning of an adjacent parcel effects buildable requirements (e.g. an industrial zone might require additional setbacks where a property borders a residential zone).&lt;/P&gt;&lt;P&gt;I understand the principles of how to build logic for this in CityEngine using occlusion queries, but before I can build that logic, I need a way to access the zoning assigned to each parcel via CGA. However, the zoning designation from ArcGIS Urban comes in within this special "Zoning" section of the inspector, rather than as an object attribute:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RidleySoudack_0-1760111196662.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/141811i014973475AE8A96C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RidleySoudack_0-1760111196662.png" alt="RidleySoudack_0-1760111196662.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Is there a way to link the "Zone Type" value within this section to an attribute within my CGA?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know this would be easy to achieve using Python/by leveraging ArcGIS Pro, but as I am leveraging CGA for other components of this modeling, I would prefer avoiding having to bring in an additional step to the workflow if possible.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Fri, 10 Oct 2025 15:50:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/arcgis-urban-parcels-in-cityengine-accessing/m-p/1657127#M11590</guid>
      <dc:creator>RidleySoudack</dc:creator>
      <dc:date>2025-10-10T15:50:55Z</dc:date>
    </item>
    <item>
      <title>Re: ArcGIS Urban Parcels in CityEngine - Accessing zoning code as attribute in CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/arcgis-urban-parcels-in-cityengine-accessing/m-p/1658048#M11592</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/638446"&gt;@RidleySoudack&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm excited to see you are&amp;nbsp;&lt;SPAN&gt;leveraging CityEngine functionality to check for and handle conditional zoning regulations.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;This example rule for &lt;EM&gt;Parcel&lt;/EM&gt; shapes shows how to work with &lt;I&gt;the&lt;/I&gt;&amp;nbsp;&lt;EM&gt;ZoneTypeID&lt;/EM&gt;&amp;nbsp;attribute obtained from in the scene's &lt;EM&gt;Zone Boundaries&lt;/EM&gt; layer:&lt;/P&gt;&lt;LI-CODE lang="c"&gt;version "2025.0"

@Order(1)
@Enum(valuesAttr=zoneTypeIDs,restricted=false)
@DisplayName("Zone Type ID")
attr ZoneTypeID = ""
@Hidden
attr zoneTypeIDs = getKeys(zoneTypeTable)

@Order(2)
@DisplayName("Zone Type Label")
attr Zone_Type_Label = getValue( zoneTypeTable, ZoneTypeID, "Label")

@Order(3)
@Color
@DisplayName("Zone Type Color")
attr Zone_Type_Color = getValue( zoneTypeTable, ZoneTypeID, "Color")

@Order(4)
@DisplayName("Zone Type HeightMax")
attr Zone_Type_HeightMax = float(getValue( zoneTypeTable, ZoneTypeID, "HeightMax"))

@Order(0)
@File
@DisplayName("Zone Type Table")
attr Zone_Type_Table = "data/Urban_for_CE_Database_View.csv"

const zoneTypeTable = readStringTable(Zone_Type_Table)

getKeys(table) = transpose(table[1:nRows(table) - 1, 0])

getValue(table, key, columnName) with(
	keysColumn := getKeys(table)
	rowIndex := findFirst(keysColumn, key) + 1
	columnIndex := findFirst(table[0, 0:nColumns(table)], columnName)
	) = 
	case (rowIndex == 0) || (columnIndex == -1): "Error"
	else: table[rowIndex, columnIndex]

@StartRule
Parcel --&amp;gt; 
	print(ZoneTypeID)
	print(Zone_Type_Label)
	
	color(Zone_Type_Color)
	extrude(Zone_Type_HeightMax)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Unlike the space type info, the zoning info doesn't get added to the project as a CSV when importing a plan form ArcGIS Urban.&amp;nbsp;Here is what you can do to work with the zoning information:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;Find the&amp;nbsp;ArcGIS Urban Database View of your plan in the portal contents. It contains a table named &lt;EM&gt;&lt;STRONG&gt;ZoneTypes&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasFuchs_0-1760539452591.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142016iAD29D497BB22F3C5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasFuchs_0-1760539452591.png" alt="ThomasFuchs_0-1760539452591.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Export this &lt;SPAN&gt;&lt;EM&gt;ZoneTypes&lt;/EM&gt; &lt;/SPAN&gt;table to a CSV file and then download it&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasFuchs_1-1760539532443.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142018i5C4AB17845AB3D1B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasFuchs_1-1760539532443.png" alt="ThomasFuchs_1-1760539532443.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;LI&gt;Inside CityEngine, add the &lt;SPAN&gt;&lt;EM&gt;ZoneTypes&lt;/EM&gt; CSV&amp;nbsp;&lt;/SPAN&gt;file to your project's &lt;EM&gt;data&lt;/EM&gt; folder&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasFuchs_4-1760542154472.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142027i8149C75A6847667E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasFuchs_4-1760542154472.png" alt="ThomasFuchs_4-1760542154472.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;LI&gt;Now you can connect the&amp;nbsp;&lt;SPAN&gt;&lt;SPAN&gt;rule attribute&amp;nbsp;&lt;EM&gt;Zone_Type_Table&lt;/EM&gt;&amp;nbsp;to the downloaded &lt;EM&gt;ZoneTypes&lt;/EM&gt; CSV file.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasFuchs_6-1760543009825.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142029i88D6DC3766A885A3/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasFuchs_6-1760543009825.png" alt="ThomasFuchs_6-1760543009825.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;To get the parcel's &lt;/SPAN&gt;&lt;EM&gt;Zone Type&lt;/EM&gt;&lt;SPAN&gt; information, simply connect the rule attribute&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;EM&gt;ZoneTypeID&lt;/EM&gt;&amp;nbsp;to the matching attribute in the scene's &lt;EM&gt;Zone Boundaries&lt;/EM&gt; layer:&lt;BR /&gt;&lt;/SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ThomasFuchs_2-1760540184344.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142020i72A80412997A04B9/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ThomasFuchs_2-1760540184344.png" alt="ThomasFuchs_2-1760540184344.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;LI&gt;The final result should look like this:&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="visulalizeZoneType.png" style="width: 945px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/142118iADA9D47BF84C02AD/image-size/large?v=v2&amp;amp;px=999" role="button" title="visulalizeZoneType.png" alt="visulalizeZoneType.png" /&gt;&lt;/span&gt;&lt;/LI&gt;&lt;/OL&gt;</description>
      <pubDate>Thu, 16 Oct 2025 10:29:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/arcgis-urban-parcels-in-cityengine-accessing/m-p/1658048#M11592</guid>
      <dc:creator>ThomasFuchs</dc:creator>
      <dc:date>2025-10-16T10:29:26Z</dc:date>
    </item>
    <item>
      <title>Re: ArcGIS Urban Parcels in CityEngine - Accessing zoning code as attribute in CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/arcgis-urban-parcels-in-cityengine-accessing/m-p/1658368#M11593</link>
      <description>&lt;P&gt;Please Note:&lt;/P&gt;&lt;P&gt;The "EFFECTIVE REGULATIONS" on a parcel are the defined by &lt;EM&gt;Zoning&lt;/EM&gt; + &lt;EM&gt;Overlays&lt;/EM&gt; +&amp;nbsp;&lt;EM&gt;Parcel overrides&lt;/EM&gt;.&lt;BR /&gt;&lt;A href="https://doc.arcgis.com/en/urban/latest/help/help-zoning-regulations.htm" target="_blank" rel="noopener"&gt;Zoning regulation management—ArcGIS Urban | Documentation&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://doc.arcgis.com/en/cityengine/latest/help/help-urban-integration.htm#ESRI_SECTION1_5592698BCB8B40879476B770808B2164" target="_blank" rel="noopener"&gt;ArcGIS Urban integration—ArcGIS CityEngine Resources | Documentation&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 17 Oct 2025 06:54:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/arcgis-urban-parcels-in-cityengine-accessing/m-p/1658368#M11593</guid>
      <dc:creator>ThomasFuchs</dc:creator>
      <dc:date>2025-10-17T06:54:52Z</dc:date>
    </item>
    <item>
      <title>Re: ArcGIS Urban Parcels in CityEngine - Accessing zoning code as attribute in CGA</title>
      <link>https://community.esri.com/t5/arcgis-cityengine-questions/arcgis-urban-parcels-in-cityengine-accessing/m-p/1671615#M11599</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/157103"&gt;@ThomasFuchs&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks so much for the detailed workflow and my apologies for the delay in response - I was out of town for a number of weeks and have just been getting back up to speed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This workflow is excellent - I should have considered just bringing in the zoning types table via CSV, great workaround!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Ridley&lt;/P&gt;</description>
      <pubDate>Tue, 09 Dec 2025 14:52:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-cityengine-questions/arcgis-urban-parcels-in-cityengine-accessing/m-p/1671615#M11599</guid>
      <dc:creator>RidleySoudack</dc:creator>
      <dc:date>2025-12-09T14:52:30Z</dc:date>
    </item>
  </channel>
</rss>

