예제 #1
0
def create_gdb_featureclass(gdb, name):
    fc = arcpy.CreateFeatureclass_management(gdb, name, geometry_type="POINT")
    arcpy.EnableAttachments_management(fc)
    arcpy.AddGlobalIDs_management(fc)
    arcpy.EnableEditorTracking_management(
        fc,
        creator_field="created_user",
        creation_date_field="created_date",
        last_editor_field="last_edit_user",
        last_edit_date_field="last_edit_date",
        add_fields=True,
        record_dates_in="UTC")
    print("Feature Class {} created".format(name))
    #Add comments table
    fc_comments_name = "{}_Comments".format(name)
    fc_comments = create_gdb_table(gdb, fc_comments_name)
    arcpy.EnableAttachments_management(fc_comments)
    arcpy.AddGlobalIDs_management(fc_comments)
    arcpy.EnableEditorTracking_management(
        fc_comments,
        creator_field="created_user",
        creation_date_field="created_date",
        last_editor_field="last_edit_user",
        last_edit_date_field="last_edit_date",
        add_fields=True,
        record_dates_in="UTC")
    return fc, fc_comments, fc_comments_name
예제 #2
0
def createMosaicDataset(gdbPath, mdName, prjFile):
    """
    1.创建镶嵌数据集
    3.开启自动跟踪功能    会自动添加四个属性字段
    """
    gdbname = gdbPath
    mdname = mdName
    prjfile = prjFile
    noband = "1"
    pixtype = "32_BIT_FLOAT"

    # 1.创建镶嵌数据集
    mdpath = gdbPath + "/" + mdName
    if not arcpy.Exists(mdpath):
        arcpy.CreateMosaicDataset_management(gdbname, mdname, prjfile, noband, pixtype)

    # 2.并添加四个属性字段
    # if arcpy.Exists(mdpath):
    #     arcpy.AddField_management(mdpath, 'createpreson', 'TEXT', 18, 11)
    #     arcpy.AddField_management(mdpath, 'createtime', 'DATE')
    #     arcpy.AddField_management(mdpath, 'updateepreson', 'TEXT', 18, 11)
    #     arcpy.AddField_management(mdpath, 'updatetime', 'DATE')

    # 3.开启自动跟踪功能
    desc = arcpy.Describe(mdpath)
    if not desc.editorTrackingEnabled:
        arcpy.EnableEditorTracking_management(mdpath, "createperson", "createtime", "updateperson", "updatetime",
                                              "ADD_FIELDS", "UTC")
예제 #3
0
def runapp(tfl_prepare_edits):

    arcpy.AddMessage('extracted at ' + str(extract_timestamp))

    #establish the BCGW connection to check the schedule A AND TFL Boundary
    BCGWConnection = get_bcgw_connection(bcgw_uname, bcgw_pw)

    if not BCGWConnection is False:  #only proceed if connection succeeds

        #Copy the final folder to the Edit area
        can_copy = copy_input_tfl(folder_basename)

        #only proceed if the edit folder does not already exist and copy succeeded
        if can_copy == True:
            manage_keep_folder(folder_basename)

            #uncompress the gdb - final is compressed to prevent accidental edits
            arcpy.UncompressFileGeodatabaseData_management(TFL_EDITS_FOLDER + os.sep + folder_basename + os.sep + \
            'data' + os.sep + 'FADM_' + folder_basename + '.gdb')

            #Workspace is the feature dataset
            workspace = TFL_EDITS_FOLDER + os.sep + folder_basename + os.sep + \
            'data' + os.sep + 'FADM_' + folder_basename + '.gdb' + os.sep + 'TFL_Data'

            # enable editor tracking on lines
            tfl_lines = os.path.join(workspace, folder_basename + '_Line')
            arcpy.EnableEditorTracking_management(
                tfl_lines, 'created_user', 'created_date', 'last_edited_user',
                'last_edited_date', 'NO_ADD_FIELDS', 'DATABASE_TIME')

            #Delete all tables from Edit gdb except the TFL Lines and Schedule A
            delete_tables(workspace)

            #Copy empty feature classes and metadata table from template
            copy_tables_from_template(workspace, folder_basename)

            #Delete all lines with status NOT active
            delete_non_active_lines(workspace, folder_basename)

            #check to see if the lines build one or more polygons
            create_polys(workspace, folder_basename)

            #check the schedule A AND TFL Boundary layers for differences
            check_bcgw_to_final_differences(folder_basename, workspace,
                                            BCGWConnection)

            #Create topology and add lines to it
            create_topology(workspace, folder_basename)

            #Run topology and report any errors - these are info only
            run_topology(workspace)

            #Set initial values for the Change History table
            user = getpass.getuser()
            table = workspace[:-9] + os.sep + folder_basename + '_Change_History'
            update_change_history(table, extract_timestamp, user)

    else:
        arcpy.AddError('Error creating BCGW Connection - try again')
