Learn about recent changes to the ArcGIS Urban API. The release date is December 4th, 2024.
What's new
This section provides a summary of the most important changes in this release.
- New metrics are now also exposed through the Urban API. See Metrics (new) section in the ArcGIS Urban documentation to learn more about new metrics in Urban.
- The deprecated field
Metricreached its sunset date and was removed (breaking change).Values - The deprecated field
Geodeticreached its sunset date and was removed (breaking change).Shape Area - The deprecated
asyncflag for creating and upgrading urban models and design databases was removed. - Added an
alternativewkidsfield to theSpatialattribute. Now you can query other wkids available for the used spatial reference. See Alternative wkids for an example.Reference - Added a global
limitoverride to the cursor node. Now you can define a limit that will be automatically set on the top-level query, as well as overwritten for the nested fragments of the query. See Global limit for an example.
Examples
The following section provides a few examples of how to use the new Urban API features added in the December 2024 release.
Alternative wkids
This example shows how to query the alternative wkids available for the used spatial reference. Use the following operation to query alernative field for parcels in a plan:
query ReadPlanParcels($urbanDesignDatabaseId: PortalItemId!, $urbanEventId: GlobalID!, $branchId: GlobalID!) {
urbanDesignDatabase(urbanDesignDatabaseId: $urbanDesignDatabaseId) {
plans(filter: { globalIDs: [$urbanEventId] }) {
branches(filter: { globalIDs: [$branchId] }) {
parcels {
geometry {
spatialReference {
wkid
alternativeWkids
}
}
}
}
}
}
}The response should look something like this:
"spatialReference": {
"wkid": 3857,
"alternativeWkids": [102100]
}Global limit
This example shows how to use the global limit set for the cursor to override the limit defined in the nested fragment of the query. Use the following operation to override the paging limit set for the zone:
fragment ZoneTypesFragment on UrbanDatabase {
zoneTypes(paging: { limit: 5 }) {
attributes {
GlobalID
}
}
}
query {
cursor(limit: 10)
urbanModel(urbanModelId: "URBAN_MODEL_ID") {
urbanDatabase {
id
...ZoneTypesFragment
}
}
}Schema changes
This section describes new features and changes made to the Urban API schema.
The following mutations related to the new metrics were added:
- Field
createwas added to object typeExtended Metrics Mutation - Field
updatewas added to object typeExtended Metrics Mutation - Field
deletewas added to object typeExtended Metrics Mutation - Field
importwas added to object typeModel Extended Metrics Mutation - Field
importwas added to object typePlan Extended Metrics Mutation
The following directive, fields, types, input types and enums related to new metrics were added:
- Directive
requireswas added to fieldOpt In PlanandBranch.metrics Dashboards ProjectBranch.metrics Dashboards - Field
extendedwas added to object typeMetrics PlanandUrbanDatabase - Field
extendedwas added to object typeMetrics Dashboards PlanBranch - Field
Extendedwas added to object typeMetric Parameters SpaceUse Type Attributes - Input field
Extendedof typeMetric Parameters [was added to input object typeExtended Metric Parameter Input!] CreateSpace Use Type Attributes Input - Input field
Extendedof typeMetric Parameters [was added to input object typeExtended Metric Parameter Input!] UpdateSpace Use Type Attributes Input
- Input field
- Type
Extendedwas addedMetric - Type
Extendedwas addedMetric Attributes - Type
Extendedwas addedMetric Entry - Type
Extendedwas addedMetric Filter Input - Type
Extendedwas addedMetric Graph Edge - Type
Extendedwas addedMetric Graph Edge Input - Type
Extendedwas addedMetric Parameter - Type
Extendedwas addedMetric Parameter Input - Type
Extendedwas addedMetric Source - Type
Extendedwas addedMetric Source Attributes - Type
Extendedwas addedMetric Unit - Type
Extendedwas addedMetrics Dashboard - Type
Importwas addedExtended Metrics Result - Type
Metricwas addedResolution - Type
Metricwas addedResult Aggregation - Type
Metricwas addedSummary - Type
Metricwas addedType - Type
Metricwas addedUnit Type - Type
Createwas addedExtended Metric Attributes Input - Type
Createwas addedExtended Metric Input - Type
Createwas addedExtended Metric Source Attributes - Type
Createwas addedExtended Metric Source Input - Type
Updatewas addedExtended Metric Attributes Input - Type
Updatewas addedExtended Metric Input - Enum value
Maxwas added to enumMetricResult Aggregation - Enum value
Buildingwas added to enumGross Floor Area MetricType - Enum value
Dwellingwas added to enumUnits MetricType
Metric field was added to Plan and Metric:
- Field
Metricwas added to object typeVersion PlanandAttributes MetricValue Attributes - Type
Metricwas addedVersion - Input field
Metricof typeVersion Metricwas added to input object typeVersion CreatePlan Attributes Input - Input field
Metricof typeVersion Metricwas added to input object typeVersion UpdatePlan Attributes Input - Input field
Metricof typeVersion Metricwas added to input object typeVersion CreateMetric Value Attributes Input - Input field
Metricof typeVersion Metricwas added to input object typeVersion UpdateMetric Value Attributes Input
- Type
- Field
metricwas added to object typeVersion MetricsDashboard Chart - Input field
metricof typeVersion Metricwas added to input object typeVersion MetricsDashboard Chart Input
- Input field
- Input field
metricof typeVersions [was added to input object typeMetric Version!] PlanFilter Input
Other additions and changes were introduced:
- Argument
limitadded to field: Int Query.cursor - Directive
onewas addedOf - Field
alternativewas added to object typeWkids SpatialReference - Type
Inputwas addedType - Input field
Createchanged type fromMetric Attributes Input. Metric Name String!toString - Input field
Createchanged type fromMetric Attributes Input. Operation Operation!toOperation - Input field
Createchanged type fromMetric Attributes Input. Unit Type UnittoType! UnitType - Input field
Createchanged type fromMetric Source Attributes Input. Metric ID GlobaltoI D! GlobalID - Input field
Createchanged type fromMetric Source Attributes Input. Source Type SourcetoType! SourceType - Input field
Createchanged type fromMetric Source Attributes Input. Weight Type WeighttoType! WeightType
Bug fixes and improvements
- Fixed a bug where the
StatusofType Projectwas sometimes not returned correctly in a query
Breaking changes
The following previously deprecated fields have been removed.
Metric has been removed from Branch and Space Attributes:
- Field
Metric(deprecated) was removed from object typeValues BranchAttributes - Type
Branchwas removedMetric Value - Type
Branchwas removedMetric Value Input - Input field
Metricwas removed from input object typeValues UpdateBranch Attributes Input - Input field
Metricwas removed from input object typeValues CreateBranch Attributes Input
- Type
- Field
Metric(deprecated) was removed from object typeValues SpaceAttributes - Type
Spacewas removedMetric Value - Type
Spacewas removedMetric Value Input - Input field
Metricwas removed from input object typeValues UpdateSpace Attributes Input - Input field
Metricwas removed from input object typeValues CreateSpace Attributes Input
- Type
Metric has been removed from Metric:
- Field
metric(deprecated) was removed from object typeMetricValue
Geodetic had been removed from Parcel and Space attributes:
- Field
Geodetic(deprecated) was removed from object typeShape Area ParcelAttributes - Field
Geodetic(deprecated) was removed from object typeShape Area SpaceAttributes - Input field
geodeticwas removed from input object typeShape Area Is Greater Than ParcelFilter Input - Input field
geodeticwas removed from input object typeShape Area Is Less Than ParcelFilter Input - Input field
geodeticwas removed from input object typeShape Areas ParcelFilter Input - Input field
geodeticwas removed from input object typeShape Area Is Greater Than SpaceFilter Input - Input field
geodeticwas removed from input object typeShape Area Is Less Than SpaceFilter Input - Input field
geodeticwas removed from input object typeShape Areas SpaceFilter Input
Other breaking changes were made:
- Field
Metricchanged type fromAttributes. Metric Name String!toString - Field
Metricchanged type fromSource Attributes. Metric ID GlobaltoI D! GlobalID