<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<metadata xml:lang="en">
<Esri>
<SyncOnce>FALSE</SyncOnce>
<ArcGISFormat>1.0</ArcGISFormat>
<DataProperties>
<lineage>
<Process Date="20190923" Time="145305" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid == "New Centerline") return "RD-" + NextSequenceValue("CenterlineID");
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var deletes = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                adds[0] = {
            'attributes': {'centerlineid' : road.centerlineid, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                           'fromright' : fromright, 'fromleft' : fromleft, 'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]
            },
            'geometry': firstGeometry
        }
        adds[1] = {
            'attributes': {'centerlineid' : 'New Centerline', 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                        'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
            },
            'geometry': Union(secondGeomArray)
        }
                deletes[0] = { 'objectID': road.OBJECTID }            }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'deletes' : deletes}]     };
&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;field_name&gt;centerlineid&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;evaluation_order&gt;1&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190923" Time="145537" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;var fullname = $feature.fullname;
if (fullname == null) return fullname;
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterStreetName"), "fullname = '" + fullname + "'");
if (Count(masterStreetNames) == 0) {
    return {
        "errorMessage": "Full Road Name is invalid, must be defined in the Master Street Name table."
    }
}
return fullname;
&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;field_name&gt;fullname&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;evaluation_order&gt;2&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190923" Time="145544" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;var fullname = $feature.fullname;
if (fullname == null) return fullname;
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterStreetName"), "fullname = '" + fullname + "'");
if (Count(masterStreetNames) == 0) {
    return {
        "errorMessage": "Full Road Name is invalid, must be defined in the Master Street Name table."
    }
}
return fullname;
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190923" Name="Flip Line" Time="154638" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190923" Name="Calculate New From Right" Time="154639" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" fromright 971 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190923" Name="Calculate New From Left" Time="154639" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" fromleft 972 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190923" Name="Calculate New To Left" Time="154639" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" toleft 904 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190923" Name="Calculate New To Right" Time="154639" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" toright 901 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190923" Name="Flip Line" Time="154723" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190923" Name="Calculate New From Right" Time="154724" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" fromright 901 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190923" Name="Calculate New From Left" Time="154724" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" fromleft 904 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190923" Name="Calculate New To Left" Time="154725" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" toleft 972 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190923" Name="Calculate New To Right" Time="154725" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" toright 971 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190923" Time="165702" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid == "New Centerline") return "RD-" + NextSequenceValue("CenterlineID");
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var deletes = [];
var altRoadAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {            var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                adds[Count(adds)] = {
            'attributes': {'centerlineid' : road.centerlineid, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                           'fromright' : fromright, 'fromleft' : fromleft, 'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]
            },
            'geometry': firstGeometry
        }
        adds[Count(adds)] = {
            'attributes': {'centerlineid' : 'New Centerline', 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                        'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
            },
            'geometry': Union(secondGeomArray)
        }
                deletes[Count(deletes)] = { 'objectID': road.OBJECTID }            }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'deletes' : deletes}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190923" Time="170302" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid == "New Centerline") return "RD-" + NextSequenceValue("CenterlineID");
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var deletes = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {            var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                adds[Count(adds)] = {
            'attributes': {'centerlineid' : road.centerlineid, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                           'fromright' : fromright, 'fromleft' : fromleft, 'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]
            },
            'geometry': firstGeometry
        }
        adds[Count(adds)] = {
            'attributes': {'centerlineid' : 'New Centerline', 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                        'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
            },
            'geometry': Union(secondGeomArray)
        }
                deletes[Count(deletes)] = { 'objectID': road.OBJECTID }
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : roadNameAlias.centerlineid, 'fullname' : roadNameAlias.fullname}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'deletes' : deletes},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190923" Time="170855" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid == "New Centerline") return "RD-" + NextSequenceValue("CenterlineID");
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var deletes = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {            var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                adds[Count(adds)] = {
            'attributes': {'centerlineid' : road.centerlineid, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                           'fromright' : fromright, 'fromleft' : fromleft, 'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]
            },
            'geometry': firstGeometry
        }
        var newCenterlineID = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
            'attributes': {'centerlineid' : newCenterlineID, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                        'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
            },
            'geometry': Union(secondGeomArray)
        }
                deletes[Count(deletes)] = { 'objectID': road.OBJECTID }
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newCenterlineID, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'deletes' : deletes},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190923" Time="171510" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var nameAliasAdds = [];
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : 'New Centerline', 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newCenterlineID, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190923" Time="171609" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var nameAliasAdds = [];
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        var newCenterlineID = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : 'New Centerline', 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newCenterlineID, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190923" Time="172229" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid == "New Centerline") return;
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : 'New Centerline', 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
    }
}
return { 'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates}] };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190923" Time="172612" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid == "New Centerline") return "RD-" + NextSequenceValue("CenterlineID");
if ($feature.centerlineid != null) return $feature.centerlineid;
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : 'New Centerline', 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190923" Time="172650" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid == "New Centerline") return "RD-" + NextSequenceValue("CenterlineID");
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : 'New Centerline', 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="130553" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="130705" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="131450" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="132107" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'fullname' : roadNameAlias.fullname}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="132406" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="133722" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="133931" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="134216" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="134353" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="134718" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]}
        }
        var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="134821" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="135608" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