예제 #4
0
def addTracking(tfc):
    if arcpy.Exists(tfc):
        addMsgAndPrint('    Enabling edit tracking in '+tfc)
        try:
            arcpy.EnableEditorTracking_management(tfc,'created_user','created_date','last_edited_user','last_edited_date','ADD_FIELDS','DATABASE_TIME')
        except:
            addMsgAndPrint(tfc)
            addMsgAndPrint(arcpy.GetMessages(2))
def create_gdb_featureclass(gdb, name):
    fc = arcpy.CreateFeatureclass_management(gdb, name, geometry_type="POINT")
    arcpy.AddGlobalIDs_management(fc)
    arcpy.EnableAttachments_management(fc)
    arcpy.EnableEditorTracking_management(fc, "created_user", "created_date",
                                          "last_edit_user", "last_edit_date",
                                          "ADD_FIELDS", "UTC")
    print("Feature Class {} created".format(name))
    #Add comments table
    fc_comments_name = "{}_Comments".format(name)
    fc_comments = create_gdb_table(gdb, fc_comments_name)
    arcpy.AddGlobalIDs_management(fc_comments)
    arcpy.EnableAttachments_management(fc_comments)
    arcpy.EnableEditorTracking_management(fc_comments, "created_user",
                                          "created_date", "last_edit_user",
                                          "last_edit_date", "ADD_FIELDS",
                                          "UTC")
    return fc_comments_name
예제 #6
0
def turnOnEditorTracking(fc):
    try:
        arcpy.EnableEditorTracking_management(fc, 'CREATEDBY', 'CREATEDON',
                                              'EDITEDBY', 'EDITEDON',
                                              'NO_ADD_FIELDS')
        print("Editor Tracking has been turned on for " + fc)
    except:
        pass
        print("Failed turning on Editor Tracking for " + fc)
예제 #7
0
def enable_tracking(dataset, tracking_schema):
    creator_field = tracking_schema.get('creator_field', None)
    creation_date_field = tracking_schema.get('creation_date_field', None)
    last_editor_field = tracking_schema.get('last_editor_field', None)
    last_edit_date_field = tracking_schema.get('last_edit_date_field', None)
    add_fields_value = tracking_schema.get('last_editor_field', 'NO_ADD_FIELDS')
    record_dates_in = tracking_schema.get('record_dates_in', 'UTC')

    arcpy.EnableEditorTracking_management(in_dataset=dataset, creator_field=creator_field, creation_date_field=creation_date_field,
                                          last_editor_field=last_editor_field, last_edit_date_field=last_edit_date_field,
                                          add_fields=add_fields_value, record_dates_in=record_dates_in)

    return dataset
예제 #8
0
    def trackedits(self):

        # https://pro.arcgis.com/en/pro-app/tool-reference/data-management/enable-editor-tracking.htm
        # this will create fields only if they dont exist
        # I am gonna fix the field names here.  Reminder that our goal is to
        # be opinionated and consistent across anything we manage

        logging.info('enabling editor tracking on {0}'.format(self.name))

        return self.interpret(
            arcpy.EnableEditorTracking_management(self.featureclass,
                                                  'CREATED_USER',
                                                  'CREATED_DATE',
                                                  'LAST_EDITED_USER',
                                                  'LAST_EDITED_DATE',
                                                  'NO_ADD_FIELDS', 'UTC'))
