Release notes March 2025

Learn about recent changes to the ArcGIS Urban API. The release date is March 26th, 2025.

What's new

This section provides a summary of the most important changes in this release.

  • The new Analysis type was added which contains the definitions and configuration of analyses.
  • The new MediaLayers field was added to project scenario (branch) attributes which supports adding images in plans.
  • Support for 3D models was added to Projects.

Examples

The following section provides a few examples of how to use the new Urban API features added in the March 2025 release.

Querying Analysis Objects

This example shows how to query the analysis object. As each type of analysis (such as shadow cast, line of sight, viewsheds, and elevation profile analysis) has its own type which is combined into a single union type, queries fetching analyses need to specify which analyses to return using the ... on GraphQL syntax. See Introducing unions to learn more about union types in GraphQL.

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
query ProjectAnalyses($urbanDesignDatabaseId: PortalItemId!, $projectID: GlobalID!) {
  urbanDesignDatabase(urbanDesignDatabaseId: $urbanDesignDatabaseId) {
    projects(filter: { globalIDs: [$projectID] }) {
      analyses {
        attributes {
          GlobalID
          Parameters {
            __typename
            ... on ElevationProfile {
              ...ElevationProfileFragment
            }
            ... on LineOfSight {
              ...LineOfSightFragment
            }
            ... on Shadowcast {
              ...ShadowCastFragment
            }
            ... on Viewshed {
              ...ViewShedFragment
            }
          }
        }
      }
    }
  }
}

The fragments in the above query are specific to an analysis:

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
fragment ElevationProfileFrag on ElevationProfile {
  elevationProfiles {
    paths {
      path
    }
  }
}

fragment LineOfSightFrag on LineOfSight {
  lineOfSights {
    name
    targets {
      x
      y
      z
    }
    observer {
      x
      y
      z
      spatialReference {
        wkid
      }
    }
  }
}

fragment ShadowCastFrag on Shadowcast {
  shadowcasts {
    color
    discreteInterval
    durationMode
    thresholdValue
    time {
      date
      endTimeOfDay
      startTimeOfDay
      utcOffset
    }
    visualizationType
  }
}

fragment ViewShedFrag on Viewshed {
  viewsheds {
    farDistance
    heading
    horizontalFieldOfView
    tilt
    verticalFieldOfView
    name
    observer {
      x
      y
      z
      spatialReference {
        wkid
      }
    }
  }
}

Mutating Analysis Objects

Each analysis has its own create and update nodes. As an example, use the following query to create a viewshed analysis:

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
mutation CreateViewshed($urbanDesignDatabaseId: PortalItemId! $projectID: GlobalID!) {
  createViewshedAnalyses(urbanDatabaseId: $urbanDesignDatabaseId, ViewshedAnalyses: [
    {
      attributes: {
        AnalysisName: "viewsheds1"
        UrbanEventID: $projectID

      }
      viewsheds: [
        {
          name: "River view",
          farDistance: 327.4022483408076,
          heading: 321.3214503109652,
          tilt: 84.61732654868268,
          horizontalFieldOfView: 102.21554546208675,
          verticalFieldOfView: 45
          observer:{
            x: 42.36365308786046,
            y: -71.13619203021057,
            z:  32.71101608220488,
            spatialReference: {
              wkid: 3857
            }
          }
        }
      ]
    }
  ]) {}
    attributes {
      GlobalID
    }
  }
}

Note how the parameters, in this case for a viewshed analysis, are not part of the attributes but their own field in the input object.

Deletions are shared between different analyses. You can use the following query to delete multiple analyses:

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
mutation DeleteAnalyses($urbanDesignDatabaseId: PortalItemId! $analysisIDs: [GlobalID!]! {
  deleteAnalyses(urbanDatabaseId: $urbanDesignDatabaseId, globalIDs: $analysisIDs) {
    attributes {
      GlobalID
    }
  }
}

Schema changes

This section describes new features and changes made to the Urban API schema.

The following fields, input fields and types related to MediaLayers were added to project scenarios (branches):

The following fields and input fields related to the 3D objects were added to projects:

The new Analysis type was added which contains the definitions and configuration of analyses tasks. The following fields, types, queries, and mutations were added:

The following types were also added or improved:

Bug fixes and improvements

  • CORS handling was improved, removing the need for special handling of these security features on ArcGIS Enterprise.
  • Passing cascade: true to deletion mutations now works correctly in all cases; prior to this, there were some cases where a spurious error was returned instead of performing the cascading deletion.
  • The value of the cursor.limit input field is correctly applied to all branches of the query. Prior to this, the limit was ignored in certain cases and the default page size was used instead.
  • The value of the cursor.limit input field may now be set using a GraphQL variable. Prior to this, using a variable instead of a literal value would result in no value being set for cursor.limit, causing the default page size to be used instead.

Deprecations

The following fields related to the public feedback are deprecated:

  • Field PlanAttributes.PublicFeedbackEnabled is deprecated (Removal date: 2026-03-25).
  • Field ProjectAttributes.PublicFeedbackEnabled is deprecated (Removal date: 2026-03-25).
  • Field PlanAttributes.PublicFeedbackEndDate is deprecated (Removal date: 2026-03-25).
  • Field ProjectAttributes.PublicFeedbackEndDate is deprecated (Removal date: 2026-03-25).

Public feedback is no longer supported in Urban due to the migration from Hub Annotations to Hub Discussions.

Breaking changes

The following previously deprecated fields have been removed.

  • Fields plans and plansMeta were removed from object type UrbanDatabase. Plans are now expected to always be accessed through UrbanDesignDatabase objects.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.