return Count(intersectingRoads);&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="135842" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
return id;
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
return Count(intersectingRoads);&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="140141" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="141302" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
if ($feature.centerlineid != null) return $feature.centerlineid;
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
for (var road in intersectingRoads) {
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    if (validCut) {
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                var secondGeometry = Union(secondGeomArray);
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': Union(secondGeomArray)
        }
                var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="141351" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Test Rule&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;var id = "RD-" + NextSequenceValue("CenterlineID");
return id;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;field_name&gt;centerlineid&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Test Rule&lt;/rule_name&gt;&lt;evaluation_order&gt;3&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="142102" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Test Rule&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="142200" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Insert&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;return $feature.centerlineid + ",Insert";&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;field_name&gt;centerlineid&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Insert&lt;/rule_name&gt;&lt;evaluation_order&gt;3&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="142238" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Update&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;return $feature.centerlineid + ",Update";&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;field_name&gt;centerlineid&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Update&lt;/rule_name&gt;&lt;evaluation_order&gt;4&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="142415" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Insert&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;return $feature.centerlineid + ",I";&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;return $feature.centerlineid + ",U";&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="142547" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Insert&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;var id = "RD-" + NextSequenceValue("CenterlineID");
return id;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Update&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="142752" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Insert&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;var id = "RD-" + NextSequenceValue("CenterlineID");
return id;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Insert&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20190925" Time="165910" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Insert&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20190925" Time="165919" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Update&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20190930" Name="Flip Line" Time="092847" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="092909" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="093022" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Calculate New From Right" Time="093023" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" fromright 896 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190930" Name="Calculate New From Left" Time="093023" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" fromleft 889 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190930" Name="Calculate New To Left" Time="093023" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" toleft 889 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190930" Name="Calculate New To Right" Time="093023" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" toright 859 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190930" Name="Flip Line" Time="093042" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Calculate New From Right" Time="093042" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" fromright 859 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190930" Name="Calculate New From Left" Time="093042" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" fromleft 889 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190930" Name="Calculate New To Left" Time="093043" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" toleft 889 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190930" Name="Calculate New To Right" Time="093043" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "I_Roads - Local Streets_OBJECTID" toright 896 PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190930" Name="Flip Line" Time="093658" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="093710" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="093734" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="093800" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="093807" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="093823" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="094054" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="094258" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="094314" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="094321" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="094413" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="094424" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="094507" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="094534" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Name="Flip Line" Time="095727" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="105120" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" #</Process>
<Process Date="20190930" Time="105135" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" #</Process>
<Process Date="20190930" Time="105205" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="105322" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="105323" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" #</Process>
<Process Date="20190930" Time="111003" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="111004" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" #</Process>
<Process Date="20190930" Time="111014" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="111015" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" #</Process>
<Process Date="20190930" Time="133346" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="133347" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" #</Process>
<Process Date="20190930" Time="133514" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="133515" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" #</Process>
<Process Date="20190930" Time="134953" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="135028" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="135306" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="135529" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="142259" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets" fromright fromleft toright toleft</Process>
<Process Date="20190930" Time="142312" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets" fromright fromleft toright toleft</Process>
<Process Date="20190930" Time="142328" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets" fromright fromleft toright toleft</Process>
<Process Date="20190930" Time="142628" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets" fromright fromleft toright toleft</Process>
<Process Date="20190930" Time="142644" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets" fromright fromleft toright toleft</Process>
<Process Date="20190930" Time="145145" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="145145" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" # # # # #</Process>
<Process Date="20190930" Time="145737" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="145737" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" # fromright fromleft toright toleft</Process>
<Process Date="20190930" Time="145750" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="145751" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" true fromright fromleft toright toleft</Process>
<Process Date="20190930" Time="145804" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="145804" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" true fromright fromleft toright toleft</Process>
<Process Date="20190930" Time="145819" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="145820" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" false fromright fromleft toright toleft</Process>
<Process Date="20190930" Time="145834" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets" fromright fromleft toright toleft</Process>
<Process Date="20190930" Time="145857" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20190930" Time="145858" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" true fromright fromleft toright toleft</Process>
<Process Date="20191001" Time="103855" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;fullname&lt;/field_name&gt;&lt;domain_name&gt;Full Road Name&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191001" Time="133315" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets" fromright fromleft toright toleft</Process>
<Process Date="20191001" Time="133359" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets" fromright fromleft toright toleft</Process>
<Process Date="20191002" Time="102036" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;RemoveDomainFromField&gt;&lt;field_name&gt;fullname&lt;/field_name&gt;&lt;/RemoveDomainFromField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20191002" Time="113614" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\SwapParity">SwapParity "Roads\Roads - Local Streets" fromright fromleft toright toleft</Process>
<Process Date="20191002" Time="113700" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Roads - Local Streets"</Process>
<Process Date="20191002" Time="113701" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\AddressDataManagement.pyt\FlipRoads">FlipRoads "Roads\Roads - Local Streets" true fromright fromleft toright toleft</Process>
<Process Date="20191002" Time="135841" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191002" Time="135921" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteRows">DeleteRows "C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb\Address\RoadCenterline"</Process>
<Process Date="20191002" Time="140437" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'Road Centerlines' "Roads\Roads - Local Streets" "Use the Field Map to reconcile schema differences" "centerlineid "Centerline ID" true true false 20 Text 0 0,First,#,Road Centerlines,centerlineid,0,20;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#,Road Centerlines,rclnguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,Road Centerlines,discrpagid,0,75;rangeprefixleft "Left Address Number Prefix" true true false 15 Text 0 0,First,#,Road Centerlines,rangeprefixleft,0,15;fromleft "Left From Address" true true false 4 Long 0 0,First,#,Road Centerlines,fromleft,-1,-1;toleft "Left To Address" true true false 4 Long 0 0,First,#,Road Centerlines,toleft,-1,-1;parityleft "Parity Left" true true false 1 Text 0 0,First,#,Road Centerlines,parityleft,0,1;rangeprefixright "Right Address Number Prefix" true true false 15 Text 0 0,First,#,Road Centerlines,rangeprefixright,0,15;fromright "Right From Address" true true false 4 Long 0 0,First,#,Road Centerlines,fromright,-1,-1;toright "Right To Address" true true false 4 Long 0 0,First,#,Road Centerlines,toright,-1,-1;parityright "Parity Right" true true false 1 Text 0 0,First,#,Road Centerlines,parityright,0,1;fullname "Full Road Name" true true false 300 Text 0 0,First,#,Road Centerlines,fullname,0,300;ctyroute "County Route" true true false 10 Text 0 0,First,#,Road Centerlines,ctyroute,0,10;onewaydir "One Way Indicator" true true false 10 Text 0 0,First,#,Road Centerlines,onewaydir,0,10;roadlevel "Above or Below Grade" true true false 4 Long 0 0,First,#,Road Centerlines,roadlevel,-1,-1;inwater "In Water" true true false 5 Text 0 0,First,#,Road Centerlines,inwater,0,5;roadclass "Road Class" true true false 20 Text 0 0,First,#,Road Centerlines,roadclass,0,20;countryleft "Country on Left" true true false 2 Text 0 0,First,#,Road Centerlines,countryleft,0,2;countryright "Country on Right" true true false 2 Text 0 0,First,#,Road Centerlines,countryright,0,2;stateleft "State on Left" true true false 2 Text 0 0,First,#,Road Centerlines,stateleft,0,2;stateright "State on Right" true true false 2 Text 0 0,First,#,Road Centerlines,stateright,0,2;countyleft "County on Left" true true false 40 Text 0 0,First,#,Road Centerlines,countyleft,0,40;countyright "County on Right" true true false 40 Text 0 0,First,#,Road Centerlines,countyright,0,40;munileft "Municipality on Left" true true false 100 Text 0 0,First,#,Road Centerlines,munileft,0,100;muniright "Municipality on Right" true true false 100 Text 0 0,First,#,Road Centerlines,muniright,0,100;zipleft "Zip on Left" true true false 5 Text 0 0,First,#,Road Centerlines,zipleft,0,5;zipright "Zip on Right" true true false 5 Text 0 0,First,#,Road Centerlines,zipright,0,5;msagleft "MSAG on Left" true true false 35 Text 0 0,First,#,Road Centerlines,msagleft,0,35;msagright "MSAG on Right" true true false 35 Text 0 0,First,#,Road Centerlines,msagright,0,35;esnleft "ESN on Left" true true false 5 Text 0 0,First,#,Road Centerlines,esnleft,0,5;esnright "ESN on Right" true true false 5 Text 0 0,First,#,Road Centerlines,esnright,0,5;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#" # #</Process>
<Process Date="20191002" Time="140553" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191022" Time="141154" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full road name for the steet alias table by concatenating several other field values // Get the full name of the road. If it is null return the fullname
var fullname = $feature.fullname;
if (fullname == null) return fullname;
// Search the master street name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
// Otherwise return the fullname
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterStreetName"), "fullname = '" + fullname + "'");
if (Count(masterStreetNames) == 0) {
    return {
        "errorMessage": "Full Road Name is invalid, must be defined in the Master Street Name table."
    }
}
return fullname;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191022" Time="141344" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the full road name for the steet alias table by concatenating several other field values // Get the full name of the road. If it is null return the fullname
var fullname = $feature.fullname;
if (fullname == null) return fullname;
// Search the master street name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
// Otherwise return the fullname
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterStreetName"), "fullname = '" + fullname + "'");
if (Count(masterStreetNames) == 0) {
 return {
  "errorMessage": "Full Road Name is invalid, must be defined in the Master Street Name table."
 }
}
return fullname;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191022" Time="162825" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road is created and splits any intersecting roads
// All intersecting roads will be split at their intersection and the address ranges will be updated to reflect where the split occured.
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the id of the road is not null return the id
// This prevents the rule from being processed on new roads created as a result of the split
if ($feature.centerlineid != null) return $feature.centerlineid;
// Create a new id for the road and get the object id and geometry from the road
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
                // Handle multipart geometries
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
                // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
                // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Create a new id for a road
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var newId = "RD-" + NextSequenceValue("CenterlineID");
        adds[Count(adds)] = {
             'attributes': {'centerlineid' : newId, 'roadclass' : road.roadclass, 'fullname' : road.fullname,
                            'fromright' : newToFromRight[1], 'fromleft' : newToFromLeft[1], 'toright' : toRight, 'toleft' : toLeft
             },
             'geometry': secondGeometry
        }
                // Find the all the related road alias names for the intersecting road
        // Store an add for every road alias and related it to the new road that was added after the cut
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
// Return the new id of the road
// Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191029" Time="093759" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road is created and splits any intersecting roads
// All intersecting roads will be split at their intersection and the address ranges will be updated to reflect where the split occured.
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the id of the road is not null return the id
// This prevents the rule from being processed on new roads created as a result of the split
if ($feature.centerlineid != null) return $feature.centerlineid;
// Create a new id for the road and get the object id and geometry from the road
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
                // Handle multipart geometries
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
                // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
                // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Create a new id for a road
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var newId = "RD-" + NextSequenceValue("CenterlineID");
        var attributes = Dictionary(Text(road))['attributes'];
        attributes['fromright'] = newToFromRight[1];
        attributes['fromleft'] = newToFromLeft[1];
        adds[Count(adds)] = {
             'attributes': attributes,
             'geometry': secondGeometry
        }
                // Find the all the related road alias names for the intersecting road
        // Store an add for every road alias and related it to the new road that was added after the cut
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
// Return the new id of the road
// Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191029" Time="095132" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road is created and splits any intersecting roads
// All intersecting roads will be split at their intersection and the address ranges will be updated to reflect where the split occured.
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the id of the road is not null return the id
// This prevents the rule from being processed on new roads created as a result of the split
if ($feature.centerlineid != null) return $feature.centerlineid;
// Create a new id for the road and get the object id and geometry from the road
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
                // Handle multipart geometries
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
                // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
                // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Create a new id for a road
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var newId = "RD-" + NextSequenceValue("CenterlineID");
        var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for(var k in featureAttributes) {
            if (Lower(k) == "globalid") {
                continue;
            }
            else if (Lower(k) == "fromright") {
                newAttributes['fromright'] = newToFromRight[1];
            }
            else if (Lower(k) == "fromleft") {
                newAttributes['fromleft'] = newToFromLeft[1];
            }
            else {
                newAttributes[k] = featureAttributes[k];
            }
        }
                adds[Count(adds)] = {
             'attributes': newAttributes,
             'geometry': secondGeometry
        }
                // Find the all the related road alias names for the intersecting road
        // Store an add for every road alias and related it to the new road that was added after the cut
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
// Return the new id of the road
// Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191029" Time="095555" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road is created and splits any intersecting roads
// All intersecting roads will be split at their intersection and the address ranges will be updated to reflect where the split occured.
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the id of the road is not null return the id
// This prevents the rule from being processed on new roads created as a result of the split
if ($feature.centerlineid != null) return $feature.centerlineid;
// Create a new id for the road and get the object id and geometry from the road
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
                // Handle multipart geometries
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
                // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
                // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Create a new id for a road
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var newId = "RD-" + NextSequenceValue("CenterlineID");
        var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for(var k in featureAttributes) {
            if (IndexOf(["globalid", "objectid"], Lower(k)) == -1) {
                continue;
            }
            else if (Lower(k) == "fromright") {
                newAttributes['fromright'] = newToFromRight[1];
            }
            else if (Lower(k) == "fromleft") {
                newAttributes['fromleft'] = newToFromLeft[1];
            }
            else {
                newAttributes[k] = featureAttributes[k];
            }
        }
                adds[Count(adds)] = {
             'attributes': newAttributes,
             'geometry': secondGeometry
        }
                // Find the all the related road alias names for the intersecting road
        // Store an add for every road alias and related it to the new road that was added after the cut
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
// Return the new id of the road
// Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191029" Time="095713" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road is created and splits any intersecting roads
// All intersecting roads will be split at their intersection and the address ranges will be updated to reflect where the split occured.
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the id of the road is not null return the id
// This prevents the rule from being processed on new roads created as a result of the split
if ($feature.centerlineid != null) return $feature.centerlineid;
// Create a new id for the road and get the object id and geometry from the road
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
                // Handle multipart geometries
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
                // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
                // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Create a new id for a road
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var newId = "RD-" + NextSequenceValue("CenterlineID");
        var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for(var k in featureAttributes) {
            if (IndexOf(["globalid", "objectid"], Lower(k)) &amp;gt; -1) {
                continue;
            }
            else if (Lower(k) == "fromright") {
                newAttributes['fromright'] = newToFromRight[1];
            }
            else if (Lower(k) == "fromleft") {
                newAttributes['fromleft'] = newToFromLeft[1];
            }
            else {
                newAttributes[k] = featureAttributes[k];
            }
        }
                adds[Count(adds)] = {
             'attributes': newAttributes,
             'geometry': secondGeometry
        }
                // Find the all the related road alias names for the intersecting road
        // Store an add for every road alias and related it to the new road that was added after the cut
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
// Return the new id of the road
// Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191029" Time="095805" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road is created and splits any intersecting roads
// All intersecting roads will be split at their intersection and the address ranges will be updated to reflect where the split occured.
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the id of the road is not null return the id
// This prevents the rule from being processed on new roads created as a result of the split
if ($feature.centerlineid != null) return $feature.centerlineid;
// Create a new id for the road and get the object id and geometry from the road
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
                // Handle multipart geometries
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
                // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
                // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Create a new id for a road
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var newId = "RD-" + NextSequenceValue("CenterlineID");
        var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for(var k in featureAttributes) {
            if (IndexOf(["globalid", "objectid", "shape_length", "shape_area"], Lower(k)) &amp;gt; -1) {
                continue;
            }
            else if (Lower(k) == "fromright") {
                newAttributes['fromright'] = newToFromRight[1];
            }
            else if (Lower(k) == "fromleft") {
                newAttributes['fromleft'] = newToFromLeft[1];
            }
            else {
                newAttributes[k] = featureAttributes[k];
            }
        }
                adds[Count(adds)] = {
             'attributes': newAttributes,
             'geometry': secondGeometry
        }
                // Find the all the related road alias names for the intersecting road
        // Store an add for every road alias and related it to the new road that was added after the cut
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': {'centerlineid' : newId, 'roadpredir' : roadNameAlias.roadpredir, 'roadname' : roadNameAlias.roadname, 'roadtype' : roadNameAlias.roadtype,}
            }
        }
    }
}
// Return the new id of the road
// Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191029" Time="105812" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road is created and splits any intersecting roads
// All intersecting roads will be split at their intersection and the address ranges will be updated to reflect where the split occured.
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the id of the road is not null return the id
// This prevents the rule from being processed on new roads created as a result of the split
if ($feature.centerlineid != null) return $feature.centerlineid;
// Create a new id for the road and get the object id and geometry from the road
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
                // Handle multipart geometries
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
                // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
                // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Create a new id for a road
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var newId = "RD-" + NextSequenceValue("CenterlineID");
        var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for(var k in featureAttributes) {
            if (IndexOf(["globalid", "objectid", "shape_length", "shape_area"], Lower(k)) &amp;gt; -1) {
                continue;
            }
            else if (Lower(k) == "fromright") {
                newAttributes['fromright'] = newToFromRight[1];
            }
            else if (Lower(k) == "fromleft") {
                newAttributes['fromleft'] = newToFromLeft[1];
            }
            else {
                newAttributes[k] = featureAttributes[k];
            }
        }
                adds[Count(adds)] = {
             'attributes': newAttributes,
             'geometry': secondGeometry
        }
                // Find all the related road alias names for the intersecting road
        // Store an add for every road alias and related it to the new road that was added after the cut
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            var featureAttributes = Dictionary(Text(roadNameAlias))['attributes'];
            var newAttributes = {};
            for(var k in featureAttributes) {
                if (IndexOf(["globalid", "objectid"], Lower(k)) &amp;gt; -1) {
                    continue;
                }
                else {
                    newAttributes[k] = featureAttributes[k];
                }
            }
            newAttributes['centerlineid'] = newId
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': newAttributes
            }
        }
    }
}
// Return the new id of the road
// Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191029" Time="110208" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road is created and splits any intersecting roads
// All intersecting roads will be split at their intersection and the address ranges will be updated to reflect where the split occured.
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
        var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
        var val = percent * range;
    var newVal = 0;
        if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
        if (newVal == range) newVal -= 2;
        if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the id of the road is not null return the id
// This prevents the rule from being processed on new roads created as a result of the split
if ($feature.centerlineid != null) return $feature.centerlineid;
// Create a new id for the road and get the object id and geometry from the road
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
        // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
        var validCut = true;
    var geometries = []
        // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
                // Handle multipart geometries
        var allParts  = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts )
        {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
                // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
            var firstGeometry = null;
        var secondGeomArray = [];            var firstPoint = Geometry(road).paths[0][0];
                // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            }
            else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
                // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
                // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
                // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright' : newToFromRight[0], 'toleft' : newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Create a new id for a road
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var newId = "RD-" + NextSequenceValue("CenterlineID");
        var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for(var k in featureAttributes) {
            if (IndexOf(["globalid", "objectid", "shape_length", "shape_area"], Lower(k)) &amp;gt; -1) {
                continue;
            }
            else if (Lower(k) == "fromright") {
                newAttributes['fromright'] = newToFromRight[1];
            }
            else if (Lower(k) == "fromleft") {
                newAttributes['fromleft'] = newToFromLeft[1];
            }
            else {
                newAttributes[k] = featureAttributes[k];
            }
        }
        newAttributes['centerlineid'] = newId;
        adds[Count(adds)] = {
             'attributes': newAttributes,
             'geometry': secondGeometry
        }
                // Find all the related road alias names for the intersecting road
        // Store an add for every road alias and related it to the new road that was added after the cut
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            var featureAttributes = Dictionary(Text(roadNameAlias))['attributes'];
            var newAttributes = {};
            for(var k in featureAttributes) {
                if (IndexOf(["globalid", "objectid"], Lower(k)) &amp;gt; -1) {
                    continue;
                }
                else {
                    newAttributes[k] = featureAttributes[k];
                }
            }
            newAttributes['centerlineid'] = newId
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': newAttributes
            }
        }
    }
}
// Return the new id of the road
// Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
return {     'result' : id,
    'edit' : [{'className': 'RoadCenterline', 'adds' : adds, 'updates' : updates},               {'className': 'AliasStreetName', 'adds': nameAliasAdds}]     };
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191031" Time="150413" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road is created and splits any intersecting roads
// All intersecting roads will be split at their intersection and the address ranges will be updated to reflect where the split occured.
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
    var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
    var val = percent * range;
    var newVal = 0;
    if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
    if (newVal == range) newVal -= 2;
    if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the id of the road is not null return the id
