POST
|
Hi Ofir, This is a known issue with the Change Version GP tool and we are working on fixing it in an upcoming release. This will help change the version for all container datasets and their associated layers (Parcel Fabric, Utility Network, etc.). In the meantime, we have found success using the ArcGIS Python API to access version information and loop through each layer in the map to change its properties. See this post specifically Thanks, Ken
... View more
02-12-2024
10:57 AM
|
0
|
0
|
109
|
BLOG
|
Released with Pro 3.2 is the ability to read and update the active parcel record in a map containing a parcel fabric. Using ArcPy CIM Access, this set of properties will allow users to automate: Discovery of a map’s active record. To set a new active record. Activate/deactivate the active record. Toggle the visibility of features in the active record. The Cartographic Information Model (CIM) provides access to many settings and properties of ArcGIS Pro that may not have a publicly exposed API through the ArcPy.mp module. Starting at Pro 3.2, the CIM now contains the following properties: Type Property Description Bool isParcelFabricLayer Denotes the layer is of type ParcelFabricLayer String activeRecord The GlobalID value of the active record (if set) Bool enabled Is the parcel record set in the current map? (True | False) Bool showActiveRecordOnly Should the map only display features participating in the active record A typical workflow may be: Access a Pro project and map with arcpy.mp Determine if a map has a parcel fabric. If a parcel fabric layer is in the map, determine if there is an active record. If no active record, set the record with a known GUID of an existing record. Set the record status to “enabled”. Optionally, set to display only the parcel features associated to the now active record. # Full script for Python Window.
# Replace "CURRENT" with path to target Pro Project to run outside of Pro
# access the project and map
current_project = arcpy.mp.ArcGISProject("CURRENT")
target_map = current_project.listMaps()[0]
print(target_map.name)
# test the parcel fabric exists by its name
map_layers = target_map.listLayers()
parcel_layer = [lyr for lyr in map_layers if lyr.isParcelFabricLayer][0]
# if the parcel fabric exists, check for the parcelFabricActiveRecord property
if parcel_layer:
# get current CIM object
parcel_cim_def = parcel_layer.getDefinition("v3")
# if the active record is not set, set it.
if not parcel_cim_def.parcelFabricActiveRecord.activeRecord:
# Set the new values
parcel_cim_def.parcelFabricActiveRecord.activeRecord = "6B1431DA-1D9B-4B69-BD24-79EB643D8C98"
parcel_cim_def.parcelFabricActiveRecord.enabled = True
parcel_cim_def.parcelFabricActiveRecord.showActiveRecordOnly = True
# save the CIM definition, save project, open the map (optional)
parcel_layer.setDefinition(parcel_cim_def)
current_project.save()
target_map.openView()
... View more
01-25-2024
09:23 AM
|
5
|
0
|
182
|
POST
|
Ah, OK. According to the error, the feature classes are registered as versioned but the connection file is not set to Branch. 00264: Branch versioned dataset, <value>, is not supported from a versioned workspace when the service is editable—ArcGIS Pro | Documentation Right click the .sde file and choose Geodatabase Connection Properties There should be an option for Branch versioning. Select Branch Re-add the fabric to the map
... View more
01-11-2024
06:57 PM
|
0
|
0
|
334
|
POST
|
The best thing to do at this point is to run the analyzer. It will of course tell you that Branch Versioning is not set, but it should give clues as to why. Some things to check when the Branch Versioning option is missing: 1. Make sure the fabric feature dataset was registered as versioned. 2. Is the geodatabase connection file set to Branch? Right click the .sde file and choose Geodatabase Connection Properties There should be an option for Branch versioning If this was the issue, check the option on and re-add your fabric to the map 3. The Validation or other layers and tables were not registered as versioned. Perhaps the parcel fabric is registered correctly but something else isn't. This could be the 3 validation layers and its associated table. Some other supporting layer that is outside of the feature dataset. Run the analyzer and let us know what it reports. Thanks!
... View more
01-11-2024
03:49 PM
|
0
|
1
|
347
|
POST
|
Hi @RobertChaney To recalculate the extents in a feature service (published) parcel fabric, the service needs to be stopped and the geoprocessing tool run on the enterprise geodatabase feature classes. The service can then be started and the new extents should be reflected immediately. This can be done with a short arcpy script: import arcpy
from arcpy import env
gdb = r"/path/to/enterprise/geodatabase.sde"
env.workspace = gdb
fds = "fabric_feature_dataset"
for fc in arcpy.ListFeatureClasses(feature_dataset=fds):
arcpy.RecalculateFeatureClassExtent_management(fc) Regarding the "calculating extent" popup, there might be something more going on. I would suggest opening a support case where they can take a look.
... View more
12-15-2023
09:12 AM
|
0
|
0
|
229
|
IDEA
|
For branch versioned feature classes, the version differences can be found with the REST API. This was implicitly mentioned here with the ArcGIS Pro .NET SDK using the Differences method. Differences—ArcGIS REST APIs | ArcGIS Developers It is also possible to retrieve the differences with the ArcGIS Python API arcgis.features.managers module | ArcGIS API for Python from arcgis import GIS
from arcgis.features._version import VersionManager
gis = GIS(
"https://server.domain.com/webadaptor/",
"user",
"password"
)
version_manager_url = ("https://server.domain.com/webadaptor/rest/services/FeatureServiceName/VersionManagementServer")
version_management_server = VersionManager(version_manager_url , gis)
with version_management_server.get("owner.version_name", "read") as version:
differnces = version.differences(result_type="features", layers=[15])
''' Result:
{
"differences" : [
{
"layerId" : long,
"inserts" : [ <objectId> ],
"updates" : [ <objectId> ],
"deletes" : [ <objectId> ]
}
],
"features" : [
{
"layerId" : long,
"inserts" : [
{
"attributes" : {
"OBJECTID" : 581,
"SUBTYPE" : 3,
. . .
"SHAPE.STLength()" : 132.5
},
"geometry" : {
"hasZ" : true,
"hasM" : true,
"paths" : [
. . .
],
"success" : <true | false>,
'''
... View more
12-08-2023
02:58 PM
|
0
|
0
|
427
|
POST
|
Hi Dean, Thanks for bringing this up. I am getting mixed results with different methods. I am not able to reproduce the issue using Pro 3.2 or Pro 3.1.4 from the Python Window with an open map (target_map("CURRENT")) or from a script pointing to the map project. Interestingly, I can reproduce it with a Notebook using an open map (target_map("CURRENT")). To make sure we're on the same page, with the sample code above, are you expecting only the parcel fabric to switch to the version? I believe we determined that we had to iterate through all of the feature layers to change their version. This is my map after targeting only the parcel fabric: UPDATE: I ran the script from the Python window and the parcel fabric and parcel layers all change version. The topology does not:
... View more
11-20-2023
10:43 AM
|
0
|
1
|
422
|
POST
|
This session will consist of short and useful data management demos: How to share a subset of parcel data as a live service that is ‘view-only’ using a database view; how to access the parcel fabric logging in the ArcGIS Pro client and on the ArcGIS Enterprise to better understand performance issues; deploying on the cloud and more.
... View more
10-31-2023
11:25 AM
|
1
|
0
|
486
|
POST
|
As long as the gisadmin user does not have any elevated permissions you should be able to copy the data. Look out for things like "sysadmin" or "db_owner". Those roles will alter the schema name and cause the error you saw.
... View more
08-14-2023
01:49 PM
|
0
|
1
|
563
|
POST
|
Hello, It looks like the gisadmin user may have some elevated privileges. Please try copying the fabric with a database authenticated user that has only basic editing privileges. CREATE FUNCTION CREATE SEQUENCE CREATE TABLE CREATE VIEW Here is the doc describing the enterprise geodatabase user requirements for parcel fabrics: The feature dataset in an enterprise geodatabase must be from a database connection established as a database authenticated user. This user must have database privileges to create content and cannot be an OS-authenticated, the database administrator, or the geodatabase administrator account. The connected user becomes the parcel fabric owner and administrator. Create a parcel fabric—ArcGIS Pro | Documentation Thanks, Ken
... View more
08-14-2023
01:05 PM
|
1
|
1
|
591
|
POST
|
Can you provide the following info: 1. The dbms or gdb type of both the ArcMap data and the Pro data. Is this an enterprise gdb, file gdb or mobile gdb? 2. Is the polygon feature class in a parcel fabric or a simple feature class? 3. How many polygons are being calculated?
... View more
06-28-2023
08:36 AM
|
0
|
1
|
1064
|
IDEA
|
Hi Ruth, While many Parcel Fabric operations can be performed with Geoprocessing tools by themselves or in a model, many cannot. However, if you are using a published feature service fabric, you have access to all parcel fabric functions either via REST or with the ArcGIS Python API. arcgis.features.managers module | ArcGIS API for Python All parcel fabric tools are available as functions in the Python API including Duplicate and Merge as you mentioned. We have some tutorials for getting started here: Part 1 - Introduction to Parcel Fabric layers | ArcGIS API for Python Part 2 - Branch Versioning with Parcel Fabric | ArcGIS API for Python Part 3 - Create a New Parcel Record | ArcGIS API for Python Part 4 - Query Parcels | ArcGIS API for Python Part 5 - Merge Parcels | ArcGIS API for Python The set of tutorials includes working with branch versions and creating parcel records with the FeatureServer endpoint. Also, while the tutorials use Notebooks, the code can be used in standard Python scripts. Thanks, Ken
... View more
05-17-2023
11:32 AM
|
0
|
0
|
692
|
POST
|
Hi Dean, It would be nice if the Pro Mapping module had a refresh method for a current map or view object. This would make a great enhancement request. We can hack a workaround using a selection and panning to the selection. I see in your UpdateCursor you are updating a specific feature. By using that feature's objectid, we can select it then pan to it. That should redraw the layers and show the edit. # also get a map 'view' from the project
view = thisProject.activeView
with arcpy.da.UpdateCursor(AnnoLyr, ["MapNumber"], "OBJECTID = 7695") as cursor:
for row in cursor:
row[0] = MapNumber
cursor.updateRow(row)
edit.stopOperation()
edit.stopEditing(save_changes=True)
# select the edited feature then pan to it
AnnoLyr.setSelectionSet([7695], "NEW")
view.panToExtent(view.getLayerExtent(AnnoLyr), selection_only=True) Let me know if that helps. Ken
... View more
11-17-2022
09:04 AM
|
0
|
0
|
508
|
POST
|
I'm glad it's working! And yes, you will have to watch out for that extra slash when building up URLs. I'm not sure if there's a more efficient way to get them. Although it's hard to see in the Python API sample, the trailing slash is in the base_server_url variable. Ken
... View more
09-07-2022
10:59 AM
|
0
|
0
|
605
|
Title | Kudos | Posted |
---|---|---|
5 | 01-25-2024 09:23 AM | |
1 | 10-31-2023 11:25 AM | |
1 | 08-14-2023 01:05 PM | |
2 | 02-21-2023 07:51 PM | |
2 | 05-18-2022 01:33 PM |
Online Status |
Online
|
Date Last Visited |
6 hours ago
|