예제 #9
0
def addStandardMosaicDatasetFields(md_path):
    arcpy.AddMessage("Adding fields to Mosaic Dataset '{}'".format(md_path))
    # Add the required metadata fields to the Master/Project Mosaic Dataset
    #     Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_ID, field_length="100", field_alias=CMDRConfig.PROJECT_ID.replace("_", " "), add_index=True)
    Utility.addAndCalcFieldDate(dataset_path=md_path,
                                field_name=CMDRConfig.PROJECT_DATE,
                                field_alias=CMDRConfig.PROJECT_DATE.replace(
                                    "_", " "),
                                add_index=True)
    Utility.addAndCalcFieldText(dataset_path=md_path,
                                field_name=CMDRConfig.RASTER_PATH,
                                field_length="800",
                                field_alias=CMDRConfig.RASTER_PATH.replace(
                                    "_", " "),
                                add_index=True)
    Utility.addAndCalcFieldText(dataset_path=md_path,
                                field_name=CMDRConfig.PROJECT_SOURCE,
                                field_length="20",
                                field_alias=CMDRConfig.PROJECT_SOURCE.replace(
                                    "_", " "),
                                add_index=True)
    #     Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SR_XY_NAME, field_length="100", field_alias=CMDRConfig.PROJECT_SR_XY_NAME.replace("_", " "), add_index=True)
    #     Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SR_XY_UNITS, field_length="20", field_alias=CMDRConfig.PROJECT_SR_XY_UNITS.replace("_", " "), add_index=True)
    #     Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SR_XY_CODE, field_length="100", field_alias=CMDRConfig.PROJECT_SR_XY_CODE.replace("_", " "), add_index=True)
    #     Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SR_Z_NAME, field_length="100", field_alias=CMDRConfig.PROJECT_SR_Z_NAME.replace("_", " "), add_index=True)
    #     Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.PROJECT_SR_Z_UNITS, field_length="100", field_alias=CMDRConfig.PROJECT_SR_Z_UNITS.replace("_", " "), add_index=True)
    #     Utility.addAndCalcFieldText(dataset_path=md_path, field_name=CMDRConfig.FILE_NAME, field_length="100", field_alias=CMDRConfig.FILE_NAME.replace("_", " "), add_index=True)

    arcpy.EnableEditorTracking_management(
        in_dataset=md_path,
        creator_field="created_user",
        creation_date_field="created_date",
        last_editor_field="last_edited_user",
        last_edit_date_field="last_edited_date",
        add_fields="ADD_FIELDS",
        record_dates_in="UTC")
    Utility.addToolMessages()
# Add Coded Value to Domain

#arcpy.AddCodedValueToDomain_management (in_workspace, doname, "Yes", "Yes")
arcpy.AddCodedValueToDomain_management(workspace, doname, "Yes", "Yes")

#arcpy.AddCodedValueToDomain_management (in_workspace, doname, "No", "No")
arcpy.AddCodedValueToDomain_management(workspace, doname, "No", "No")

#Assign Domain To Field

#arcpy.AssignDomainToField_management (inFC, "RECERT_NEEDED", doname)
arcpy.AssignDomainToField_management(workspace + '\\'
                                     "Project_Record", "RECERT_NEEDED", doname)

arcpy.EnableEditorTracking_management(workspace + '\\'
                                      "MUPOLYGON", "Creator_Field",
                                      "Creation_Date_Field", "Editor_Field",
                                      "Last_Edit_Date_Field", "ADD_FIELDS",
                                      "UTC")
arcpy.EnableEditorTracking_management(workspace + '\\'
                                      "FEATPOINT", "Creator_Field",
                                      "Creation_Date_Field", "Editor_Field",
                                      "Last_Edit_Date_Field", "ADD_FIELDS",
                                      "UTC")
arcpy.EnableEditorTracking_management(workspace + '\\'
                                      "FEATLINE", "Creator_Field",
                                      "Creation_Date_Field", "Editor_Field",
                                      "Last_Edit_Date_Field", "ADD_FIELDS",
                                      "UTC")

print "Script Completed"
예제 #11
0
connection_file = raw_input('Enter SDE connection filename: ')

# Set the workspace
arcpy.env.workspace = 'Database Connections/' + connection_file

# Set a variable for the workspace
workspace = arcpy.env.workspace