// This prevents the rule from being processed on new roads created as a result of the split
if (IsEmpty($feature.centerlineid) == false) return $feature.centerlineid;
// Create a new id for the road and get the object id and geometry from the road
var id = "RD-" + NextSequenceValue("CenterlineID");
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
var nameAliasAdds = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
    // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
    var validCut = true;
    var geometries = []
    // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i], 'feet') == 0) {
            validCut = false;
            continue;
        }
        // Handle multipart geometries
        var allParts = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts) {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
        // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
        var firstGeometry = null;
        var secondGeomArray = [];
        var firstPoint = Geometry(road).paths[0][0];
        // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            } else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
        // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
        // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
        // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright': newToFromRight[0], 'toleft': newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Create a new id for a road
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var newId = "RD-" + NextSequenceValue("CenterlineID");
        var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (IndexOf(["globalid", "objectid", "shape_length", "shape_area"], Lower(k)) &amp;gt; -1) {
                continue;
            } else if (Lower(k) == "fromright") {
                newAttributes['fromright'] = newToFromRight[1];
            } else if (Lower(k) == "fromleft") {
                newAttributes['fromleft'] = newToFromLeft[1];
            } else {
                newAttributes[k] = featureAttributes[k];
            }
        }
        newAttributes['centerlineid'] = newId;
        adds[Count(adds)] = {
            'attributes': newAttributes,
            'geometry': secondGeometry
        }
        // Find all the related road alias names for the intersecting road
        // Store an add for every road alias and related it to the new road that was added after the cut
        var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + road.centerlineid + "'");
        for (var roadNameAlias in roadNameAliases) {
            var featureAttributes = Dictionary(Text(roadNameAlias))['attributes'];
            var newAttributes = {};
            for (var k in featureAttributes) {
                if (IndexOf(["globalid", "objectid"], Lower(k)) &amp;gt; -1) {
                    continue;
                } else {
                    newAttributes[k] = featureAttributes[k];
                }
            }
            newAttributes['centerlineid'] = newId
            nameAliasAdds[Count(nameAliasAdds)] = {
                'attributes': newAttributes
            }
        }
    }
}
// Return the new id of the road
// Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
return {
    'result': id,
    'edit': [{'className': 'RoadCenterline', 'adds': adds, 'updates': updates},
        {'className': 'AliasStreetName', 'adds': nameAliasAdds}]
};
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This constraint rule will ensure the full name exist in the master street name table
// Get the full name of the road. If it is null return the fullname
var fullname = $feature.fullname;
if (IsEmpty(fullname)) return fullname;
// Search the master street name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterStreetName"), "fullname = '" + fullname + "'");
if (Count(masterStreetNames) == 0) {
    return {
        "errorMessage": "Full Road Name is invalid, must be defined in the Master Street Name table."
    }
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191111" Time="094715" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\scot6032\Documents\Demos and Prototypes\AddressDataManagement\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;countryleft&lt;/field_name&gt;&lt;default_value&gt;&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;countryright&lt;/field_name&gt;&lt;default_value&gt;&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20191115" Time="140336" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\scot6032\Documents\Demos and Prototypes\AddressDataManagement\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;fullname&lt;/field_name&gt;&lt;domain_name&gt;RoadNameIndex&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20191119" Time="153500" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\ImportAttributeRules">ImportAttributeRules "C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Address Data Management Z.gdb\Address\RoadCenterline" "C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Rules\RoadCenterline.CSV"</Process>
<Process Date="20191119" Time="154811" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\RoadCenterline' "Roads\Local Streets" "Input schema must match target schema" # # #</Process>
<Process Date="20191120" Time="131853" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Left).js&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate the Left To Address using the Left From Address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid optons are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Left From Address is empty or the Left To Address is not empty return the Left To Address var fromLeft = $feature.fromleft;
var toLeft = $feature.toleft;
if (IsEmpty(fromLeft) || !IsEmpty(toLeft)) return toLeft;
// Return the new Left To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromLeft;
&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;field_name&gt;toleft&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Logical Block Addressing (Left).js&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Left).js&lt;/rule_name&gt;&lt;evaluation_order&gt;3&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191120" Time="132117" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Right)&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate the Right To Address using the Right From Address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid optons are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Right From Address is empty or the Right To Address is not empty return the Right To Address var fromRight = $feature.fromRight;
var toRight = $feature.toRight;
if (IsEmpty(fromRight) || !IsEmpty(toRight)) return toRight;
// Return the new Right To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromRight;
&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;field_name&gt;toright&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Logical Block Addressing (Right)&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Right)&lt;/rule_name&gt;&lt;evaluation_order&gt;4&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191120" Time="132134" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Left).js&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191120" Time="132241" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Left)&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate the Left To Address using the Left From Address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid optons are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Left From Address is empty or the Left To Address is not empty return the Left To Address var fromLeft = $feature.fromleft;
var toLeft = $feature.toleft;
if (IsEmpty(fromLeft) || !IsEmpty(toLeft)) return toLeft;
// Return the new Left To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromLeft;
&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;field_name&gt;toleft&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Logical Block Addressing (Left)&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Left)&lt;/rule_name&gt;&lt;evaluation_order&gt;3&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191126" Time="130834" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Editing Tools.tbx\FlipLine">FlipLine "Roads\Local Streets"</Process>
<Process Date="20191126" Time="130834" ToolSource="C:\Solutions\Tasks\January2020\Address Data Management\Data Reviewer\Address Data Management\AddressTools.pyt\FlipRoads">FlipRoads "Roads\Local Streets" true fromright fromleft toright toleft</Process>
<Process Date="20191127" Time="120151" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Data Reviewer\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will split intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured
//Define any fields to be copied from the centerline when split (lower case)
var centerline_field_names = ["rclnguid", "discrpagid", "rangeprefixleft", "fromleft", "toleft", "parityleft", "rangeprefixright", "fromright", "toright", "parityright", "fullname", "fedroute", "fedrtetype", "afedrte", "afedrtetype", "stroute", "strtetype", "astrte", "astrtetype", "ctyroute", "onewaydir", "roadlevel", "inwater", "roadclass", "countryleft", "countryright", "stateleft", "stateright", "countyleft", "countyright","munileft", "muniright", "zipleft", "zipright", "msagleft", "msagright", "esnleft", "esnright"]
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
    var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
    var val = percent * range;
    var newVal = 0;
    if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
    if (newVal == range) newVal -= 2;
    if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the road was created from a split its id will have a prefix of '::'
// Don't process any futher splits to prevent getting in an infinite loop
var id = $feature.centerlineid;
if (Left(id, 2) == "::") return id;
// Get the object id, centerline id and geometry from the road
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
    // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
    var validCut = true;
    var geometries = []
    // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i]) == 0) {
            validCut = false;
            continue;
        }
        // Handle multipart geometries
        var allParts = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts) {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
        // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
        var firstGeometry = null;
        var secondGeomArray = [];
        var firstPoint = Geometry(road).paths[0][0];
        // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            } else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
        // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
        // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
        // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright': newToFromRight[0], 'toleft': newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (Lower(k) == "fromright") {
                newAttributes['fromright'] = newToFromRight[1];
            } else if (Lower(k) == "fromleft") {
                newAttributes['fromleft'] = newToFromLeft[1];
            } else if (IndexOf(centerline_field_names, Lower(k)) &amp;gt; -1) {
                newAttributes[k] = featureAttributes[k];
            } else {
                continue;
            }
        }
        // Store a reference to the original id of the road for the split
        newAttributes['centerlineid'] = "::" + road.centerlineid;
        adds[Count(adds)] = {
            'attributes': newAttributes,
            'geometry': secondGeometry
        }
    }
}
// Return the original road centerline id
// Using the edit parameter return the list of updates and adds for the split roads
return {
    'result': id,
    'edit': [{'className': 'RoadCenterline', 'adds': adds, 'updates': updates}]
};&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191127" Time="120507" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Data Reviewer\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_description&gt;Split intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will split intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured
//Define any fields to be copied from the centerline when split (lower case)
var centerline_field_names = ["rclnguid", "discrpagid", "rangeprefixleft", "fromleft", "toleft", "parityleft", "rangeprefixright", "fromright", "toright", "parityright", "fullname", "fedroute", "fedrtetype", "afedrte", "afedrtetype", "stroute", "strtetype", "astrte", "astrtetype", "ctyroute", "onewaydir", "roadlevel", "inwater", "roadclass", "countryleft", "countryright", "stateleft", "stateright", "countyleft", "countyright","munileft", "muniright", "zipleft", "zipright", "msagleft", "msagright", "esnleft", "esnright"]
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
    var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
    var val = percent * range;
    var newVal = 0;
    if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
    if (newVal == range) newVal -= 2;
    if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the road was created from a split its id will have a prefix of '::'
// Don't process any futher splits to prevent getting in an infinite loop
var id = $feature.centerlineid;
if (Left(id, 2) == "::") return id;
// Get the object id, centerline id and geometry from the road
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
    // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
    var validCut = true;
    var geometries = []
    // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i]) == 0) {
            validCut = false;
            continue;
        }
        // Handle multipart geometries
        var allParts = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts) {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
        // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
        var firstGeometry = null;
        var secondGeomArray = [];
        var firstPoint = Geometry(road).paths[0][0];
        // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            } else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
        // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
        // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
        // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright': newToFromRight[0], 'toleft': newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (Lower(k) == "fromright") {
                newAttributes['fromright'] = newToFromRight[1];
            } else if (Lower(k) == "fromleft") {
                newAttributes['fromleft'] = newToFromLeft[1];
            } else if (IndexOf(centerline_field_names, Lower(k)) &amp;gt; -1) {
                newAttributes[k] = featureAttributes[k];
            } else {
                continue;
            }
        }
        // Store a reference to the original id of the road for the split
        newAttributes['centerlineid'] = "::" + road.centerlineid;
        adds[Count(adds)] = {
            'attributes': newAttributes,
            'geometry': secondGeometry
        }
    }
}
// Return the original road centerline id
// Using the edit parameter return the list of updates and adds for the split roads
return {
    'result': id,
    'edit': [{'className': 'RoadCenterline', 'adds': adds, 'updates': updates}]
};&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Street Aliases&lt;/rule_name&gt;&lt;rule_description&gt;Create a new unique id when a road centerline is created and copy related street alias names from split roads.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road centerline is created
// This will also copy related street alias names for any roads that were added as a result of a split
// Define the leading text and the delimiter for the ID
var prefix = "RD"
var join_char = "-"
// Define any fields to be copied from the street name aliases table (lower case)
var alias_field_names = ["roadpremod", "roadpredir", "roadpretype", "roadpretypesep", "roadname", "roadtype", "roadpostdir", "roadpostmod", "fullname", "municipality"]
// If the road was created from a split its oirginal id will have a prefix of '::'
// We will use this to find the original road and its related alias street names
if (Left($feature.centerlineid, 2) == "::" || IsEmpty($feature.centerlineid)) {
    var id = Concatenate([prefix, NextSequenceValue("CenterlineID")], join_char)
        // If the centerlineid is not set return the new id
    if (IsEmpty($feature.centerlineid)) return id;
       // Find the original ID of the road that was split
    var original_id = Mid($feature.centerlineid, 2, Count($feature.centerlineid) - 2);
    if (IsEmpty(original_id)) return id;
        // Find all the related road alias names for the split road
    // Store an add for every road alias and related it to the new road that was added after the cut
    var adds = []
    var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + original_id + "'");
    for (var roadNameAlias in roadNameAliases) {
        var featureAttributes = Dictionary(Text(roadNameAlias))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (IndexOf(alias_field_names, Lower(k)) &amp;gt; -1) {
                newAttributes[k] = featureAttributes[k];
            } else {
                continue;
            }
        }
        newAttributes['centerlineid'] = id
        adds[Count(adds)] = {
            'attributes': newAttributes
        }
    }
        // Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
    return {
        'result': id,
        'edit': [{'className': 'AliasStreetName', 'adds': adds}]
    };
}
else {
   return $feature.centerlineid
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Left)&lt;/rule_name&gt;&lt;rule_description&gt;Calculate the left to address using the left from address, the length of the road and an interval or distance between unique addresses.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the left to address using the left from address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid optons are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Left From Address is empty or the Left To Address is not empty return the Left To Address var fromLeft = $feature.fromleft;
var toLeft = $feature.toleft;
if (IsEmpty(fromLeft) || !IsEmpty(toLeft)) return toLeft;
// Return the new Left To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromLeft;
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Right)&lt;/rule_name&gt;&lt;rule_description&gt;Calculate the right to address using the right from address, the length of the road and an interval or distance between unique addresses.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the right to address using the right from address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid optons are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Right From Address is empty or the Right To Address is not empty return the Right To Address var fromRight = $feature.fromRight;
var toRight = $feature.toRight;
if (IsEmpty(fromRight) || !IsEmpty(toRight)) return toRight;
// Return the new Right To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromRight;
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191127" Time="120553" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Data Reviewer\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_description&gt;Splits intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will split intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured
//Define any fields to be copied from the centerline when split (lower case)
var centerline_field_names = ["rclnguid", "discrpagid", "rangeprefixleft", "fromleft", "toleft", "parityleft", "rangeprefixright", "fromright", "toright", "parityright", "fullname", "fedroute", "fedrtetype", "afedrte", "afedrtetype", "stroute", "strtetype", "astrte", "astrtetype", "ctyroute", "onewaydir", "roadlevel", "inwater", "roadclass", "countryleft", "countryright", "stateleft", "stateright", "countyleft", "countyright","munileft", "muniright", "zipleft", "zipright", "msagleft", "msagright", "esnleft", "esnright"]
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
    var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
    var val = percent * range;
    var newVal = 0;
    if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
    if (newVal == range) newVal -= 2;
    if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the road was created from a split its id will have a prefix of '::'
// Don't process any futher splits to prevent getting in an infinite loop
var id = $feature.centerlineid;
if (Left(id, 2) == "::") return id;
// Get the object id, centerline id and geometry from the road
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
    // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
    var validCut = true;
    var geometries = []
    // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i]) == 0) {
            validCut = false;
            continue;
        }
        // Handle multipart geometries
        var allParts = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts) {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
        // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
        var firstGeometry = null;
        var secondGeomArray = [];
        var firstPoint = Geometry(road).paths[0][0];
        // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            } else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
        // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
        // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
        // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value         updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': {'toright': newToFromRight[0], 'toleft': newToFromLeft[0]},
            'geometry': firstGeometry
        }
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (Lower(k) == "fromright") {
                newAttributes['fromright'] = newToFromRight[1];
            } else if (Lower(k) == "fromleft") {
                newAttributes['fromleft'] = newToFromLeft[1];
            } else if (IndexOf(centerline_field_names, Lower(k)) &amp;gt; -1) {
                newAttributes[k] = featureAttributes[k];
            } else {
                continue;
            }
        }
        // Store a reference to the original id of the road for the split
        newAttributes['centerlineid'] = "::" + road.centerlineid;
        adds[Count(adds)] = {
            'attributes': newAttributes,
            'geometry': secondGeometry
        }
    }
}
// Return the original road centerline id
// Using the edit parameter return the list of updates and adds for the split roads
return {
    'result': id,
    'edit': [{'className': 'RoadCenterline', 'adds': adds, 'updates': updates}]
};&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Street Aliases&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a road centerline is created and copy related street alias names from split roads.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road centerline is created
// This will also copy related street alias names for any roads that were added as a result of a split
// Define the leading text and the delimiter for the ID
var prefix = "RD"
var join_char = "-"
// Define any fields to be copied from the street name aliases table (lower case)
var alias_field_names = ["roadpremod", "roadpredir", "roadpretype", "roadpretypesep", "roadname", "roadtype", "roadpostdir", "roadpostmod", "fullname", "municipality"]
// If the road was created from a split its oirginal id will have a prefix of '::'
// We will use this to find the original road and its related alias street names
if (Left($feature.centerlineid, 2) == "::" || IsEmpty($feature.centerlineid)) {
    var id = Concatenate([prefix, NextSequenceValue("CenterlineID")], join_char)
        // If the centerlineid is not set return the new id
    if (IsEmpty($feature.centerlineid)) return id;
       // Find the original ID of the road that was split
    var original_id = Mid($feature.centerlineid, 2, Count($feature.centerlineid) - 2);
    if (IsEmpty(original_id)) return id;
        // Find all the related road alias names for the split road
    // Store an add for every road alias and related it to the new road that was added after the cut
    var adds = []
    var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + original_id + "'");
    for (var roadNameAlias in roadNameAliases) {
        var featureAttributes = Dictionary(Text(roadNameAlias))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (IndexOf(alias_field_names, Lower(k)) &amp;gt; -1) {
                newAttributes[k] = featureAttributes[k];
            } else {
                continue;
            }
        }
        newAttributes['centerlineid'] = id
        adds[Count(adds)] = {
            'attributes': newAttributes
        }
    }
        // Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
    return {
        'result': id,
        'edit': [{'className': 'AliasStreetName', 'adds': adds}]
    };
}
else {
   return $feature.centerlineid
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Left)&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the left to address using the left from address, the length of the road and an interval or distance between unique addresses.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the left to address using the left from address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid optons are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Left From Address is empty or the Left To Address is not empty return the Left To Address var fromLeft = $feature.fromleft;
var toLeft = $feature.toleft;
if (IsEmpty(fromLeft) || !IsEmpty(toLeft)) return toLeft;
// Return the new Left To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromLeft;
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Right)&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the right to address using the right from address, the length of the road and an interval or distance between unique addresses.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the right to address using the right from address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid optons are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Right From Address is empty or the Right To Address is not empty return the Right To Address var fromRight = $feature.fromRight;
var toRight = $feature.toRight;
if (IsEmpty(fromRight) || !IsEmpty(toRight)) return toRight;
// Return the new Right To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromRight;
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191127" Name="Delete Rows" Time="121318" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteRows">DeleteRows "C:\Solutions\Tasks\January2020\Address Data Management\Data Reviewer\Address Data Management\Address Data Management 2.gdb\Address\RoadCenterline"</Process>
<Process Date="20191203" Time="172009" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_description&gt;Splits intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will split intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured
//Define any fields to be copied from the centerline when split (lower case)
var centerline_field_names = ["rclnguid", "discrpagid", "rangeprefixleft", "fromleft", "toleft", "parityleft", "rangeprefixright", "fromright", "toright", "parityright", "fullname", "fedroute", "fedrtetype", "afedrte", "afedrtetype", "stroute", "strtetype", "astrte", "astrtetype", "ctyroute", "onewaydir", "roadlevel", "inwater", "roadclass", "countryleft", "countryright", "stateleft", "stateright", "countyleft", "countyright","munileft", "muniright", "zipleft", "zipright", "msagleft", "msagright", "esnleft", "esnright"]
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
    var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
    var val = percent * range;
    var newVal = 0;
    if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
    if (newVal == range) newVal -= 2;
    if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the road was created from a split its id will have a prefix of '::'
