<?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>idea Check Table Properties in Python Ideas</title>
    <link>https://community.esri.com/t5/python-ideas/check-table-properties/idi-p/1247717</link>
    <description>&lt;P&gt;THE CUSTOMER SENDS A SHAPEFILE AND WE NEED TO VERIFY THAT ALL FIELDS MEET THE DEPARTMENT'S REQUIREMENTS (PDF ATTACHED), FOR LATER INSERTION IN THE DATABASE; NOTHING BETTER THAN A SCRIPT IN PYTHON !!!&lt;/P&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6318569701112w1004h540r484" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6318569701112" data-account="6161463677001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6161463677001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6318569701112w1004h540r484');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://community.esri.com/t5/video/gallerypage/video-id/6318569701112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;import os, arcpy, sys&lt;BR /&gt;from arcpy import env&lt;/P&gt;&lt;P&gt;#PAR�METROS DA TOOLBOX&lt;BR /&gt;#inputFolder = arcpy.GetParameterAsText(0)&lt;BR /&gt;#arcpy.env.workspace = "D:\\ARCGIS\\UPAR\\INPUT\\"&lt;BR /&gt;shape = arcpy.GetParameterAsText(0)&lt;/P&gt;&lt;P&gt;# Create a Describe object from the table.&lt;BR /&gt;#list_shp = os.listdir(inputFolder)&lt;BR /&gt;#desc = arcpy.Describe(shape)&lt;BR /&gt;lstFields = arcpy.ListFields(shape)&lt;BR /&gt;fieldCount = len(lstFields)&lt;BR /&gt;field_name = [f.name for f in arcpy.ListFields(shape)]&lt;/P&gt;&lt;P&gt;#CRIA A FUN��O&lt;BR /&gt;def CHKPROP(shape):&lt;/P&gt;&lt;P&gt;mxd = arcpy.mapping.MapDocument("CURRENT")&lt;BR /&gt;df = arcpy.mapping.ListDataFrames(mxd)[0]&lt;BR /&gt;addLayer = arcpy.mapping.Layer(shape)&lt;BR /&gt;arcpy.mapping.AddLayer(df, addLayer, "TOP")&lt;BR /&gt;ext = addLayer.getExtent()&lt;BR /&gt;df.extent = ext&lt;BR /&gt;df.scale = 10000&lt;/P&gt;&lt;P&gt;for fieldname in ['UPT','n_UPT','ra','setor','quadra','conjunto','lote','end_cart','projeto','leg_proj','data_reg','area','norma','leg_nor','codigo_reg','padrao_cor','uos_setor']:&lt;BR /&gt;if not fieldname in field_name:&lt;BR /&gt;arcpy.AddError ('{0} - campo ausente!'.format(fieldname))&lt;/P&gt;&lt;P&gt;for field in lstFields:&lt;BR /&gt;if field.name == "FID":&lt;BR /&gt;arcpy.AddWarning ("FID_OK")&lt;BR /&gt;elif field.name == "Shape":&lt;BR /&gt;arcpy.AddWarning ("Shape_OK")&lt;BR /&gt;elif field.name == "UPT":&lt;BR /&gt;if field.name == "UPT" and field.type == "String" and field.length == 20:&lt;BR /&gt;arcpy.AddWarning ("Item 1 UPT OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 1 UPT ERRO!!!")&lt;BR /&gt;elif field.name == "n_UPT":&lt;BR /&gt;if field.name == "n_UPT" and field.type == "String" and field.length == 10:&lt;BR /&gt;arcpy.AddWarning ("Item 2 n_UPT OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 2 n_UPT ERRO!!!")&lt;BR /&gt;elif field.name == "ra":&lt;BR /&gt;if field.name == "ra" and field.type == "Double":&lt;BR /&gt;arcpy.AddWarning ("Item 3 ra OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 3 ra ERRO!!!")&lt;BR /&gt;elif field.name == "setor":&lt;BR /&gt;if field.name == "setor" and field.type == "String" and field.length == 50:&lt;BR /&gt;arcpy.AddWarning ("Item 4 setor OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 4 setor ERRO!!!")&lt;BR /&gt;elif field.name == 'quadra':&lt;BR /&gt;if field.name == "quadra" and field.type == "String" and field.length == 50:&lt;BR /&gt;arcpy.AddWarning ("Item 5 quadra OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 5 quadra ERRO!!!")&lt;BR /&gt;elif field.name == "conjunto":&lt;BR /&gt;if field.name == "conjunto" and field.type == "String" and field.length == 50:&lt;BR /&gt;arcpy.AddWarning ("Item 6 conjunto OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 6 conjunto ERRO!!!")&lt;BR /&gt;elif field.name == "lote":&lt;BR /&gt;if field.name == "lote" and field.type == "String" and field.length == 50:&lt;BR /&gt;arcpy.AddWarning ("Item 7 lote OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 7 lote ERRO!!!")&lt;BR /&gt;elif field.name == "end_cart":&lt;BR /&gt;if field.name == "end_cart" and field.type == "String" and field.length == 180:&lt;BR /&gt;arcpy.AddWarning ("Item 8 end_cart OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 8 end_cart ERRO!!!")&lt;BR /&gt;elif field.name == "projeto":&lt;BR /&gt;if field.name == "projeto" and field.type == "String" and field.length == 50:&lt;BR /&gt;arcpy.AddWarning ("Item 9 projeto OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 9 projeto ERRO!!!")&lt;BR /&gt;elif field.name == "leg_proj":&lt;BR /&gt;if field.name == "leg_proj" and field.type == "String" and field.length == 150:&lt;BR /&gt;arcpy.AddWarning ("Item 10 leg_proj OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 10 leg_proj ERRO!!!")&lt;BR /&gt;elif field.name == "situacao":&lt;BR /&gt;if field.name == "situacao" and field.type == "String" and field.length == 20:&lt;BR /&gt;arcpy.AddWarning ("Item 11 situacao OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 11 situacao ERRO!!!")&lt;BR /&gt;elif field.name == "data_reg":&lt;BR /&gt;if field.name == "data_reg" and field.type == "String" and field.length == 10:&lt;BR /&gt;arcpy.AddWarning ("Item 12 data_reg OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 12 data_reg ERRO!!!")&lt;BR /&gt;elif field.name == "area":&lt;BR /&gt;if field.name == "area" and field.type == "Double":&lt;BR /&gt;arcpy.AddWarning ("Item 13 area OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 13 area ERRO!!!")&lt;BR /&gt;elif field.name == "norma":&lt;BR /&gt;if field.name == "norma" and field.type == "String" and field.length == 70:&lt;BR /&gt;arcpy.AddWarning ("Item 14 norma OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 14 norma ERRO!!!")&lt;BR /&gt;elif field.name == "leg_nor":&lt;BR /&gt;if field.name == "leg_nor" and field.type == "String" and field.length == 120:&lt;BR /&gt;arcpy.AddWarning ("Item 15 leg_nor OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 15 leg_nor ERRO!!!")&lt;BR /&gt;elif field.name == "codigo_reg":&lt;BR /&gt;if field.name == "codigo_reg" and field.type == "Integer" and field.length == 10:&lt;BR /&gt;arcpy.AddWarning ("Item 16 codigo_reg OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 16 codigo_reg ERRO!!!")&lt;BR /&gt;elif field.name == "padrao_cor":&lt;BR /&gt;if field.name == "padrao_cor" and field.type == "String" and field.length == 20:&lt;BR /&gt;arcpy.AddWarning ("Item 17 padrao_cor OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 17 padrao_cor ERRO!!!")&lt;BR /&gt;elif field.name == "uos_setor":&lt;BR /&gt;if field.name == "uos_setor" and field.type == "String" and field.length == 150:&lt;BR /&gt;arcpy.AddWarning ("Item 18 uos_setor OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 18 uos_setor ERRO!!!")&lt;BR /&gt;CHKPROP(shape)&lt;/P&gt;</description>
    <pubDate>Tue, 23 May 2023 19:18:56 GMT</pubDate>
    <dc:creator>afrs10</dc:creator>
    <dc:date>2023-05-23T19:18:56Z</dc:date>
    <item>
      <title>Check Table Properties</title>
      <link>https://community.esri.com/t5/python-ideas/check-table-properties/idi-p/1247717</link>
      <description>&lt;P&gt;THE CUSTOMER SENDS A SHAPEFILE AND WE NEED TO VERIFY THAT ALL FIELDS MEET THE DEPARTMENT'S REQUIREMENTS (PDF ATTACHED), FOR LATER INSERTION IN THE DATABASE; NOTHING BETTER THAN A SCRIPT IN PYTHON !!!&lt;/P&gt;&lt;P&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6318569701112w1004h540r325" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6318569701112" data-account="6161463677001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6161463677001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;script&gt;(function() {  var wrapper = document.getElementById('lia-vid-6318569701112w1004h540r325');  var videoEl = wrapper ? wrapper.querySelector('video-js') : null;  if (videoEl) {     if (window.videojs) {       window.videojs(videoEl).ready(function() {         this.on('loadedmetadata', function() {           this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) {             bar.setAttribute('role', 'presentation');             bar.setAttribute('aria-hidden', 'true');           });         });       });     }  }})();&lt;/script&gt;&lt;a class="video-embed-link" href="https://community.esri.com/t5/video/gallerypage/video-id/6318569701112"&gt;(view in My Videos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;P&gt;import os, arcpy, sys&lt;BR /&gt;from arcpy import env&lt;/P&gt;&lt;P&gt;#PAR�METROS DA TOOLBOX&lt;BR /&gt;#inputFolder = arcpy.GetParameterAsText(0)&lt;BR /&gt;#arcpy.env.workspace = "D:\\ARCGIS\\UPAR\\INPUT\\"&lt;BR /&gt;shape = arcpy.GetParameterAsText(0)&lt;/P&gt;&lt;P&gt;# Create a Describe object from the table.&lt;BR /&gt;#list_shp = os.listdir(inputFolder)&lt;BR /&gt;#desc = arcpy.Describe(shape)&lt;BR /&gt;lstFields = arcpy.ListFields(shape)&lt;BR /&gt;fieldCount = len(lstFields)&lt;BR /&gt;field_name = [f.name for f in arcpy.ListFields(shape)]&lt;/P&gt;&lt;P&gt;#CRIA A FUN��O&lt;BR /&gt;def CHKPROP(shape):&lt;/P&gt;&lt;P&gt;mxd = arcpy.mapping.MapDocument("CURRENT")&lt;BR /&gt;df = arcpy.mapping.ListDataFrames(mxd)[0]&lt;BR /&gt;addLayer = arcpy.mapping.Layer(shape)&lt;BR /&gt;arcpy.mapping.AddLayer(df, addLayer, "TOP")&lt;BR /&gt;ext = addLayer.getExtent()&lt;BR /&gt;df.extent = ext&lt;BR /&gt;df.scale = 10000&lt;/P&gt;&lt;P&gt;for fieldname in ['UPT','n_UPT','ra','setor','quadra','conjunto','lote','end_cart','projeto','leg_proj','data_reg','area','norma','leg_nor','codigo_reg','padrao_cor','uos_setor']:&lt;BR /&gt;if not fieldname in field_name:&lt;BR /&gt;arcpy.AddError ('{0} - campo ausente!'.format(fieldname))&lt;/P&gt;&lt;P&gt;for field in lstFields:&lt;BR /&gt;if field.name == "FID":&lt;BR /&gt;arcpy.AddWarning ("FID_OK")&lt;BR /&gt;elif field.name == "Shape":&lt;BR /&gt;arcpy.AddWarning ("Shape_OK")&lt;BR /&gt;elif field.name == "UPT":&lt;BR /&gt;if field.name == "UPT" and field.type == "String" and field.length == 20:&lt;BR /&gt;arcpy.AddWarning ("Item 1 UPT OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 1 UPT ERRO!!!")&lt;BR /&gt;elif field.name == "n_UPT":&lt;BR /&gt;if field.name == "n_UPT" and field.type == "String" and field.length == 10:&lt;BR /&gt;arcpy.AddWarning ("Item 2 n_UPT OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 2 n_UPT ERRO!!!")&lt;BR /&gt;elif field.name == "ra":&lt;BR /&gt;if field.name == "ra" and field.type == "Double":&lt;BR /&gt;arcpy.AddWarning ("Item 3 ra OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 3 ra ERRO!!!")&lt;BR /&gt;elif field.name == "setor":&lt;BR /&gt;if field.name == "setor" and field.type == "String" and field.length == 50:&lt;BR /&gt;arcpy.AddWarning ("Item 4 setor OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 4 setor ERRO!!!")&lt;BR /&gt;elif field.name == 'quadra':&lt;BR /&gt;if field.name == "quadra" and field.type == "String" and field.length == 50:&lt;BR /&gt;arcpy.AddWarning ("Item 5 quadra OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 5 quadra ERRO!!!")&lt;BR /&gt;elif field.name == "conjunto":&lt;BR /&gt;if field.name == "conjunto" and field.type == "String" and field.length == 50:&lt;BR /&gt;arcpy.AddWarning ("Item 6 conjunto OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 6 conjunto ERRO!!!")&lt;BR /&gt;elif field.name == "lote":&lt;BR /&gt;if field.name == "lote" and field.type == "String" and field.length == 50:&lt;BR /&gt;arcpy.AddWarning ("Item 7 lote OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 7 lote ERRO!!!")&lt;BR /&gt;elif field.name == "end_cart":&lt;BR /&gt;if field.name == "end_cart" and field.type == "String" and field.length == 180:&lt;BR /&gt;arcpy.AddWarning ("Item 8 end_cart OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 8 end_cart ERRO!!!")&lt;BR /&gt;elif field.name == "projeto":&lt;BR /&gt;if field.name == "projeto" and field.type == "String" and field.length == 50:&lt;BR /&gt;arcpy.AddWarning ("Item 9 projeto OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 9 projeto ERRO!!!")&lt;BR /&gt;elif field.name == "leg_proj":&lt;BR /&gt;if field.name == "leg_proj" and field.type == "String" and field.length == 150:&lt;BR /&gt;arcpy.AddWarning ("Item 10 leg_proj OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 10 leg_proj ERRO!!!")&lt;BR /&gt;elif field.name == "situacao":&lt;BR /&gt;if field.name == "situacao" and field.type == "String" and field.length == 20:&lt;BR /&gt;arcpy.AddWarning ("Item 11 situacao OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 11 situacao ERRO!!!")&lt;BR /&gt;elif field.name == "data_reg":&lt;BR /&gt;if field.name == "data_reg" and field.type == "String" and field.length == 10:&lt;BR /&gt;arcpy.AddWarning ("Item 12 data_reg OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 12 data_reg ERRO!!!")&lt;BR /&gt;elif field.name == "area":&lt;BR /&gt;if field.name == "area" and field.type == "Double":&lt;BR /&gt;arcpy.AddWarning ("Item 13 area OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 13 area ERRO!!!")&lt;BR /&gt;elif field.name == "norma":&lt;BR /&gt;if field.name == "norma" and field.type == "String" and field.length == 70:&lt;BR /&gt;arcpy.AddWarning ("Item 14 norma OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 14 norma ERRO!!!")&lt;BR /&gt;elif field.name == "leg_nor":&lt;BR /&gt;if field.name == "leg_nor" and field.type == "String" and field.length == 120:&lt;BR /&gt;arcpy.AddWarning ("Item 15 leg_nor OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 15 leg_nor ERRO!!!")&lt;BR /&gt;elif field.name == "codigo_reg":&lt;BR /&gt;if field.name == "codigo_reg" and field.type == "Integer" and field.length == 10:&lt;BR /&gt;arcpy.AddWarning ("Item 16 codigo_reg OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 16 codigo_reg ERRO!!!")&lt;BR /&gt;elif field.name == "padrao_cor":&lt;BR /&gt;if field.name == "padrao_cor" and field.type == "String" and field.length == 20:&lt;BR /&gt;arcpy.AddWarning ("Item 17 padrao_cor OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 17 padrao_cor ERRO!!!")&lt;BR /&gt;elif field.name == "uos_setor":&lt;BR /&gt;if field.name == "uos_setor" and field.type == "String" and field.length == 150:&lt;BR /&gt;arcpy.AddWarning ("Item 18 uos_setor OK")&lt;BR /&gt;else:&lt;BR /&gt;arcpy.AddError ("Item 18 uos_setor ERRO!!!")&lt;BR /&gt;CHKPROP(shape)&lt;/P&gt;</description>
      <pubDate>Tue, 23 May 2023 19:18:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-ideas/check-table-properties/idi-p/1247717</guid>
      <dc:creator>afrs10</dc:creator>
      <dc:date>2023-05-23T19:18:56Z</dc:date>
    </item>
    <item>
      <title>Re: Check Table Properties - Status changed to: Needs Clarification</title>
      <link>https://community.esri.com/t5/python-ideas/check-table-properties/idc-p/1249692#M185</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Thank you for sharing this script with us. It looks like it can be very useful in verifying the integrity of shapefiles before inserting them into the database. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;We noticed that it checks for specific fields and their properties, is there an idea for a specific new feature that you're trying to ask for in this script? &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If so, we would be happy to hear more about it.&amp;nbsp;Otherwise, if you are just wanting to share your script with others in case it would help fulfill&amp;nbsp;their needs too, this is better suited for the &lt;A href="https://community.esri.com/t5/tag/arcpy/tg-p/board-id/arcgis-pro-questions" target="_self"&gt;Esri Community&lt;/A&gt;&amp;nbsp;forum rather than here.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Either way, we appreciate your willingness to share your knowledge, it can be extremely helpful for us and others.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Jan 2023 20:54:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-ideas/check-table-properties/idc-p/1249692#M185</guid>
      <dc:creator>HannesZiegler</dc:creator>
      <dc:date>2023-01-19T20:54:07Z</dc:date>
    </item>
    <item>
      <title>Re: Check Table Properties - Status changed to: Closed</title>
      <link>https://community.esri.com/t5/python-ideas/check-table-properties/idc-p/1270386#M198</link>
      <description />
      <pubDate>Wed, 22 Mar 2023 14:00:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-ideas/check-table-properties/idc-p/1270386#M198</guid>
      <dc:creator>ShaunWalbridge</dc:creator>
      <dc:date>2023-03-22T14:00:04Z</dc:date>
    </item>
  </channel>
</rss>