# Enumerate Database elements
datasets = arcpy.ListDatasets(wild_card=None,
                              feature_type=None)

edit_items = arcpy.ListFeatureClasses() \
             + arcpy.ListTables() \
             + arcpy.ListRasters()

# Add features from inside datasets to edit_items list
for dataset in datasets:
    edit_items += arcpy.ListFeatureClasses(wild_card=None,
                                           feature_type=None,
                                           feature_dataset=dataset)

for item in edit_items:
    arcpy.EnableEditorTracking_management(in_dataset=item,
                                          creator_field="created_user",
                                          creation_date_field="created_date",
                                          last_editor_field="last_edited_user",
                                          last_edit_date_field="last_edited_date",
                                          add_fields="ADD_FIELDS",
                                          record_dates_in="UTC")
                          "AREASYMBOL", "UNIQUE", "ASCENDING")
arcpy.AddIndex_management(fdname + '\\' + prjname + 'p', "FEATSYM", "FEATSYM",
                          "UNIQUE", "ASCENDING")
arcpy.AddIndex_management(fdname + '\\' + prjname + 'p', "FEATKEY", "FEATKEY",
                          "UNIQUE", "ASCENDING")

arcpy.AddIndex_management(fdname + '\\' + prjname + "l", "AREASYMBOL",
                          "AREASYMBOL", "UNIQUE", "ASCENDING")
arcpy.AddIndex_management(fdname + '\\' + prjname + "l", "FEATSYM", "FEATSYM",
                          "UNIQUE", "ASCENDING")
arcpy.AddIndex_management(fdname + '\\' + prjname + "l", "FEATKEY", "FEATKEY",
                          "UNIQUE", "ASCENDING")

arcpy.AddIndex_management(fdname + '\\' + prjname + "b", "AREASYMBOL",
                          "AREASYMBOL", "UNIQUE", "ASCENDING")

#Enable Editor Tracking
arcpy.EnableEditorTracking_management(fdname + '\\' + prjname + 'a',
                                      "Creator_Field", "Creation_Date_Field",
                                      "Editor_Field", "Last_Edit_Date_Field",
                                      "ADD_FIELDS", "UTC")
arcpy.EnableEditorTracking_management(fdname + '\\' + prjname + 'p',
                                      "Creator_Field", "Creation_Date_Field",
                                      "Editor_Field", "Last_Edit_Date_Field",
                                      "ADD_FIELDS", "UTC")
arcpy.EnableEditorTracking_management(fdname + '\\' + prjname + "l",
                                      "Creator_Field", "Creation_Date_Field",
                                      "Editor_Field", "Last_Edit_Date_Field",
                                      "ADD_FIELDS", "UTC")
print "Script Completed"
예제 #13
0
        else:
                arcpy.AddGlobalIDs_management(in_Table)
                arcpy.AddMessage ("Sasquatch created the GlobalID field")
except arcpy.ExecuteError:
        msgs = arcpy.GetMessages(2)
        arcpy.AddError(msgs)
except:
        tb = sys.exc_info()[2]
        tbinfo = traceback.format_tb(tb)[0]
        pymsg = "PYTHON ERRORS:\nTraceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1])
        msgs = "ArcPy ERRORS:\n" + arcpy.GetMessages(2) + "\n"
        arcpy.AddError(pymsg)
        arcpy.AddError(msgs)
#Enable editor tracking
try:
        arcpy.EnableEditorTracking_management(gdb_location+"\\"+gdb_name+".gdb\\"+fc_name, "CREATEUSER","CREATEDATE", "EDITUSER", "EDITDATE", "NO_ADD_FIELDS", time_format)
        arcpy.AddMessage ("Sasquatch enabled editor tracking on "+fc_name)
except arcpy.ExecuteError:
        msgs = arcpy.GetMessages(2)
        arcpy.AddError(msgs)
except:
        tb = sys.exc_info()[2]
        tbinfo = traceback.format_tb(tb)[0]
        pymsg = "PYTHON ERRORS:\nTraceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1])
        msgs = "ArcPy ERRORS:\n" + arcpy.GetMessages(2) + "\n"
        arcpy.AddError(pymsg)
        arcpy.AddError(msgs)