// Don't process any futher splits to prevent getting in an infinite loop
var id = $feature.centerlineid;
if (Left(id, 2) == "::") return id;
// Get the object id, centerline id and geometry from the road
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
    // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
    var validCut = true;
    var geometries = []
    // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i]) == 0) {
            validCut = false;
            continue;
        }
        // Handle multipart geometries
        var allParts = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts) {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
        // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
        var firstGeometry = null;
        var secondGeomArray = [];
        var firstPoint = Geometry(road).paths[0][0];
        // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            } else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
        // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
        // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
        // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value   var attributes = {}
  if (newToFromRight[0] != null) attributes['toright'] = newToFromRight[0];
  if (newToFromLeft[0] != null) attributes['toleft'] = newToFromLeft[0];
        updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': attributes,
            'geometry': firstGeometry
        }
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (Lower(k) == "fromright" &amp;amp;&amp;amp; newToFromRight[1] != null) {
                newAttributes['fromright'] = newToFromRight[1];
            } else if (Lower(k) == "fromleft" &amp;amp;&amp;amp; newToFromLeft[1] != null) {
                newAttributes['fromleft'] = newToFromLeft[1];
            } else if (IndexOf(centerline_field_names, Lower(k)) &amp;gt; -1 &amp;amp;&amp;amp; featureAttributes[k] != null) {
                newAttributes[k] = featureAttributes[k];
            } else {
    continue;
   }
        }
  // Store a reference to the original id of the road for the split
        newAttributes['centerlineid'] = "::" + road.centerlineid;
        adds[Count(adds)] = {
            'attributes': newAttributes,
            'geometry': secondGeometry
        }
    }
}
// Return the original road centerline id
// Using the edit parameter return the list of updates and adds for the split roads
return {
    'result': id,
    'edit': [{'className': 'RoadCenterline', 'adds': adds, 'updates': updates}]
};
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191203" Time="172032" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Street Aliases&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a road centerline is created and copy related street alias names from split roads.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road centerline is created
// This will also copy related street alias names for any roads that were added as a result of a split
// Define the leading text and the delimiter for the ID
var prefix = "RD"
var join_char = "-"
// Define any fields to be copied from the street name aliases table (lower case)
var alias_field_names = ["roadpremod", "roadpredir", "roadpretype", "roadpretypesep", "roadname", "roadtype", "roadpostdir", "roadpostmod", "fullname", "municipality"]
// If the road was created from a split its oirginal id will have a prefix of '::'
// We will use this to find the original road and its related alias street names
if (Left($feature.centerlineid, 2) == "::" || IsEmpty($feature.centerlineid)) {
    var id = Concatenate([prefix, NextSequenceValue("CenterlineID")], join_char)
        // If the centerlineid is not set return the new id
    if (IsEmpty($feature.centerlineid)) return id;
       // Find the original ID of the road that was split
    var original_id = Mid($feature.centerlineid, 2, Count($feature.centerlineid) - 2);
    if (IsEmpty(original_id)) return id;
        // Find all the related road alias names for the split road
    // Store an add for every road alias and related it to the new road that was added after the cut
    var adds = []
    var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasStreetName"), "centerlineid = '" + original_id + "'");
    for (var roadNameAlias in roadNameAliases) {
        var featureAttributes = Dictionary(Text(roadNameAlias))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (IndexOf(alias_field_names, Lower(k)) &amp;gt; -1 &amp;amp;&amp;amp; featureAttributes[k] != null) {
                newAttributes[k] = featureAttributes[k];
            } else {
                continue;
            }
        }
        newAttributes['centerlineid'] = id
        adds[Count(adds)] = {
            'attributes': newAttributes
        }
    }
        // Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
    return {
        'result': id,
        'edit': [{'className': 'AliasStreetName', 'adds': adds}]
    };
}
else {
   return $feature.centerlineid
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191203" Time="173211" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_description&gt;Splits intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will split intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured
//Define any fields to be copied from the centerline when split (lower case)
var centerline_field_names = ["rclnguid", "discrpagid", "rangeprefixleft", "fromleft", "toleft", "parityleft", "rangeprefixright", "fromright", "toright", "parityright", "fullname", "fedroute", "fedrtetype", "afedrte", "afedrtetype", "stroute", "strtetype", "astrte", "astrtetype", "ctyroute", "onewaydir", "roadlevel", "inwater", "roadclass", "countryleft", "countryright", "stateleft", "stateright", "countyleft", "countyright","munileft", "muniright", "zipleft", "zipright", "msagleft", "msagright", "esnleft", "esnright"]
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
    var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
    var val = percent * range;
    var newVal = 0;
    if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
    if (newVal == range) newVal -= 2;
    if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the road was created from a split its id will have a prefix of '::'
// Don't process any futher splits to prevent getting in an infinite loop
var id = $feature.centerlineid;
if (Left(id, 2) == "::") return id;
// Get the object id, centerline id and geometry from the road
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
    // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
    var validCut = true;
    var geometries = []
    // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i]) == 0) {
            validCut = false;
            continue;
        }
        // Handle multipart geometries
        var allParts = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts) {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
        // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
        var firstGeometry = null;
        var secondGeomArray = [];
        var firstPoint = Geometry(road).paths[0][0];
        // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            } else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
        // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
        // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
        // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value   var attributes = {}
  if (newToFromRight[0] != null) attributes['toright'] = newToFromRight[0];
  if (newToFromLeft[0] != null) attributes['toleft'] = newToFromLeft[0];
        updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': attributes,
            'geometry': firstGeometry
        }
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (Lower(k) == "fromright" &amp;amp;&amp;amp; newToFromRight[1] != null) {
                newAttributes['fromright'] = newToFromRight[1];
            } else if (Lower(k) == "fromleft" &amp;amp;&amp;amp; newToFromLeft[1] != null) {
                newAttributes['fromleft'] = newToFromLeft[1];
            } else if (IndexOf(centerline_field_names, Lower(k)) &amp;gt; -1 &amp;amp;&amp;amp; featureAttributes[k] != null) {
                newAttributes[k] = featureAttributes[k];
            } else {
    continue;
   }
        }
  // Store a reference to the original id of the road for the split
        newAttributes['centerlineid'] = "::" + road.centerlineid;
        adds[Count(adds)] = {
            'attributes': newAttributes,
            'geometry': secondGeometry
        }
    }
}
// Return the original road centerline id
// Using the edit parameter return the list of updates and adds for the split roads
return {
    'result': id,
    'edit': [{'className': 'RoadCenterline', 'adds': adds, 'updates': updates}]
};&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191211" Time="111058" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Address Data Management.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Street Aliases&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a road centerline is created and copy related road alias names from split roads.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road centerline is created
// This will also copy related road alias names for any roads that were added as a result of a split
// Define the leading text and the delimiter for the ID
var prefix = "RD"
var join_char = "-"
// Define any fields to be copied from the road name aliases table (lower case)
var alias_field_names = ["roadpremod", "roadpredir", "roadpretype", "roadpretypesep", "roadname", "roadtype", "roadpostdir", "roadpostmod", "fullname", "municipality"]
// If the road was created from a split its oirginal id will have a prefix of '::'
// We will use this to find the original road and its related alias road names
if (Left($feature.centerlineid, 2) == "::" || IsEmpty($feature.centerlineid)) {
    var id = Concatenate([prefix, NextSequenceValue("CenterlineID")], join_char)
        // If the centerlineid is not set return the new id
    if (IsEmpty($feature.centerlineid)) return id;
       // Find the original ID of the road that was split
    var original_id = Mid($feature.centerlineid, 2, Count($feature.centerlineid) - 2);
    if (IsEmpty(original_id)) return id;
        // Find all the related road alias names for the split road
    // Store an add for every road alias and related it to the new road that was added after the cut
    var adds = []
    var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasRoadName"), "centerlineid = '" + original_id + "'");
    for (var roadNameAlias in roadNameAliases) {
        var featureAttributes = Dictionary(Text(roadNameAlias))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (IndexOf(alias_field_names, Lower(k)) &amp;gt; -1 &amp;amp;&amp;amp; featureAttributes[k] != null) {
                newAttributes[k] = featureAttributes[k];
            } else {
                continue;
            }
        }
        newAttributes['centerlineid'] = id
        adds[Count(adds)] = {
            'attributes': newAttributes
        }
    }
        // Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
    return {
        'result': id,
        'edit': [{'className': 'AliasRoadName', 'adds': adds}]
    };
}
else {
   return $feature.centerlineid
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191211" Time="111500" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Address Data Management.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Road Aliases&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will create a new unique id when a road centerline is created
// This will also copy related road alias names for any roads that were added as a result of a split
// Define the leading text and the delimiter for the ID
var prefix = "RD"
var join_char = "-"
// Define any fields to be copied from the road name aliases table (lower case)
var alias_field_names = ["roadpremod", "roadpredir", "roadpretype", "roadpretypesep", "roadname", "roadtype", "roadpostdir", "roadpostmod", "fullname", "municipality"]
// If the road was created from a split its oirginal id will have a prefix of '::'
// We will use this to find the original road and its related alias road names
if (Left($feature.centerlineid, 2) == "::" || IsEmpty($feature.centerlineid)) {
    var id = Concatenate([prefix, NextSequenceValue("CenterlineID")], join_char)
        // If the centerlineid is not set return the new id
    if (IsEmpty($feature.centerlineid)) return id;
       // Find the original ID of the road that was split
    var original_id = Mid($feature.centerlineid, 2, Count($feature.centerlineid) - 2);
    if (IsEmpty(original_id)) return id;
        // Find all the related road alias names for the split road
    // Store an add for every road alias and related it to the new road that was added after the cut
    var adds = []
    var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasRoadName"), "centerlineid = '" + original_id + "'");
    for (var roadNameAlias in roadNameAliases) {
        var featureAttributes = Dictionary(Text(roadNameAlias))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (IndexOf(alias_field_names, Lower(k)) &amp;gt; -1 &amp;amp;&amp;amp; featureAttributes[k] != null) {
                newAttributes[k] = featureAttributes[k];
            } else {
                continue;
            }
        }
        newAttributes['centerlineid'] = id
        adds[Count(adds)] = {
            'attributes': newAttributes
        }
    }
        // Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
    return {
        'result': id,
        'edit': [{'className': 'AliasRoadName', 'adds': adds}]
    };
}
else {
   return $feature.centerlineid
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;rule_description&gt;Creates a new unique id when a road centerline is created and copy related road alias names from split roads.&lt;/rule_description&gt;&lt;field_name&gt;centerlineid&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Road Aliases&lt;/rule_name&gt;&lt;evaluation_order&gt;5&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191211" Time="111511" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Address Data Management.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Street Aliases&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191211" Time="111519" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Address Data Management.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Road Aliases&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a road centerline is created and copy related road alias names from split roads.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a road centerline is created
// This will also copy related road alias names for any roads that were added as a result of a split
// Define the leading text and the delimiter for the ID
var prefix = "RD"
var join_char = "-"
// Define any fields to be copied from the road name aliases table (lower case)
var alias_field_names = ["roadpremod", "roadpredir", "roadpretype", "roadpretypesep", "roadname", "roadtype", "roadpostdir", "roadpostmod", "fullname", "municipality"]
// If the road was created from a split its oirginal id will have a prefix of '::'
// We will use this to find the original road and its related alias road names
if (Left($feature.centerlineid, 2) == "::" || IsEmpty($feature.centerlineid)) {
    var id = Concatenate([prefix, NextSequenceValue("CenterlineID")], join_char)
        // If the centerlineid is not set return the new id
    if (IsEmpty($feature.centerlineid)) return id;
       // Find the original ID of the road that was split
    var original_id = Mid($feature.centerlineid, 2, Count($feature.centerlineid) - 2);
    if (IsEmpty(original_id)) return id;
        // Find all the related road alias names for the split road
    // Store an add for every road alias and related it to the new road that was added after the cut
    var adds = []
    var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasRoadName"), "centerlineid = '" + original_id + "'");
    for (var roadNameAlias in roadNameAliases) {
        var featureAttributes = Dictionary(Text(roadNameAlias))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (IndexOf(alias_field_names, Lower(k)) &amp;gt; -1 &amp;amp;&amp;amp; featureAttributes[k] != null) {
                newAttributes[k] = featureAttributes[k];
            } else {
                continue;
            }
        }
        newAttributes['centerlineid'] = id
        adds[Count(adds)] = {
            'attributes': newAttributes
        }
    }
        // Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
    return {
        'result': id,
        'edit': [{'className': 'AliasRoadName', 'adds': adds}]
    };
}
else {
   return $feature.centerlineid
}&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Road Aliases&lt;/rule_name&gt;&lt;evaluation_order&gt;2&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20191212" Time="144936" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Address Data Management.gdb\Address\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Left)&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the left to address using the left from address, the length of the road and an interval or distance between unique addresses.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the left to address using the left from address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid options are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Left From Address is empty or the Left To Address is not empty return the Left To Address var fromLeft = $feature.fromleft;
var toLeft = $feature.toleft;
if (IsEmpty(fromLeft) || !IsEmpty(toLeft)) return toLeft;
// Return the new Left To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromLeft;
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Right)&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the right to address using the right from address, the length of the road and an interval or distance between unique addresses.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the right to address using the right from address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid options are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Right From Address is empty or the Right To Address is not empty return the Right To Address var fromRight = $feature.fromRight;
var toRight = $feature.toRight;
if (IsEmpty(fromRight) || !IsEmpty(toRight)) return toRight;
// Return the new Right To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromRight;
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210205" Name="Define Projection" Time="152949" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DefineProjection">DefineProjection "H:\Map Resources\Esri Solutions\Address Data Management\Address Data Management.gdb\RoadCenterline" PROJCS['NAD_1983_StatePlane_Washington_South_FIPS_4602_Feet',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',1640416.666666667],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-120.5],PARAMETER['Standard_Parallel_1',45.83333333333334],PARAMETER['Standard_Parallel_2',47.33333333333334],PARAMETER['Latitude_Of_Origin',45.33333333333334],UNIT['Foot_US',0.3048006096012192]],VERTCS['NAVD88_height_(ftUS)',VDATUM['North_American_Vertical_Datum_1988'],PARAMETER['Vertical_Shift',0.0],PARAMETER['Direction',1.0],UNIT['Foot_US',0.3048006096012192]]</Process>
<Process Date="20210205" Time="154408" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=H:\Map Resources\Esri Solutions\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;countryleft&lt;/field_name&gt;&lt;default_value&gt;US&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;countryright&lt;/field_name&gt;&lt;default_value&gt;US&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;stateleft&lt;/field_name&gt;&lt;default_value&gt;WA&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;stateright&lt;/field_name&gt;&lt;default_value&gt;WA&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;countyleft&lt;/field_name&gt;&lt;default_value&gt;Whitman&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;countyright&lt;/field_name&gt;&lt;default_value&gt;Whitman&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;munileft&lt;/field_name&gt;&lt;default_value&gt;Pullman&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;muniright&lt;/field_name&gt;&lt;default_value&gt;Pullman&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;zipleft&lt;/field_name&gt;&lt;default_value&gt;99163&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;zipright&lt;/field_name&gt;&lt;default_value&gt;99163&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20210205" Time="161125" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "H:\Map Resources\Esri Solutions\Address Data Management\Address Data Management.gdb\RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210205" Time="161359" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline' "H:\Map Resources\Esri Solutions\Address Data Management\Address Data Management.gdb\RoadCenterline" "Use the field map to reconcile field differences" "centerlineid "Centerline ID" true true false 20 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,centerlineid,0,20;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,rclnguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,discrpagid,0,75;rangeprefixleft "Left Address Number Prefix" true true false 15 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,rangeprefixleft,0,15;fromleft "Left From Address" true true false 4 Long 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,fromleft,-1,-1;toleft "Left To Address" true true false 4 Long 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,toleft,-1,-1;parityleft "Parity Left" true true false 1 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,parityleft,0,1;rangeprefixright "Right Address Number Prefix" true true false 15 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,rangeprefixright,0,15;fromright "Right From Address" true true false 4 Long 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,fromright,-1,-1;toright "Right To Address" true true false 4 Long 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,toright,-1,-1;parityright "Parity Right" true true false 1 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,parityright,0,1;fullname "Full Road Name" true true false 300 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,fullname,0,300;fedroute "Federal Route" true true false 10 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,fedroute,0,10;fedrtetype "Federal Route Type" true true false 20 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,fedrtetype,0,20;afedrte "Alternate Federal Route" true true false 10 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,afedrte,0,10;afedrtetype "Alternate Federal Route Type" true true false 20 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,afedrtetype,0,20;stroute "State Route" true true false 10 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,stroute,0,10;strtetype "State Route Type" true true false 20 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,strtetype,0,20;astrte "Alternate State Route" true true false 10 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,astrte,0,10;astrtetype "Alternate State Route Type" true true false 20 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,astrtetype,0,20;ctyroute "County Route" true true false 10 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,ctyroute,0,10;onewaydir "One Way Indicator" true true false 10 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,onewaydir,0,10;roadlevel "Above or Below Grade" true true false 4 Long 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,roadlevel,-1,-1;inwater "In Water" true true false 5 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,inwater,0,5;roadclass "Road Class" true true false 20 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,roadclass,0,20;countryleft "Country on Left" true true false 2 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,countryleft,0,2;countryright "Country on Right" true true false 2 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,countryright,0,2;stateleft "State on Left" true true false 2 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,stateleft,0,2;stateright "State on Right" true true false 2 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,stateright,0,2;countyleft "County on Left" true true false 40 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,countyleft,0,40;countyright "County on Right" true true false 40 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,countyright,0,40;munileft "Municipality on Left" true true false 100 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,munileft,0,100;muniright "Municipality on Right" true true false 100 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,muniright,0,100;zipleft "Zip on Left" true true false 5 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,zipleft,0,5;zipright "Zip on Right" true true false 5 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,zipright,0,5;msagleft "MSAG on Left" true true false 35 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,msagleft,0,35;msagright "MSAG on Right" true true false 35 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,msagright,0,35;esnleft "ESN on Left" true true false 5 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,esnleft,0,5;esnright "ESN on Right" true true false 5 Text 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,esnright,0,5;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,H:\Map Resources\Esri Solutions\Road Network Data Management\Road Network Data Management.gdb\RoadCenterline,GlobalID,-1,-1" # #</Process>
<Process Date="20210208" Time="084227" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=H:\Map Resources\Esri Solutions\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210208" Time="105516" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" countyleft 'Whitman' "Python 3" # Text</Process>
<Process Date="20210208" Time="105532" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" countyright 'Whitman' "Python 3" # Text</Process>
<Process Date="20210208" Time="105608" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" munileft 'Pullman' "Python 3" # Text</Process>
<Process Date="20210208" Time="105626" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" muniright 'Pullman' "Python 3" # Text</Process>
<Process Date="20210208" Time="112720" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB")):
titlecase = '{}{}'.format(rname.split(' ')[0], titlername.split(' ')[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="112848" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB")):
titlecase = '{}{}'.format(rname.split(' ')[0], rname.split(' ')[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="112944" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB")):
titlecase = '{} {}'.format(rname.split(' ')[0], rname.split(' ')[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="113221" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="113247" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="120453" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="120601" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="120633" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="120711" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="120752" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="120815" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="120914" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="121809" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="121853" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="121939" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="121953" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="122022" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname title_me(!fullname!) "Python 3" "def title_me(rname):
if rname.startswith(("N", "S", "E", "W", "NE", "NW", "SE", "SW", "NB", "SB", "EB", "WB", "SR")):
titlecase = '{} {}'.format(rname.split(' ',1)[0], rname.split(' ',1)[1].title())
else:
titlecase = rname.title()
return titlecase
" Text</Process>
<Process Date="20210208" Time="134141" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname 'Whelan Rd' "Python 3" # Text</Process>
<Process Date="20210208" Time="134246" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname 'USDA Driveway' "Python 3" # Text</Process>
<Process Date="20210316" Time="092036" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CopyFeatures">CopyFeatures "H:\Map Resources\Esri Solutions\Address Data Management\Address Data Management.gdb\RoadCenterline" "H:\Map Resources\Map Services\CityOfPullmanGIS - SDE.sde\CityOfPullmanGIS.SDE.AddressDataManagement\CityOfPullmanGIS.SDE.RoadCenterline" # # # #</Process>
<Process Date="20210316" Time="120234" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684730373168473179786c747130674167644b6331334c54394c6b6644434c694d654774714e6f535563446b3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;parityleft&lt;/field_name&gt;&lt;domain_name&gt;AddressParity&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;parityright&lt;/field_name&gt;&lt;domain_name&gt;AddressParity&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;fullname&lt;/field_name&gt;&lt;domain_name&gt;RoadNameIndex&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;fedrtetype&lt;/field_name&gt;&lt;domain_name&gt;RouteType&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;afedrtetype&lt;/field_name&gt;&lt;domain_name&gt;RouteType&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;strtetype&lt;/field_name&gt;&lt;domain_name&gt;RouteType&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;astrtetype&lt;/field_name&gt;&lt;domain_name&gt;RouteType&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;onewaydir&lt;/field_name&gt;&lt;domain_name&gt;OneWayIndicator&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;roadlevel&lt;/field_name&gt;&lt;domain_name&gt;GradeLevel&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;inwater&lt;/field_name&gt;&lt;domain_name&gt;YesNo_Text&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;roadclass&lt;/field_name&gt;&lt;domain_name&gt;RoadClass&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;stateleft&lt;/field_name&gt;&lt;domain_name&gt;StateAbbreviation&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;stateright&lt;/field_name&gt;&lt;domain_name&gt;StateAbbreviation&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20210316" Time="120417" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "H:\Map Resources\Map Services\CityOfPullmanGIS - SDE.sde\CityOfPullmanGIS.SDE.AddressDataManagement\CityOfPullmanGIS.SDE.RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will split intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured
//Define any fields to be copied from the centerline when split (lower case)
var centerline_field_names = ["rclnguid", "discrpagid", "rangeprefixleft", "fromleft", "toleft", "parityleft", "rangeprefixright", "fromright", "toright", "parityright", "fullname", "fedroute", "fedrtetype", "afedrte", "afedrtetype", "stroute", "strtetype", "astrte", "astrtetype", "ctyroute", "onewaydir", "roadlevel", "inwater", "roadclass", "countryleft", "countryright", "stateleft", "stateright", "countyleft", "countyright","munileft", "muniright", "zipleft", "zipright", "msagleft", "msagright", "esnleft", "esnright"]
// This function calculates a new from and to address based on the percentage along the line the split occurs
function newToFrom(from, to, percent) {
    if (from == null || to == null) return [null, null];
    var range = Abs(to - from);
    if (range &amp;lt; 2) return [from, to];
    var val = percent * range;
    var newVal = 0;
    if ((Floor(val) % 2) == 0) newVal = Floor(val);
    else if ((Ceil(val) % 2) == 0) newVal = Ceil(val);
    else newVal = Floor(val) - 1;
    if (newVal == range) newVal -= 2;
    if (from &amp;gt; to) return [from - newVal, from - newVal - 2];
    else return [from + newVal, from + newVal + 2];
}
// If the road was created from a split its id will have a prefix of '::'
// Don't process any futher splits to prevent getting in an infinite loop
var id = $feature.centerlineid;
if (Left(id, 2) == "::") return id;
// Get the object id, centerline id and geometry from the road
var oid = $feature.OBJECTID;
var geom = Geometry($feature);
// Get all the intersecting roads
var intersectingRoads = Intersects(FeatureSetByName($datastore, "RoadCenterline"), geom);
var adds = [];
var updates = [];
// Loop through each intersecting road
for (var road in intersectingRoads) {
    // Continue to the next road if the intersecting road is the same or geometry is the same
    if (oid == road.OBJECTID || Equals(geom, road)) continue;
    // Cut the intersecting road and continue if the result of the cut is 0 features
    var newRoads = Cut(road, geom);
    if (Count(newRoads) == 0) continue;
    var validCut = true;
    var geometries = []
    // Loop through collection of lines and check that it was a valid cut in the middle of a segment
    for (var i in newRoads) {
        if (newRoads[i] == null || Length(newRoads[i]) == 0) {
            validCut = false;
            continue;
        }
        // Handle multipart geometries
        var allParts = MultiPartToSinglePart(newRoads[i]);
        for (var p in allParts) {
            geometries[Count(geometries)] = allParts[p];
        }
    }
    // Process the cut if valid
    if (validCut) {
        // Get the address range of the intersecting road
        var fromRight = road.fromright;
        var toRight = road.toright;
        var fromLeft = road.fromleft;
        var toLeft = road.toleft;
        var firstGeometry = null;
        var secondGeomArray = [];
        var firstPoint = Geometry(road).paths[0][0];
        // Loop through each geometry in the cut
        // Store the geometry including the first vertex of the orginal road as the first geometry
        // Collect all other geometries in an array
        for (var i in geometries) {
            if (Equals(firstPoint, geometries[i].paths[0][0])) {
                firstGeometry = geometries[i];
            } else {
                secondGeomArray[Count(secondGeomArray)] = geometries[i];
            }
        }
        // Merge all other geometries as the second geometry
        var secondGeometry = Union(secondGeomArray);
        // Calculate the new address ranges based on the intersection location along the line
        var geometryPercent = Length(firstGeometry, 'feet') / (Length(firstGeometry, 'feet') + Length(secondGeometry, 'feet'));
        var newToFromLeft = newToFrom(fromLeft, toLeft, geometryPercent)
        var newToFromRight = newToFrom(fromRight, toRight, geometryPercent)
        // Store an update for the intersecting road with the first geometry from the cut and the new right to and left to value   var attributes = {}
  if (newToFromRight[0] != null) attributes['toright'] = newToFromRight[0];
  if (newToFromLeft[0] != null) attributes['toleft'] = newToFromLeft[0];
        updates[Count(updates)] = {
            'objectID': road.OBJECTID,
            'attributes': attributes,
            'geometry': firstGeometry
        }
        // Store an add for a new road with the second geometry from the cut and the new right from and left from value         var featureAttributes = Dictionary(Text(road))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (Lower(k) == "fromright" &amp;amp;&amp;amp; newToFromRight[1] != null) {
                newAttributes['fromright'] = newToFromRight[1];
            } else if (Lower(k) == "fromleft" &amp;amp;&amp;amp; newToFromLeft[1] != null) {
                newAttributes['fromleft'] = newToFromLeft[1];
            } else if (IndexOf(centerline_field_names, Lower(k)) &amp;gt; -1 &amp;amp;&amp;amp; featureAttributes[k] != null) {
                newAttributes[k] = featureAttributes[k];
            } else {
    continue;
   }
        }
  // Store a reference to the original id of the road for the split
        newAttributes['centerlineid'] = "::" + road.centerlineid;
        adds[Count(adds)] = {
            'attributes': newAttributes,
            'geometry': secondGeometry
        }
    }
}
// Return the original road centerline id
// Using the edit parameter return the list of updates and adds for the split roads
return {
    'result': id,
    'edit': [{'className': 'RoadCenterline', 'adds': adds, 'updates': updates}]
};&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;rule_description&gt;Splits intersecting roads at their intersection and the address ranges will be updated to reflect where the split occured.&lt;/rule_description&gt;&lt;field_name&gt;centerlineid&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;evaluation_order&gt;2&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Road Aliases&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will create a new unique id when a road centerline is created
// This will also copy related road alias names for any roads that were added as a result of a split
// Define the leading text and the delimiter for the ID
var prefix = "RD"
var join_char = "-"
// Define any fields to be copied from the road name aliases table (lower case)
var alias_field_names = ["roadpremod", "roadpredir", "roadpretype", "roadpretypesep", "roadname", "roadtype", "roadpostdir", "roadpostmod", "fullname", "municipality"]
// If the road was created from a split its oirginal id will have a prefix of '::'
// We will use this to find the original road and its related alias road names
if (Left($feature.centerlineid, 2) == "::" || IsEmpty($feature.centerlineid)) {
    var id = Concatenate([prefix, NextSequenceValue("CenterlineID")], join_char)
        // If the centerlineid is not set return the new id
    if (IsEmpty($feature.centerlineid)) return id;
       // Find the original ID of the road that was split
    var original_id = Mid($feature.centerlineid, 2, Count($feature.centerlineid) - 2);
    if (IsEmpty(original_id)) return id;
        // Find all the related road alias names for the split road
    // Store an add for every road alias and related it to the new road that was added after the cut
    var adds = []
    var roadNameAliases = Filter(FeatureSetByName($datastore, "AliasRoadName"), "centerlineid = '" + original_id + "'");
    for (var roadNameAlias in roadNameAliases) {
        var featureAttributes = Dictionary(Text(roadNameAlias))['attributes'];
        var newAttributes = {};
        for (var k in featureAttributes) {
            if (IndexOf(alias_field_names, Lower(k)) &amp;gt; -1 &amp;amp;&amp;amp; featureAttributes[k] != null) {
                newAttributes[k] = featureAttributes[k];
            } else {
                continue;
            }
        }
        newAttributes['centerlineid'] = id
        adds[Count(adds)] = {
            'attributes': newAttributes
        }
    }
        // Using the edit parameter return the list of updates and adds for the intersecting roads and a list of adds for related road alias names
    return {
        'result': id,
        'edit': [{'className': 'AliasRoadName', 'adds': adds}]
    };
}
else {
   return $feature.centerlineid
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;rule_description&gt;Creates a new unique id when a road centerline is created and copy related road alias names from split roads.&lt;/rule_description&gt;&lt;field_name&gt;centerlineid&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Centerline ID and Copy Road Aliases&lt;/rule_name&gt;&lt;evaluation_order&gt;3&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Left)&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate the left to address using the left from address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid options are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Left From Address is empty or the Left To Address is not empty return the Left To Address var fromLeft = $feature.fromleft;
var toLeft = $feature.toleft;
if (IsEmpty(fromLeft) || !IsEmpty(toLeft)) return toLeft;
// Return the new Left To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromLeft;
&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates the left to address using the left from address, the length of the road and an interval or distance between unique addresses.&lt;/rule_description&gt;&lt;field_name&gt;toleft&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Logical Block Addressing (Left)&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Left)&lt;/rule_name&gt;&lt;evaluation_order&gt;4&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Right)&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate the right to address using the right from address, the length of the road and an interval or distance between unique addresses
// Specify the interval or distance between unique addresses
var addressIntervalDistance = 10;
// Specify the unity of measure. Valid options are feet, meters, yards, miles, kilometers
var unit = "feet";
// If the Right From Address is empty or the Right To Address is not empty return the Right To Address var fromRight = $feature.fromRight;
var toRight = $feature.toRight;
if (IsEmpty(fromRight) || !IsEmpty(toRight)) return toRight;
// Return the new Right To Address
var featureLength = Length($feature, unit);
return Ceil(featureLength/addressIntervalDistance) * 2 + fromRight;
&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates the right to address using the right from address, the length of the road and an interval or distance between unique addresses.&lt;/rule_description&gt;&lt;field_name&gt;toright&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Logical Block Addressing (Right)&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Logical Block Addressing (Right)&lt;/rule_name&gt;&lt;evaluation_order&gt;5&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210318" Time="113143" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684f685a65304c61655559374e39614d57597a4649545152473564775666507a6771662f6835546b794a58733d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;AUTHENTICATION_MODE=DBMS;BRANCH=sde.DEFAULT&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;predirection&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;Road Direction&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;field_domain&gt;RoadPrefix&lt;/field_domain&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;roadname&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;Road Name&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;roadtype&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;Road Type&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210318" Time="113308" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684f685a65304c61655559374e39614d57597a4649545152473564775666507a6771662f6835546b794a58733d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;AUTHENTICATION_MODE=DBMS;BRANCH=sde.DEFAULT&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;predirection&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;Road Direction&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;field_domain&gt;RoadPrefix&lt;/field_domain&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;roadname&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;Road Name&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;roadtype&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;Road Type&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210318" Time="124105" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684f685a65304c61655559374e39614d57597a4649545152473564775666507a6771662f6835546b794a58733d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;AUTHENTICATION_MODE=DBMS;BRANCH=sde.DEFAULT&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;roadtype&lt;/field_name&gt;&lt;domain_name&gt;RoadType&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20210318" Time="125029" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "H:\Map Resources\Map Services\CityOfPullmanGIS - SDE - Branch.sde\CityOfPullmanGIS.SDE.AddressDataManagement\CityOfPullmanGIS.SDE.RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This will calculate the full road name for a road centerline by concatenating several other field values // Specify the fields to concatenate
var values = [$feature.predirection, $feature.roadname, $feature.roadtype];
var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}
// Return the field values concatenated with a space between
return Concatenate(combined_value, " ");&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates the full road name for a road centerline by concatenating other field values.&lt;/rule_description&gt;&lt;field_name&gt;fullname&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Full Road Name&lt;/rule_name&gt;&lt;evaluation_order&gt;5&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210318" Time="125051" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "H:\Map Resources\Map Services\CityOfPullmanGIS - SDE - Branch.sde\CityOfPullmanGIS.SDE.AddressDataManagement\CityOfPullmanGIS.SDE.RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This will calculate the full road name for a road centerline by concatenating several other field values // Specify the fields to concatenate
var values = [$feature.predirection, $feature.roadname, $feature.roadtype];
var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}
// Return the field values concatenated with a space between
return Concatenate(combined_value, " ");&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates the full road name for a road centerline by concatenating other field values.&lt;/rule_description&gt;&lt;field_name&gt;fullname&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Full Road Name&lt;/rule_name&gt;&lt;evaluation_order&gt;5&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210318" Time="161617" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "H:\Map Resources\Map Services\CityOfPullmanGIS - SDE - Branch.sde\CityOfPullmanGIS.SDE.AddressDataManagement\CityOfPullmanGIS.SDE.RoadCenterline" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210318" Time="161708" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684730373168473179786c747130674167644b6331334c54394c6b6644434c694d654774714e6f535563446b3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210318" Time="162415" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "All Roads (Reference)" predirection !fullname!.split(' ')[0] "Python 3" # Text</Process>
<Process Date="20210318" Time="170418" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684730373168473179786c747130674167644b6331334c54394c6b6644434c694d654774714e6f535563446b3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210319" Time="115716" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684730373168473179786c747130674167644b6331334c54394c6b6644434c694d654774714e6f535563446b3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteField&gt;&lt;field_name&gt;predirection&lt;/field_name&gt;&lt;field_name&gt;roadtype&lt;/field_name&gt;&lt;/DeleteField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20210319" Time="145830" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684e6c545378317278726834324f316e616c542b7249555330704e6c374850783348344f6d5072533365356f3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;CreateDomain&gt;&lt;domain_name&gt;SpeedLimit_Old&lt;/domain_name&gt;&lt;domain_description&gt;A range of speed limits assigned to a road segment&lt;/domain_description&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;domain_type&gt;CODED&lt;/domain_type&gt;&lt;split_policy&gt;DEFAULT&lt;/split_policy&gt;&lt;merge_policy&gt;DEFAULT&lt;/merge_policy&gt;&lt;/CreateDomain&gt;&lt;AddCodedValueToDomain&gt;&lt;domain_name&gt;SpeedLimit_Old&lt;/domain_name&gt;&lt;coded_values&gt;&lt;coded_value&gt;&lt;code&gt;25 MPH&lt;/code&gt;&lt;code_description&gt;25 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;coded_value&gt;&lt;code&gt;35 MPH&lt;/code&gt;&lt;code_description&gt;35 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;coded_value&gt;&lt;code&gt;40 MPH&lt;/code&gt;&lt;code_description&gt;40 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;coded_value&gt;&lt;code&gt;45 MPH&lt;/code&gt;&lt;code_description&gt;45 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;coded_value&gt;&lt;code&gt;50 MPH&lt;/code&gt;&lt;code_description&gt;50 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;coded_value&gt;&lt;code&gt;55 MPH&lt;/code&gt;&lt;code_description&gt;55 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;coded_value&gt;&lt;code&gt;60 MPH&lt;/code&gt;&lt;code_description&gt;60 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;coded_value&gt;&lt;code&gt;65 MPH&lt;/code&gt;&lt;code_description&gt;65 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;coded_value&gt;&lt;code&gt;70 MPH&lt;/code&gt;&lt;code_description&gt;70 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;coded_value&gt;&lt;code&gt;75 MPH&lt;/code&gt;&lt;code_description&gt;75 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;coded_value&gt;&lt;code&gt;80 MPH&lt;/code&gt;&lt;code_description&gt;80 MPH&lt;/code_description&gt;&lt;/coded_value&gt;&lt;/coded_values&gt;&lt;/AddCodedValueToDomain&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddCodedValueToDomain&gt;&lt;domain_name&gt;SpeedLimit&lt;/domain_name&gt;&lt;/AddCodedValueToDomain&gt;&lt;SortCodedValueDomain&gt;&lt;domain_name&gt;SpeedLimit&lt;/domain_name&gt;&lt;descending&gt;ASCENDING&lt;/descending&gt;&lt;sortByDescription&gt;CODE&lt;/sortByDescription&gt;&lt;/SortCodedValueDomain&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;speedlimit&lt;/field_name&gt;&lt;field_type&gt;SHORT&lt;/field_type&gt;&lt;field_precision&gt;5&lt;/field_precision&gt;&lt;field_alias&gt;Speed Limit&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;field_domain&gt;SpeedLimit&lt;/field_domain&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210319" Time="145912" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684e6c545378317278726834324f316e616c542b7249555330704e6c374850783348344f6d5072533365356f3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;speedlimit&lt;/field_name&gt;&lt;field_type&gt;SHORT&lt;/field_type&gt;&lt;field_precision&gt;5&lt;/field_precision&gt;&lt;field_alias&gt;Speed Limit&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;field_domain&gt;SpeedLimit&lt;/field_domain&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210319" Time="145957" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684e6c545378317278726834324f316e616c542b7249555330704e6c374850783348344f6d5072533365356f3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;speedlimit&lt;/field_name&gt;&lt;field_type&gt;SHORT&lt;/field_type&gt;&lt;field_precision&gt;5&lt;/field_precision&gt;&lt;field_alias&gt;Speed Limit&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;field_domain&gt;NumberLanes&lt;/field_domain&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210319" Time="150016" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684e6c545378317278726834324f316e616c542b7249555330704e6c374850783348344f6d5072533365356f3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;speedlimit&lt;/field_name&gt;&lt;domain_name&gt;SpeedLimit&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20210319" Time="150818" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684730373168473179786c747130674167644b6331334c54394c6b6644434c694d654774714e6f535563446b3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;speedlimit&lt;/field_name&gt;&lt;domain_name&gt;SpeedLimit&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20210319" Time="150857" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684730373168473179786c747130674167644b6331334c54394c6b6644434c694d654774714e6f535563446b3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;speedlimit&lt;/field_name&gt;&lt;default_value&gt;25&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20210319" Time="150938" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" speedlimit 25 "Python 3" # Text</Process>
<Process Date="20210406" Time="140219" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684e6c545378317278726834324f316e616c542b7249555330704e6c374850783348344f6d5072533365356f3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;ownedby&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_scale&gt;0&lt;/field_scale&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;Owned By&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210406" Time="140338" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684e6c545378317278726834324f316e616c542b7249555330704e6c374850783348344f6d5072533365356f3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;ownedby&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_scale&gt;0&lt;/field_scale&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;Owned By&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210406" Time="140359" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684e6c545378317278726834324f316e616c542b7249555330704e6c374850783348344f6d5072533365356f3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;ownedby&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_scale&gt;0&lt;/field_scale&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;Owned By&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210406" Time="140807" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684e6c545378317278726834324f316e616c542b7249555330704e6c374850783348344f6d5072533365356f3d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;ownedby&lt;/field_name&gt;&lt;domain_name&gt;RoadOwner&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;ownedby&lt;/field_name&gt;&lt;default_value&gt;CoP&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process>
<Process Date="20210728" Time="162904" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684f4f444b784750456f366b497257783541744d785354675a415773426c57666d6d3057656b635441664a673d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;RoadMatrixID&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;RoadMatrix ID&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210728" Time="163143" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684f4f444b784750456f366b497257783541744d785354675a415773426c57666d6d3057656b635441664a673d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;VERSION=sde.DEFAULT;AUTHENTICATION_MODE=DBMS&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;RoadMatrixID&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_alias&gt;RoadMatrix ID&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20210728" Time="164438" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "All Roads (Reference)" RoadMatrixID !RoadMatrixID!.zfill(10) "Python 3" # Text</Process>
<Process Date="20210909" Time="113017" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname 'US Hwy 195' "Python 3" # Text</Process>
<Process Date="20210909" Time="114902" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Roads\All Roads (Reference)" fullname 'Kitzmiller Rd' "Python 3" # Text</Process>
<Process Date="20210909" Time="153758" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;FeatureDataset&gt;CityOfPullmanGIS.SDE.AddressDataManagement&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;ENCRYPTED_PASSWORD=00022e684f685a65304c61655559374e39614d57597a4649545152473564775666507a6771662f6835546b794a58733d2a00;SERVER=sql-arcgis.pullman-wa.gov;INSTANCE=sde:sqlserver:sql-arcgis.pullman-wa.gov;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=sql-arcgis.pullman-wa.gov;DATABASE=CityOfPullmanGIS;USER=sde;AUTHENTICATION_MODE=DBMS;BRANCH=sde.DEFAULT&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;CityOfPullmanGIS.SDE.RoadCenterline&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Split Intersecting Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Centerline ID and Copy Road Aliases&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process>
<Process Date="20211208" Time="084932" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Analysis Tools.tbx\Buffer">Buffer CityOfPullmanGIS.SDE.RoadCenterline H:\Cartography\Cartography.gdb\RoadCenterlines_Buffer25 "25 Feet" Full Round "No Dissolve" # Planar</Process>
</lineage>
<itemProps>
<itemLocation>
<linkage Sync="TRUE">file://\\pullman-wa.gov\Shares\Home\sjenkins\Cartography\Cartography.gdb</linkage>
<protocol Sync="TRUE">Local Area Network</protocol>
</itemLocation>
<itemName Sync="TRUE">RoadCenterlines_Buffer25</itemName>
<imsContentType Sync="TRUE">002</imsContentType>
</itemProps>
<coordRef>
<type Sync="TRUE">Projected</type>
<geogcsn Sync="TRUE">GCS_North_American_1983</geogcsn>
<csUnits Sync="TRUE">Linear Unit: Foot_US (0.304801)</csUnits>
<projcsn Sync="TRUE">NAD_1983_StatePlane_Washington_South_FIPS_4602_Feet</projcsn>
<peXml Sync="TRUE">&lt;ProjectedCoordinateSystem xsi:type='typens:ProjectedCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.7.0'&gt;&lt;WKT&gt;PROJCS[&amp;quot;NAD_1983_StatePlane_Washington_South_FIPS_4602_Feet&amp;quot;,GEOGCS[&amp;quot;GCS_North_American_1983&amp;quot;,DATUM[&amp;quot;D_North_American_1983&amp;quot;,SPHEROID[&amp;quot;GRS_1980&amp;quot;,6378137.0,298.257222101]],PRIMEM[&amp;quot;Greenwich&amp;quot;,0.0],UNIT[&amp;quot;Degree&amp;quot;,0.0174532925199433]],PROJECTION[&amp;quot;Lambert_Conformal_Conic&amp;quot;],PARAMETER[&amp;quot;False_Easting&amp;quot;,1640416.666666667],PARAMETER[&amp;quot;False_Northing&amp;quot;,0.0],PARAMETER[&amp;quot;Central_Meridian&amp;quot;,-120.5],PARAMETER[&amp;quot;Standard_Parallel_1&amp;quot;,45.83333333333334],PARAMETER[&amp;quot;Standard_Parallel_2&amp;quot;,47.33333333333334],PARAMETER[&amp;quot;Latitude_Of_Origin&amp;quot;,45.33333333333334],UNIT[&amp;quot;Foot_US&amp;quot;,0.3048006096012192],AUTHORITY[&amp;quot;EPSG&amp;quot;,2286]],VERTCS[&amp;quot;NAVD88_height_(ftUS)&amp;quot;,VDATUM[&amp;quot;North_American_Vertical_Datum_1988&amp;quot;],PARAMETER[&amp;quot;Vertical_Shift&amp;quot;,0.0],PARAMETER[&amp;quot;Direction&amp;quot;,1.0],UNIT[&amp;quot;Foot_US&amp;quot;,0.3048006096012192],AUTHORITY[&amp;quot;EPSG&amp;quot;,6360]]&lt;/WKT&gt;&lt;XOrigin&gt;-117498300&lt;/XOrigin&gt;&lt;YOrigin&gt;-98850300&lt;/YOrigin&gt;&lt;XYScale&gt;3048.0060960121928&lt;/XYScale&gt;&lt;ZOrigin&gt;-100000&lt;/ZOrigin&gt;&lt;ZScale&gt;10000&lt;/ZScale&gt;&lt;MOrigin&gt;-100000&lt;/MOrigin&gt;&lt;MScale&gt;10000&lt;/MScale&gt;&lt;XYTolerance&gt;0.0032808333333333331&lt;/XYTolerance&gt;&lt;ZTolerance&gt;0.001&lt;/ZTolerance&gt;&lt;MTolerance&gt;0.001&lt;/MTolerance&gt;&lt;HighPrecision&gt;true&lt;/HighPrecision&gt;&lt;WKID&gt;102749&lt;/WKID&gt;&lt;LatestWKID&gt;2286&lt;/LatestWKID&gt;&lt;VCSWKID&gt;105703&lt;/VCSWKID&gt;&lt;LatestVCSWKID&gt;6360&lt;/LatestVCSWKID&gt;&lt;/ProjectedCoordinateSystem&gt;</peXml>
</coordRef>
<LayerFile>{"type":"CIMLayerDocument","version":"2.7.0","build":26828,"layers":["CIMPATH=intersections_of_pullman_or_subdivisions_of_pullman/roadcenterlines_buffer25.xml"],"layerDefinitions":[{"type":"CIMFeatureLayer","name":"RoadCenterlines_Buffer25","uRI":"CIMPATH=intersections_of_pullman_or_subdivisions_of_pullman/roadcenterlines_buffer25.xml","sourceModifiedTime":{"type":"TimeInstant"},"useSourceMetadata":true,"description":"RoadCenterlines_Buffer25","layerElevation":{"type":"CIMLayerElevationSurface","mapElevationID":"{F53C4572-F5F4-4EA4-A5E9-85560DCB84B1}"},"expanded":true,"layerType":"Operational","showLegends":true,"visibility":true,"displayCacheType":"Permanent","maxDisplayCacheAge":5,"showPopups":true,"serviceLayerID":-1,"refreshRate":-1,"refreshRateUnit":"esriTimeUnitsSeconds","blendingMode":"Alpha","autoGenerateFeatureTemplates":true,"featureElevationExpression":"0","featureTable":{"type":"CIMFeatureTable","displayField":"fullname","editable":true,"dataConnection":{"type":"CIMStandardDataConnection","workspaceConnectionString":"DATABASE=H:\\Cartography\\Cartography.gdb","workspaceFactory":"FileGDB","dataset":"RoadCenterlines_Buffer25","datasetType":"esriDTFeatureClass"},"studyAreaSpatialRel":"esriSpatialRelUndefined","searchOrder":"esriSearchOrderSpatial"},"htmlPopupEnabled":true,"selectable":true,"featureCacheType":"Session","displayFiltersType":"ByScale","featureBlendingMode":"Alpha","labelClasses":[{"type":"CIMLabelClass","expression":"$feature.OBJECTID","expressionEngine":"Arcade","featuresToLabel":"AllVisibleFeatures","maplexLabelPlacementProperties":{"type":"CIMMaplexLabelPlacementProperties","featureType":"Polygon","avoidPolygonHoles":true,"canOverrunFeature":true,"canPlaceLabelOutsidePolygon":true,"canRemoveOverlappingLabel":true,"canStackLabel":true,"connectionType":"Unambiguous","constrainOffset":"NoConstraint","contourAlignmentType":"Page","contourLadderType":"Straight","contourMaximumAngle":90,"enableConnection":true,"featureWeight":0,"fontHeightReductionLimit":4,"fontHeightReductionStep":0.5,"fontWidthReductionLimit":90,"fontWidthReductionStep":5,"graticuleAlignmentType":"Straight","keyNumberGroupName":"Default","labelBuffer":15,"labelLargestPolygon":false,"labelPriority":-1,"labelStackingProperties":{"type":"CIMMaplexLabelStackingProperties","stackAlignment":"ChooseBest","maximumNumberOfLines":3,"minimumNumberOfCharsPerLine":3,"maximumNumberOfCharsPerLine":24,"separators":[{"type":"CIMMaplexStackingSeparator","separator":" ","splitAfter":true},{"type":"CIMMaplexStackingSeparator","separator":",","visible":true,"splitAfter":true}]},"lineFeatureType":"General","linePlacementMethod":"OffsetCurvedFromLine","maximumLabelOverrun":80,"maximumLabelOverrunUnit":"Point","minimumFeatureSizeUnit":"Map","multiPartOption":"OneLabelPerPart","offsetAlongLineProperties":{"type":"CIMMaplexOffsetAlongLineProperties","placementMethod":"BestPositionAlongLine","labelAnchorPoint":"CenterOfLabel","distanceUnit":"Percentage","useLineDirection":true},"pointExternalZonePriorities":{"type":"CIMMaplexExternalZonePriorities","aboveLeft":4,"aboveCenter":2,"aboveRight":1,"centerRight":3,"belowRight":5,"belowCenter":7,"belowLeft":8,"centerLeft":6},"pointPlacementMethod":"AroundPoint","polygonAnchorPointType":"GeometricCenter","polygonBoundaryWeight":0,"polygonExternalZones":{"type":"CIMMaplexExternalZonePriorities","aboveLeft":4,"aboveCenter":2,"aboveRight":1,"centerRight":3,"belowRight":5,"belowCenter":7,"belowLeft":8,"centerLeft":6},"polygonFeatureType":"General","polygonInternalZones":{"type":"CIMMaplexInternalZonePriorities","center":1},"polygonPlacementMethod":"HorizontalInPolygon","primaryOffset":1,"primaryOffsetUnit":"Point","removeExtraWhiteSpace":true,"repetitionIntervalUnit":"Map","rotationProperties":{"type":"CIMMaplexRotationProperties","rotationType":"Arithmetic","alignmentType":"Straight"},"secondaryOffset":100,"strategyPriorities":{"type":"CIMMaplexStrategyPriorities","stacking":1,"overrun":2,"fontCompression":3,"fontReduction":4,"abbreviation":5},"thinningDistanceUnit":"Point","truncationMarkerCharacter":".","truncationMinimumLength":1,"truncationPreferredCharacters":"aeiou","polygonAnchorPointPerimeterInsetUnit":"Point"},"name":"Class 1","priority":-1,"standardLabelPlacementProperties":{"type":"CIMStandardLabelPlacementProperties","featureType":"Line","featureWeight":"Low","labelWeight":"High","numLabelsOption":"OneLabelPerName","lineLabelPosition":{"type":"CIMStandardLineLabelPosition","above":true,"inLine":true,"parallel":true},"lineLabelPriorities":{"type":"CIMStandardLineLabelPriorities","aboveStart":3,"aboveAlong":3,"aboveEnd":3,"centerStart":3,"centerAlong":3,"centerEnd":3,"belowStart":3,"belowAlong":3,"belowEnd":3},"pointPlacementMethod":"AroundPoint","pointPlacementPriorities":{"type":"CIMStandardPointPlacementPriorities","aboveLeft":2,"aboveCenter":2,"aboveRight":1,"centerLeft":3,"centerRight":2,"belowLeft":3,"belowCenter":3,"belowRight":2},"rotationType":"Arithmetic","polygonPlacementMethod":"AlwaysHorizontal"},"textSymbol":{"type":"CIMSymbolReference","symbol":{"type":"CIMTextSymbol","blockProgression":"TTB","depth3D":1,"extrapolateBaselines":true,"fontEffects":"Normal","fontEncoding":"Unicode","fontFamilyName":"Tahoma","fontStyleName":"Regular","fontType":"Unspecified","haloSize":1,"height":10,"hinting":"Default","horizontalAlignment":"Left","kerning":true,"letterWidth":100,"ligatures":true,"lineGapType":"ExtraLeading","symbol":{"type":"CIMPolygonSymbol","symbolLayers":[{"type":"CIMSolidFill","enable":true,"color":{"type":"CIMRGBColor","values":[0,0,0,100]}}]},"textCase":"Normal","textDirection":"LTR","verticalAlignment":"Bottom","verticalGlyphOrientation":"Right","wordSpacing":100,"billboardMode3D":"FaceNearPlane"}},"useCodedValue":true,"visibility":true,"iD":-1}],"renderer":{"type":"CIMSimpleRenderer","patch":"Default","symbol":{"type":"CIMSymbolReference","symbol":{"type":"CIMPolygonSymbol","symbolLayers":[{"type":"CIMSolidStroke","enable":true,"colorLocked":true,"capStyle":"Butt","joinStyle":"Round","lineStyle3D":"Strip","miterLimit":10,"width":1,"color":{"type":"CIMRGBColor","values":[110,110,110,100]}},{"type":"CIMSolidFill","enable":true,"color":{"type":"CIMRGBColor","values":[0,100,255,36.8627433776855469]}}]}}},"scaleSymbols":true,"snappable":true}]}</LayerFile>
</DataProperties>
<CreaDate>20191127</CreaDate>
<CreaTime>12150600</CreaTime>
<SyncDate>20211208</SyncDate>
<SyncTime>08492900</SyncTime>
<ModDate>20211208</ModDate>
<ModTime>08492900</ModTime>
</Esri>
<idinfo>
<descript>
<abstract>Road segments that represent the centerlines of all roadways or carriageways and used for address geocoding, as well as a source for public works and other agencies responsible for the active management of the road network.</abstract>
<purpose>Road Centerlines</purpose>
</descript>
<keywords>
<theme>
<themekt>X-Ray</themekt>
<themekey>Transportation</themekey>
</theme>
</keywords>
<accconst/>
<useconst/>
<status>
<progress/>
<update/>
</status>
<spdom>
<bounding>
<westbc>NaN</westbc>
<eastbc>NaN</eastbc>
<northbc>NaN</northbc>
<southbc>NaN</southbc>
</bounding>
</spdom>
</idinfo>
<eainfo>
<detailed Name="RoadCenterlines_Buffer25">
<attr>
<attrlabl Sync="TRUE">OBJECTID</attrlabl>
<attalias Sync="TRUE">OBJECTID</attalias>
<attrtype Sync="TRUE">OID</attrtype>
<attwidth Sync="TRUE">4</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Internal feature number.</attrdef>
<attrdefs Sync="TRUE">Esri</attrdefs>
<attrdomv>
<udom Sync="TRUE">Sequential unique whole numbers that are automatically generated.</udom>
</attrdomv>
</attr>
<attr>
<attrlabl Sync="TRUE">SHAPE</attrlabl>
<attalias Sync="TRUE">SHAPE</attalias>
<attrtype Sync="TRUE">Geometry</attrtype>
<attwidth Sync="TRUE">0</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Feature geometry.</attrdef>
<attrdefs Sync="TRUE">Esri</attrdefs>
<attrdomv>
<udom Sync="TRUE">Coordinates defining the features.</udom>
</attrdomv>
</attr>
<attr>
<attrlabl Sync="TRUE">afedrte</attrlabl>
<attalias Sync="TRUE">Alternate Federal Route</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">10</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The alternate federal route name</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">afedrtetype</attrlabl>
<attalias Sync="TRUE">Alternate Federal Route Type</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">20</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">A functional classification of federal route that can be used to further classify the route if different than the ROADCLASS</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">astrte</attrlabl>
<attalias Sync="TRUE">Alternate State Route</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">10</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The alternate state route name</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">astrtetype</attrlabl>
<attalias Sync="TRUE">Alternate State Route Type</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">20</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">A functional classification of route that can be used to symbolize the route if detail beyond what is provided in ROADCLASS is needed</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">centerlineid</attrlabl>
<attalias Sync="TRUE">Centerline ID</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">20</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">A unique id for the road centerline segment</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">countryleft</attrlabl>
<attalias Sync="TRUE">Country on Left</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">2</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Country abbreviation on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">countryright</attrlabl>
<attalias Sync="TRUE">Country on Right</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">2</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Country abbreviation on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">countyleft</attrlabl>
<attalias Sync="TRUE">County on Left</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">40</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">County name on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">countyright</attrlabl>
<attalias Sync="TRUE">County on Right</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">40</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">County name on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">ctyroute</attrlabl>
<attalias Sync="TRUE">County Route</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">10</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The county route name</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">discrpagid</attrlabl>
<attalias Sync="TRUE">Discrepancy Agency ID</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">75</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The agency, as defined by NENA Master Glossary, that receives the discrepancy report, should one be discovered</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">esnleft</attrlabl>
<attalias Sync="TRUE">ESN on Left</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">5</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The ESN on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">esnright</attrlabl>
<attalias Sync="TRUE">ESN on Right</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">5</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The ESN on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">fedroute</attrlabl>
<attalias Sync="TRUE">Federal Route</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">10</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The federal route name</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">fedrtetype</attrlabl>
<attalias Sync="TRUE">Federal Route Type</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">20</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">A functional classification of route that can be used to symbolize the route if detail beyond what is provided in ROADCLASS is needed</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">fromleft</attrlabl>
<attalias Sync="TRUE">Left From Address</attalias>
<attrtype Sync="TRUE">Integer</attrtype>
<attwidth Sync="TRUE">4</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Lowest address range on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">fromright</attrlabl>
<attalias Sync="TRUE">Right From Address</attalias>
<attrtype Sync="TRUE">Integer</attrtype>
<attwidth Sync="TRUE">4</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Lowest address range on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">fullname</attrlabl>
<attalias Sync="TRUE">Full Road Name</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">300</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The full name of the road including any prefix and/or suffix in mixed case format for Esri Community Map contributors</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">inwater</attrlabl>
<attalias Sync="TRUE">In Water</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">5</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">A flag that indicates whether the segment of the road is crossing water</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">msagleft</attrlabl>
<attalias Sync="TRUE">MSAG on Left</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">35</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The MSAG community on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">msagright</attrlabl>
<attalias Sync="TRUE">MSAG on Right</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">35</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The MSAG community on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">munileft</attrlabl>
<attalias Sync="TRUE">Municipality on Left</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">100</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Municipal name on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">muniright</attrlabl>
<attalias Sync="TRUE">Municipality on Right</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">100</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Municipal name on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">onewaydir</attrlabl>
<attalias Sync="TRUE">One Way Indicator</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">10</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">A code that indicates whether the traffic flows with, or against, the direction of the vertices</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">parityleft</attrlabl>
<attalias Sync="TRUE">Parity Left</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">1</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The even or odd property of the address number range on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">parityright</attrlabl>
<attalias Sync="TRUE">Parity Right</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">1</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The even or odd property of the address number range on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">rangeprefixleft</attrlabl>
<attalias Sync="TRUE">Left Address Number Prefix</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">15</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">An extension of the address range number on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">rangeprefixright</attrlabl>
<attalias Sync="TRUE">Right Address Number Prefix</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">15</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">An extension of the address range number on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">rclnguid</attrlabl>
<attalias Sync="TRUE">NENA Global ID</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">254</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The NENA Globally Unique ID</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">roadclass</attrlabl>
<attalias Sync="TRUE">Road Class</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">20</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Functional classification of roads based on type of service</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">roadlevel</attrlabl>
<attalias Sync="TRUE">Above or Below Grade</attalias>
<attrtype Sync="TRUE">Integer</attrtype>
<attwidth Sync="TRUE">4</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">A code that indicates whether the traveled roadway is above or below grade</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">stateleft</attrlabl>
<attalias Sync="TRUE">State on Left</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">2</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">State abbreviation on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">stateright</attrlabl>
<attalias Sync="TRUE">State on Right</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">2</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">State abbreviation on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">stroute</attrlabl>
<attalias Sync="TRUE">State Route</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">10</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">The state route name</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">strtetype</attrlabl>
<attalias Sync="TRUE">State Route Type</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">20</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">A functional classification of route that can be used to symbolize the route if detail beyond what is provided in ROADCLASS is needed</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">toleft</attrlabl>
<attalias Sync="TRUE">Left To Address</attalias>
<attrtype Sync="TRUE">Integer</attrtype>
<attwidth Sync="TRUE">4</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Highest address range on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">toright</attrlabl>
<attalias Sync="TRUE">Right To Address</attalias>
<attrtype Sync="TRUE">Integer</attrtype>
<attwidth Sync="TRUE">4</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Highest address range on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">zipleft</attrlabl>
<attalias Sync="TRUE">Zip on Left</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">5</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Zip code on left side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">zipright</attrlabl>
<attalias Sync="TRUE">Zip on Right</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">5</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Zip code on right side of the road</attrdef>
</attr>
<attr>
<attrlabl Sync="TRUE">created_user</attrlabl>
<attalias Sync="TRUE">created_user</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">255</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">created_date</attrlabl>
<attalias Sync="TRUE">created_date</attalias>
<attrtype Sync="TRUE">Date</attrtype>
<attwidth Sync="TRUE">8</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">last_edited_user</attrlabl>
<attalias Sync="TRUE">last_edited_user</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">255</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">last_edited_date</attrlabl>
<attalias Sync="TRUE">last_edited_date</attalias>
<attrtype Sync="TRUE">Date</attrtype>
<attwidth Sync="TRUE">8</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">stantecunique</attrlabl>
<attalias Sync="TRUE">Stantec Unique ID</attalias>
<attrtype Sync="TRUE">Integer</attrtype>
<attwidth Sync="TRUE">4</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">fromstreet</attrlabl>
<attalias Sync="TRUE">From Street Intersection</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">255</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">tostreet</attrlabl>
<attalias Sync="TRUE">To Street Intersection</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">255</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<enttyp>
<enttypl Sync="TRUE">RoadCenterlines_Buffer25</enttypl>
<enttypt Sync="TRUE">Feature Class</enttypt>
<enttypc Sync="TRUE">0</enttypc>
</enttyp>
<attr>
<attrlabl Sync="TRUE">roadname</attrlabl>
<attalias Sync="TRUE">Road Name</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">255</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">speedlimit</attrlabl>
<attalias Sync="TRUE">Speed Limit</attalias>
<attrtype Sync="TRUE">SmallInteger</attrtype>
<attwidth Sync="TRUE">2</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">ownedby</attrlabl>
<attalias Sync="TRUE">Owned By</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">255</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">RoadMatrixID</attrlabl>
<attalias Sync="TRUE">RoadMatrix ID</attalias>
<attrtype Sync="TRUE">String</attrtype>
<attwidth Sync="TRUE">255</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">BUFF_DIST</attrlabl>
<attalias Sync="TRUE">BUFF_DIST</attalias>
<attrtype Sync="TRUE">Double</attrtype>
<attwidth Sync="TRUE">8</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">ORIG_FID</attrlabl>
<attalias Sync="TRUE">ORIG_FID</attalias>
<attrtype Sync="TRUE">Integer</attrtype>
<attwidth Sync="TRUE">4</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
</attr>
<attr>
<attrlabl Sync="TRUE">SHAPE_Length</attrlabl>
<attalias Sync="TRUE">SHAPE_Length</attalias>
<attrtype Sync="TRUE">Double</attrtype>
<attwidth Sync="TRUE">8</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Length of feature in internal units.</attrdef>
<attrdefs Sync="TRUE">Esri</attrdefs>
<attrdomv>
<udom Sync="TRUE">Positive real numbers that are automatically generated.</udom>
</attrdomv>
</attr>
<attr>
<attrlabl Sync="TRUE">SHAPE_Area</attrlabl>
<attalias Sync="TRUE">SHAPE_Area</attalias>
<attrtype Sync="TRUE">Double</attrtype>
<attwidth Sync="TRUE">8</attwidth>
<atprecis Sync="TRUE">0</atprecis>
<attscale Sync="TRUE">0</attscale>
<attrdef Sync="TRUE">Area of feature in internal units squared.</attrdef>
<attrdefs Sync="TRUE">Esri</attrdefs>
<attrdomv>
<udom Sync="TRUE">Positive real numbers that are automatically generated.</udom>
</attrdomv>
</attr>
</detailed>
</eainfo>
<dataIdInfo>
<envirDesc Sync="TRUE">Microsoft Windows 10 Version 10.0 (Build 19041) ; Esri ArcGIS 12.7.0.26828</envirDesc>
<dataLang>
<languageCode Sync="TRUE" value="eng"/>
<countryCode Sync="TRUE" value="USA"/>
</dataLang>
<idCitation>
<resTitle Sync="TRUE">Roads 25 Buffer</resTitle>
<presForm>
<PresFormCd Sync="TRUE" value="005"/>
</presForm>
</idCitation>
<spatRpType>
<SpatRepTypCd Sync="TRUE" value="001"/>
</spatRpType>
<idAbs/>
<searchKeys>
<keyword>Intersections</keyword>
<keyword>Streets</keyword>
<keyword>Buffer</keyword>
</searchKeys>
<idPurp>For intersections map/app</idPurp>
<idCredit/>
<resConst>
<Consts>
<useLimit/>
</Consts>
</resConst>
</dataIdInfo>
<mdLang>
<languageCode Sync="TRUE" value="eng"/>
<countryCode Sync="TRUE" value="USA"/>
</mdLang>
<distInfo>
<distFormat>
<formatName Sync="TRUE">File Geodatabase Feature Class</formatName>
</distFormat>
</distInfo>
<mdHrLv>
<ScopeCd Sync="TRUE" value="005"/>
</mdHrLv>
<mdHrLvName Sync="TRUE">dataset</mdHrLvName>
<refSysInfo>
<RefSystem>
<refSysID>
<identCode Sync="TRUE" code="2286"/>
<idCodeSpace Sync="TRUE">EPSG</idCodeSpace>
<idVersion Sync="TRUE">5.3(9.0.0)</idVersion>
</refSysID>
</RefSystem>
</refSysInfo>
<spatRepInfo>
<VectSpatRep>
<geometObjs Name="RoadCenterlines_Buffer25">
<geoObjTyp>
<GeoObjTypCd Sync="TRUE" value="002"/>
</geoObjTyp>
<geoObjCnt Sync="TRUE">0</geoObjCnt>
</geometObjs>
<topLvl>
<TopoLevCd Sync="TRUE" value="001"/>
</topLvl>
</VectSpatRep>
</spatRepInfo>
<spdoinfo>
<ptvctinf>
<esriterm Name="RoadCenterlines_Buffer25">
<efeatyp Sync="TRUE">Simple</efeatyp>
<efeageom Sync="TRUE" code="4"/>
<esritopo Sync="TRUE">FALSE</esritopo>
<efeacnt Sync="TRUE">0</efeacnt>
<spindex Sync="TRUE">TRUE</spindex>
<linrefer Sync="TRUE">FALSE</linrefer>
</esriterm>
</ptvctinf>
</spdoinfo>
<mdDateSt Sync="TRUE">20211208</mdDateSt>
<Binary>
<Thumbnail>
<Data EsriPropertyType="PictureX">/9j/4AAQSkZJRgABAQEAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADIASwDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iii
gAooooAKKKKACiiigAooooAKKKKACis7UNd03TA4ubpBKu0CFTukYt90BRySccVz+p614iS0+1vZ
rpemt/rJ9vn3ECdnZMgD3+9j0qXNI6KWGqVLdL9/07/I7GkJA6kV5G/l63D9juNU1O91GBiZXswb
lXUjIaPBVEHqCM54rXk0HWo7L+19O1i8kFvZO0Ec0JMgkz8yhJAxUEKO5PpwazVVvZHZLLowspVL
PzTt5a+Z2kniHRIs+ZrFguODm5Qf1qGDxTodyZhDqULiFQzsM7QCcA56HkgVwC6Pe28qXttqJNnq
F5awxzR28ILoy4JHy/KVPGMD3rqP+Ed0W7017+Rb3XXXdGDLOQW2tgqBlVADA9u1JVJvZDqYTDU0
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</Data>
</Thumbnail>
</Binary>
</metadata>
