IDEA
|
Thanks Kory, I took a look at BUG-000125106 and I agree, it looks like the same bug (with the addition of a few extra symptoms and workaround of turning off labels/pausing display). Thanks for your quick response! Regards, M.J. Churchill
... View more
11-03-2020
07:37 AM
|
1
|
0
|
1988
|
IDEA
|
When editing cells sequentially in a Shapefile table, ArcGIS Pro will begin to fail to correctly recognize what should be entered in the cell. It will fail to recognize keystrokes, leave characters behind from the previous cell value, enter characters out of order, and will even jump to other cells in the same column (usually previous cells). This behaviour also occurs when editing in the attributes pane when you are hitting enter to get to the next field then start typing. Steps to create the issue: 1. Load a Shapefile (and optionally another layer or layers) into an ArcGIS Pro(2.6.x) map. 2. Turn on labels for any of the layers and zoom the map so a certain number of labels are visible(perhaps as few as 20 but this may depend on your computer's speed, how many layers you have, how many have labels turned on, perhaps even the number of characters in the labels, etc.) 3. Open the attribute table of the Shapefile. 4. Begin editing by typing in a cell then hitting enter to get to the next record and do that repeatedly without pausing for more that a second or two between hitting enter and beginning to type in the next cell. (Or, select a feature and open the attributes pane and begin editing fields by typing then hitting then typing, etc. to edit multiple fields for the record. This assumes of course that there are at least several fields in the table.) This issue occurs with ArcGIS Pro 2.6.x (I am currently at 2.6.2 but began noticing this issue at least at 2.6.0). It has likely been present since the ability to edit in this way was added. (This functionality was requested in an idea in 2017 by Nicholas McNamara.) Also see Rich Emerson's idea which seems related ("Do not refresh screen if editing an attribute not connected to display properties") My system info, in case it is pertinent: Windows 10 Pro, 16GB memory; 64-bit; Intel(R) Core(TM) i7-7500U CPU @ 2.7GHz 2.90GHz The workarounds for this issue are pretty simple: just turn off labels or pause drawing while editing. However, it is annoying and you can end up with weird values in your data if you don't immediately notice it's happening. (Thankfully I don't generally work with important dollar figures or planning measurements.) This is more of a bug than an idea but Esri support recommended I post it here.
... View more
11-02-2020
02:15 PM
|
0
|
8
|
2041
|
POST
|
I think I have figured it out. The answer is to use arcpy.MakeFeatureLayer_management to make temporary layers of user selected features and the feature passed as a parameter rather than trying to get the tool to recognize what SelectLayerByAttribute has done. So here is the corrected code: def generateNewRoute(rstart):
FC=r"C:\GIS_data\base\routes.shp""
fields = ['ROUTENUM']
wc="ROUTENUM = " + str(rstart)
cnums=[]
snums=[]
# make a temporary layer from the source dataset using a where clause to
# select only the desired feature
arcpy.MakeFeatureLayer_management(FC, "startroute", where_clause=wc)
# clear any selected features
arcpy.SelectLayerByAttribute_management(routelyr, "CLEAR_SELECTION")
# select features touching boundaries of features in the temporary layer (contains only record 211)
arcpy.SelectLayerByLocation_management(routelyr, "boundary_touches", "startroute", selection_type="NEW_SELECTION")
# check result: this now outputs the correct list of features touching the
# boundaries of record 211
with arcpy.da.SearchCursor(routelyr, fields) as connectedrecs:
for c in connectedrecs:
cnums.append(c[0])
arcpy.AddMessage("Connected records: " + str(cnums))
I knew there had to be a simple solution! Thanks to anyone who considered the problem (but I beat you to it ). Regards, M.J.
... View more
08-20-2020
07:37 AM
|
0
|
0
|
1008
|
POST
|
Yes, they change, but unfortunately not for the better. With record with ROUTENUM = 218 selected prior to running the tool, the original messages returned by the arcpy.AddMessage lines in the code were: ROUTENUM = 211 Should be all recs: [218] Selected records: [211] (Which is the correct selection at this point) Connected records: [217, 227, 266, 219] (Note that these are the records touching the boundaries of record 218 whereas it is a list of records touching the boundaries of record 211 that is needed.) With line 7 changed to routelyr = r_map.listLayers("routes")[0].longName, messages returned are: ROUTENUM=211 Should be all recs: [218] Selected records: [218] Connected records: [218] Thank you for your suggestion anyway. Any other ideas?
... View more
08-19-2020
08:52 PM
|
0
|
0
|
1008
|
POST
|
Thank you in advance for any assistance. My problem is that arcpy functions do not seem to recognize each others' results. Specifically: arcpy.da.SearchCursor does not seem to recognize SelectLayerByAttribute having cleared the selection; and SelectLayerByLocation does not recognize either that SelectLayerByAtttribute cleared the selection or that it was then used to make a new selection. The code sample below is from a longer script which iterates through features selected by the user then uses one of those features, given by the user as a parameter to the tool, to do further analysis. But I have limited the code sample below to the part that is a problem. I am running the script as a tool in an ArcGIS Pro project. (2.5.0) & the data is a Shapefile of lines. Note that in the full code, the argument rstart would be the parameter to the tool and would be selected by the user from a list created by the tool validation script (from ROUTENUM values of selected features). However, for the example, assume that at least one record was selected before the tool was run and the function in the code was run with the call: generateNewRoute(211) Here is the code: import arcpy
## Get references to ArcGIS Pro objects
pro_proj=arcpy.mp.ArcGISProject("CURRENT")
r_map = pro_proj.listMaps("Map")[0]
routelyr = r_map.listLayers("routes")[0]
def generateNewRoute(rstart):
fields = ['ROUTENUM']
wc="ROUTENUM = " + str(rstart)
rnums=[]
cnums=[]
nnums=[]
# correctly prints "ROUTENUM = 211" so SQL seems fine
arcpy.AddMessage(wc)
# Clear any existing selection
arcpy.SelectLayerByAttribute_management(routelyr, "CLEAR_SELECTION")
# Check that no records are selected: (This should now return a
# list of all records (the behaviour of SearchCursor if no records
# are selected) but instead returns a list of records that
# were selected prior to running the tool
with arcpy.da.SearchCursor(routelyr, fields) as selectioncleared:
for n in selectioncleared:
nnums.append(n[0])
arcpy.AddMessage("Should be all recs:" + str(nnums))
# select the feature we want to use in SelectLayerByLocation
# In this case the feature with ROUTENUM = 211:
arcpy.SelectLayerByAttribute_management(routelyr, "NEW_SELECTION", where_clause=wc)
# Check that the record was selected: This correctly prints the message
# "Selected records: [211]"
with arcpy.da.SearchCursor(routelyr, fields) as selectedrecs:
for r in selectedrecs:
rnums.append(r[0])
arcpy.AddMessage("Selected records: " + str(rnums))
# Select records touching the boundary of the selected record.
arcpy.SelectLayerByLocation_management(routelyr, "boundary_touches", select_features=routelyr, selection_type="NEW_SELECTION")
# Check the result: This should return a list of records touching
# the endpoints of record 211. But, instead it returns a list of
# records touching the endpoints of records selected prior to
# running the tool (or, if no records were previously selected, a
# list of all records that have any endpoints touching an endpoint
# of another feature)
with arcpy.da.SearchCursor(routelyr, fields) as connectedrecs:
for c in connectedrecs:
cnums.append(c[0])
arcpy.AddMessage("Connected records: " + str(rnums))
What I need is a list of the features touching the boundary of a feature selected by SelectLayerByAttribute_management (in the example, record with ROUTENUM = 211 but ultimately with values that would be generated in the code, not from a preexisting selection.) If someone could tell me what I am doing wrong here, I would be very appreciative. Thanks, M.J.
... View more
08-19-2020
12:58 PM
|
0
|
3
|
1067
|
POST
|
Hi all, I have a field containing values that are comma separated lists [e.g. '1, 2, 3', '6', '2, 5, 9']. Note that this is three strings marked by single quotes. I try to use values from this field in a definition query like so: But, as soon as I close the dialog, the values get converted to a list of the individual values as strings - instead of three values, there are now 7 values ['1', '2', '3', etc.]: Only the value without a comma, '6', is now correct. I realize I can work around this by adding a field and converting the commas to some other character but I feel like this should not be necessary. Why is ArcGIS Pro altering the strings? [I am using ArcGIS Pro 2.4.0 on a Windows 10 machine] Regards, MJ
... View more
08-15-2019
04:20 PM
|
0
|
6
|
1351
|
POST
|
Thanks Michael, You are right; as you suggested, I upgraded to 2.2.1 and I can no longer reproduce the problem. Feeling a bit sheepish now... especially about the tantrum.... glad you couldn't see that
... View more
08-08-2018
11:43 AM
|
0
|
0
|
242
|
POST
|
Hmmm.... I think I am going to skip trying to recreate the crash.... Especially with the new skookum computer my employer recently bought for me to use. I only had the one crash with Pro so far. Maybe I'll never have another.... (do I hear laughter?) ArcMap definitely had a warning that popped up: "You are about to do a calculate outside of an edit session....." It used to annoy me. I guess I should have appreciated it more.
... View more
08-08-2018
09:41 AM
|
0
|
0
|
1486
|
POST
|
Hi Kory, your reply was extremely helpful! The Start Editing option is definitely crucial to the problem. I was forgetting to check the box and that is definitely why the save edits button was disabled. But, it also seems to affect whether you can subsequently edit directly in the table cells. If I make sure Start Editing is checked before I run Calculate Field, the problem does not occur. However, if I run Calculate Field without checking that box, the fields become locked and I cannot reactivate them. I've tried calculating again with the button checked, but that doesn't help. Once I have run Calculate Field with the box unchecked, the only way I have been able to get the click-in-cell functionality back is to close the program. This definitely seems like a bug but the workaround is pretty easy - I just have to make sure I never forget to check the Start Editing box. Thanks very much for your help! M.J.
... View more
08-08-2018
09:17 AM
|
0
|
2
|
1486
|
POST
|
Hi Thomas, Thank you for your reply. I am using Pro version 2.1.2 and the data is in a file geodatabase. The field type does not seem to matter. The database contains fields that are text and numeric and the behavior is the same for all. Sorry, definitely should have provided the above info in the question and I have updated my question to include. I should also mention that it is a stand alone table in the FGDB that I am trying to edit, not a spatial layer.
... View more
08-08-2018
08:45 AM
|
0
|
0
|
1485
|
POST
|
I have a fairly large table that needs various edits. I am using ArcGIS Pro 2.1.2 and the data is in a File Geodatabase. The table is a standalone table, not a spatial layer. In some cases, the same action needs to be done on multiple rows, in which case, using Calculate Field is obviously the best option. However, there are many rows where individual typos or text formatting needs to be fixed. In those cases it makes more sense to just click on the individual cells to make the corrections rather than using Calculate Field over and over to fix a single row each time. (This is unfortunately far more frustrating than in ArcMap because of the way ArcGIS Pro insists on resizing columns and losing your place in the table, but setting that aside...) The issue is that if after I use Calculate Field, I am no longer able to edit in individual cells (double clicking on the cell has no effect). The only way I have been able to restore the functionality is to close ArcGIS Pro and reopen the project. This is extremely frustrating and time consuming. I also notice that after I use Calculate Field, the 'Save' button in the 'Edit' tab is not activated so I can't save the edits but if Pro crashes, the edits are still lost. The problem occurs even though I have only made edits to the one table and have it set as the only editable layer. Closing the 'Calculate Field' Tool also does not help. Is there something I'm missing here? Is there a way to force Pro to save the edits and 'unlock' the cell editing ability without having to close and reopen the application? Thanks for any suggestions!
... View more
08-07-2018
01:34 PM
|
0
|
10
|
1934
|
POST
|
You can't do this directly from ArcGIS Desktop or Catalog but if you have administrator privileges on your computer you can get around it. Do exactly what you would do to create a new toolbox for a map document, saving the new toolbox somewhere on your computer where administrator access is not needed. Then just browse to the location where you saved the new toolbox and move it to the ArcGIS installation Toolboxes folder. (On my computer this is in C:\Program Files (x86)\ArcGIS\Desktop10.4\ArcToolbox\Toolboxes). Toolboxes in this folder appear by default in new .mxd documents. As I said, you need to be an administrator on the computer your using. Otherwise the template method may be the only way to go. To add scripts to the toolbox, you can either do it before you move it or you need to set the permissions for the tbx file in the Toolboxes folder [Right click on the toolbox, click 'properties', then the Security tab. Click the Edit... button. Under 'Group or user names', select 'Users...' or your own user name (something other than 'SYSTEM' or 'Administrators...'. Finally, under Permissions for Users, check the Full control box, then OK out] M.J.
... View more
09-22-2016
01:03 PM
|
3
|
2
|
2427
|
POST
|
Perhaps you've already had this question answered by now. However, in case any one else is looking for an answer (as I was): The problem may be that you need to add a reference to the ArcObjects library to the project. In Eclipse, you can add the reference by right clicking on your project in the Package Explorer. Scroll down to 'build path' In the pop-up menu, select 'Add libraries' In the Add Library dialog, select 'ArcObjects Library', then click 'Next', then 'Finish'. This worked for me anyway. I am using Eclipse:Kepler Service Release 1 with ArcGIS 10
... View more
10-09-2013
08:17 AM
|
0
|
0
|
534
|
POST
|
Hello, I am wondering if anyone else has encountered the following issue: I have a polygon layer in ArcMap with several classes. One of the classes is symbolized with an outline and a simple fill, the rest are symbolized with an outline and no fill. Transparency for all layers is set to 0. In the ArcMap window the data displays as it should with the background white and the filled polgyons grey: [ATTACH=CONFIG]26122[/ATTACH] However, when I export the map (I've tried exporting as .jpg and .pdf), it makes the background the same colour as the filled polygons: [ATTACH=CONFIG]26123[/ATTACH] If anyone knows how to prevent this from happening, please let me know. Thanks, M.J.
... View more
07-22-2013
12:01 PM
|
0
|
1
|
3208
|
POST
|
I am not sure if your problem has the same cause but I was getting the same error in ArcMap trying to run a Python script. Finally I discovered the script tool needs to run 'in process' in order to be able to access the 'CURRENT' map document. (Right click on script in ArcToolbox, select Source tab and make sure 'Run Python script in process' is checked). Hope that helps
... View more
07-28-2011
03:09 PM
|
0
|
0
|
594
|
Title | Kudos | Posted |
---|---|---|
1 | 11-03-2020 07:37 AM | |
3 | 09-22-2016 01:03 PM |
Online Status |
Offline
|
Date Last Visited |
09-07-2023
07:27 PM
|