예제 #14
0
        else:
                arcpy.AddGlobalIDs_management(fc_name)
                arcpy.AddMessage ("Sasquatch created the GlobalID field")
except arcpy.ExecuteError:
        msgs = arcpy.GetMessages(2)
        arcpy.AddError(msgs)
except:
        tb = sys.exc_info()[2]
        tbinfo = traceback.format_tb(tb)[0]
        pymsg = "PYTHON ERRORS:\nTraceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1])
        msgs = "ArcPy ERRORS:\n" + arcpy.GetMessages(2) + "\n"
        arcpy.AddError(pymsg)
        arcpy.AddError(msgs)
#Enable editor tracking
try:
        arcpy.EnableEditorTracking_management(fc_name, "CREATEUSER","CREATEDATE", "EDITUSER", "EDITDATE", "NO_ADD_FIELDS", time_format)
        arcpy.AddMessage ("Sasquatch enabled editor tracking on "+fc_name)
except arcpy.ExecuteError:
        msgs = arcpy.GetMessages(2)
        arcpy.AddError(msgs)
except:
        tb = sys.exc_info()[2]
        tbinfo = traceback.format_tb(tb)[0]
        pymsg = "PYTHON ERRORS:\nTraceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1])
        msgs = "ArcPy ERRORS:\n" + arcpy.GetMessages(2) + "\n"
        arcpy.AddError(pymsg)
        arcpy.AddError(msgs)
arcpy.SetParameterAsText(6, gdb_name)


# -*- coding: utf-8 -*-
"""
Created on Mon Aug 10 16:52:30 2015

@author: martinson
"""
import arcpy
import os
workspace = raw_input("Enter workspace:\n")
walk = arcpy.da.Walk(workspace)
for dirpath, dirnames, filenames in walk:
     for filename in filenames:
         dataset = os.path.join(dirpath,filename)
         filedesc = arcpy.Describe(dataset)
         if not filedesc.editorTrackingEnabled:
             print "Enabling Editor Tracking on " + filename
             arcpy.EnableEditorTracking_management(dataset,"CREATOR","CREATED","LASTEDITOR","LASTEDITED","NO_ADD_FIELDS","DATABASE_TIME")
         else:
             print "Did not enable Editor Tracking on" + filename    
             continue
예제 #16
0
def create_gdb_featureclass(gdb,name):
    fc = arcpy.CreateFeatureclass_management(gdb,name, geometry_type="POINT")
    arcpy.AddGlobalIDs_management(fc)
    arcpy.EnableAttachments_management(fc)
    arcpy.EnableEditorTracking_management(fc, "created_user","created_date","last_edit_user","last_edit_date","ADD_FIELDS","UTC")
arcpy.env.overwriteOutput = True

#inFC = arcpy.GetParameterAsText (0) #Input Feature Class

#arcpy.EnableEditorTracking_management(inFC, "Creator_Field", "Creation_Date_Field", "Editor_Field", "Last_Edit_Date_Field", "ADD_FIELDS", "UTC")

# Set the workspace
workspace = arcpy.GetParameterAsText(0)

arcpy.env.workspace = workspace

# Get all the stand alone tables and feature classes
#dataList = arcpy.ListTables() + arcpy.ListFeatureClasses()
dataList = arcpy.ListFeatureClasses()

# For feature datasets get all of the featureclasses
# from the list and add them to the master list
for dataset in arcpy.ListDatasets("", "Feature"):
    arcpy.env.workspace = os.path.join(workspace, dataset)
    dataList += arcpy.ListFeatureClasses() + arcpy.ListDatasets()

# Execute enable editor tracking
for dataset in dataList:
    print("Enabling tracking on " + dataset)
    arcpy.EnableEditorTracking_management(dataset, "Creator_Field",
                                          "Creation_Date_Field",
                                          "Editor_Field",
                                          "Last_Edit_Date_Field", "ADD_FIELDS",
                                          "UTC")
print("Enabling complete")
예제 #18
0
def create_fcs():
    for _fc in fcDict:
        if fcDict[_fc] == "TABLE":
            _dataset = os.path.join(get_workspace(), _fc)
            if arcpy.Exists(_dataset) is True:
                arcpy.Delete_management(_dataset)
                print("Table: " + _fc + " deleted")

            arcpy.CreateTable_management(get_workspace(), _fc)
            arcpy.AddGlobalIDs_management(_dataset)
            if _fc == "FIDA_ANHANGLFP" or _fc == "FIDA_ANHANGHFP":
                arcpy.EnableAttachments_management(_dataset)

            if sde_fida is True:
                arcpy.ChangePrivileges_management(
                    _dataset, "ARCSDE_EDITOR", "GRANT", "GRANT"
                )
                arcpy.ChangePrivileges_management(_dataset, "ARCSDE_READER", "GRANT")

            # if sde_fida is True:
            arcpy.EnableEditorTracking_management(
                in_dataset=_dataset,
                creator_field="CREATOR_FIELD",
                creation_date_field="CREATOR_DATE_FIELD",
                last_editor_field="LAST_EDITOR_FIELD",
                last_edit_date_field="LAST_EDITOR_DATE_FIELD",
                add_fields="ADD_FIELDS",
                record_dates_in="UTC",
            )
            print("Tracking enabled")

            # Anhang: EnableEditorTracking (wichtig für BranchVersioning)
            if _fc == "FIDA_ANHANGLFP" or _fc == "FIDA_ANHANGHFP":
                _datasetattach = os.path.join(get_workspace(), _fc + "__ATTACH")

                if sde_fida is True:
                    arcpy.ChangePrivileges_management(
                        _datasetattach, "ARCSDE_EDITOR", "GRANT", "GRANT"
                    )
                    arcpy.ChangePrivileges_management(
                        _datasetattach, "ARCSDE_READER", "GRANT"
                    )

                arcpy.EnableEditorTracking_management(
                    in_dataset=_datasetattach,
                    creator_field="CREATOR_FIELD",
                    creation_date_field="CREATOR_DATE_FIELD",
                    last_editor_field="LAST_EDITOR_FIELD",
                    last_edit_date_field="LAST_EDITOR_DATE_FIELD",
                    add_fields="ADD_FIELDS",
                    record_dates_in="UTC",
                )
                print("Tracking enabled __ATTACH")

            print("Table: " + _fc + " created")

        else:
            _dataset = os.path.join(get_workspace(), featuredataset, _fc)
            _out_path = os.path.join(get_workspace(), featuredataset)
            _has_z = "ENABLED"
            arcpy.CreateFeatureclass_management(
                out_path=_out_path,
                out_name=_fc,
                geometry_type=fcDict[_fc],
                has_z=_has_z,
                out_alias=_fc,
            )

            arcpy.AddGlobalIDs_management(_dataset)

            # if sde_fida is True:
            arcpy.EnableEditorTracking_management(
                in_dataset=_dataset,
                creator_field="CREATOR_FIELD",
                creation_date_field="CREATOR_DATE_FIELD",
                last_editor_field="LAST_EDITOR_FIELD",
                last_edit_date_field="LAST_EDITOR_DATE_FIELD",
                add_fields="ADD_FIELDS",
                record_dates_in="UTC",
            )
            print("Tracking enabled")

            print("Featureclass: " + _fc + " created")
                        field_length=field["length"],
                        field_is_nullable=field["nullable"],
                        field_alias=field["alias"])
        except Exception as flderr:
            print(flderr.args[0])

    print("Enabling Editor Tracking on Layers")

    # Retrieve all the tables and feature classes added
    dataList = arcpy.ListTables() + arcpy.ListFeatureClasses()

    # Loop through dataset list and enable editor tracking
    for dataset in dataList:
        arcpy.EnableEditorTracking_management(dataset, "created_user",
                                              "created_date",
                                              "last_edited_user",
                                              "last_edited_date", "ADD_FIELDS",
                                              "UTC")

    # Begin apply symbology
    print("Applying symbology")

    # Retrieve all layers in the map
    layers = m.listLayers()

    # Loop through layers to apply symbology
    for lyr in layers:
        try:
            print("Applying symbology to " + lyr.name)
            sym = None
예제 #20
0
                              field_domain="")
    arcpy.AddField_management(in_table=feature_class_created,
                              field_name=editor_tracking_fields[3][0],
                              field_type="DATE",
                              field_precision="",
                              field_scale="",
                              field_length="",
                              field_alias=editor_tracking_fields[3][1],
                              field_is_nullable="NULLABLE",
                              field_is_required="NON_REQUIRED",
                              field_domain="")
    #Enable Editor Tracking
    arcpy.EnableEditorTracking_management(
        in_dataset=feature_class_created,
        creator_field=editor_tracking_fields[0][0],
        creation_date_field=editor_tracking_fields[1][0],
        last_editor_field=editor_tracking_fields[2][0],
        last_edit_date_field=editor_tracking_fields[3][0],
        add_fields="",
        record_dates_in="UTC")
    # Enable attachments
    arcpy.EnableAttachments_management(in_dataset=feature_class_created)
    # # Optionally: Add Global IDs
    # arcpy.AddGlobalIDs_management(feature_class_created)

print(
    datetime.datetime.today().strftime('%c') +
    ": Feature classes have been added, with global ids, editor tracking and attachments enabled"
)
print('===================')
print("Ready: " + datetime.datetime.today().strftime('%c'))
print('===================')
예제 #21
0
def create_rel_classes():
    print("Relationship classes")
    for _rel in relClassDict:
        _out_relationship_class = os.path.join(get_workspace(), featuredataset, _rel)
        # _out_relationship_class = os.path.join(GetWorkspace(), _rel)
        if arcpy.Exists(_out_relationship_class) is False:
            _origin_table = os.path.join(
                get_workspace(), featuredataset, relClassDict[_rel][1]
            )
            if relClassDict[_rel][2] == "FIDA_LFP":
                _relationship_type = "SIMPLE"
            elif relClassDict[_rel][2] == "FIDA_HFP":
                _relationship_type = "SIMPLE"
            elif relClassDict[_rel][2] == "FIDA_LSN":
                _relationship_type = "SIMPLE"
            elif relClassDict[_rel][2] == "FIDA_KONTAKT":
                _relationship_type = "SIMPLE"
            else:
                _relationship_type = "COMPOSITE"

            _destination_table = os.path.join(get_workspace(), relClassDict[_rel][2])
            _forward_label = relClassDict[_rel][3]
            _backward_label = relClassDict[_rel][4]
            _cardinality = relClassDict[_rel][0]
            #  _origin_primary_key = "PK" geändert damit Checkout möglich wird
            _origin_primary_key = "GlobalID"
            if _cardinality == "MANY_TO_MANY":
                _origin_foreign_key = "ORIGNIVLINIEN_HFP"
                _destination_primary_key = "GlobalID"
                _destination_foreign_key = "DESTHFP_NIVLINIEN"
            else:
                _origin_foreign_key = "FK_" + relClassDict[_rel][1]
                _destination_primary_key = ""
                _destination_foreign_key = ""

            arcpy.CreateRelationshipClass_management(
                origin_table=_origin_table,
                destination_table=_destination_table,
                out_relationship_class=_out_relationship_class,
                relationship_type=_relationship_type,
                forward_label=_forward_label,
                backward_label=_backward_label,
                cardinality=_cardinality,
                origin_primary_key=_origin_primary_key,
                origin_foreign_key=_origin_foreign_key,
                destination_primary_key=_destination_primary_key,
                destination_foreign_key=_destination_foreign_key,
            )
            print(
                "Relationship class between origin_table: {} and  destination_table: {}".format(
                    _origin_table, _destination_table
                )
            )
            print("Create Relationship class: " + _rel)

            if _rel == "FIDA_NIVLINIEN_HFP":
                arcpy.AddGlobalIDs_management(_out_relationship_class)

                if sde_fida is True:
                    arcpy.EnableEditorTracking_management(
                        in_dataset=_out_relationship_class,
                        creator_field="CREATOR_FIELD",
                        creation_date_field="CREATOR_DATE_FIELD",
                        last_editor_field="LAST_EDITOR_FIELD",
                        last_edit_date_field="LAST_EDITOR_DATE_FIELD",
                        add_fields="ADD_FIELDS",
                        record_dates_in="UTC",
                    )
                    print("add GlobalID and EditorTracking to FIDA_NIVLINIEN_HFP")

        else:
            print("Relationship class already created: " + _rel)