Table of contents
Reporting
Download API definition:
This operation is a Technical Preview and is available for testing purposes only. Do not use in production.
GET https://api.bentley.com/insights/reporting/datasources/aggregations/{aggregationTableSetId}/tables/{aggregationTableId}/properties/{aggregationPropertyId}

Retrieves an aggregation property.

Aggregation property defines how the aggregation should be done. There are 3 supported types: GroupBy, Count, and Sum.

GroupBy aggregation property type splits the data source table into groups that have matching values in the column specified in sourcePropertyName. If you will not create a GroupBy property our aggregator will assume that the whole data source table is one group. If you will create multiple GroupBy properties targeting different data source properties each group will have a unique combination of those properties. See example configuration and output table T3 below.

Count aggregation property type counts how many rows there are in a group. If the value of property specified in sourcePropertyName contains a null value in data source table, the row is still counted.

Sum aggregation property type sums all values of a single property in a single group.

Examples

Let's say you have this data source table:

A
B
C
D
a1
b1
1
null
a1
b2
2
1
a2
b2
4
2
a2
b2
8
4

   

Then you have these aggregation table configurations:

  • Aggregation properties for table T1:
propertyName
sourcePropertyName
type
CountC
C
Count
CountD
D
Count
SumC
C
Sum
SumD
D
Sum

   

  • Aggregation properties for table T2:
propertyName
sourcePropertyName
type
GroupA
A
GroupBy
SumC
C
Sum
CountC
C
Count

   

  • Aggregation properties for table T3:
propertyName
sourcePropertyName
type
GroupA
A
GroupBy
GroupB
B
GroupBy
SumC
C
Sum
CountC
C
Count

   

Then your aggregated table outputs will look like this:

  • Table T1:
CountC
CountD
SumC
SumD
4
4
15
7

   

  • Table T2:
GroupA
SumC
CountC
a1
3
2
a2
12
2

   

  • Table T3:
GroupA
GroupB
SumC
CountC
a1
b1
1
1
a1
b2
2
1
a2
b2
12
2

   

In the T3 example you can see that groups were created for each unique pair of values in columns A and B.

Authentication

Requires Authorization header with valid Bearer token for scope itwin-platform.

For more documentation on authorization and how to get access token visit OAUTH2 Authorization page.

Authorization

User must have imodels_read permission(s) assigned at the Project level. iModel specific permissions may also be applied at the iModel level if iModel level permissions are enabled.

Alternatively the user should be an Organization Administrator for the Organization that owns a given Project or iModel.

An Organization Administrator must have at least one of the following roles assigned in User Management: Account Administrator, Co-Administrator, or CONNECT Services Administrator. For more information about User Management please visit our Bentley Communities Licensing, Cloud, and Web Services wiki page.

Rate limits

All iTwin Platform API operations have a rate limit. For more documentation on that visit Rate limits and quotas page.

Request parameters

Name
In
Required?
Description
aggregationTableSetId
template
Yes

Id of the aggregation table set.

aggregationTableId
template
Yes

Id of the aggregation table.

aggregationPropertyId
template
Yes

Id of the aggregation property.

Request headers

Name
Required?
Description
Authorization
Yes

OAuth access token with itwin-platform scope

Accept
No

Setting to application/vnd.bentley.itwin-platform.v1+json is recommended.

Response 200 OK

Retrieved AggregationProperty successfully.

json
{
    "aggregationProperty": {
        "id": "509c53bd-3cdc-4a18-97aa-8c686a0a1c6f",
        "propertyName": "RowCount",
        "sourcePropertyName": "ECClassId",
        "type": "Count",
        "_links": {
            "datasource": {
                "href": "https://api.bentley.com/insights/reporting/datasources/imodels/70a3d6d3-5385-4bc3-87c4-b6bf106e1c0a/mappings/f1fe5959-35ab-467e-83b8-a679b722d80f"
            },
            "aggregationTableSet": {
                "href": "https://api.bentley.com/insights/reporting/datasources/aggregations/5d92982f-dea0-4290-b25c-184bec2ec7d4"
            },
            "aggregationTable": {
                "href": "https://api.bentley.com/insights/reporting/datasources/aggregations/5d92982f-dea0-4290-b25c-184bec2ec7d4/tables/30a58b49-0290-4c22-8d65-37c11d7c943c"
            }
        }
    }
}

Response 401 Unauthorized

This response indicates that request lacks valid authentication credentials. Access token might not been provided, issued by the wrong issuer, does not have required scopes or request headers were malformed.

json
{
    "error": {
        "code": "HeaderNotFound",
        "message": "Header Authorization was not found in the request. Access denied."
    }
}

Response 404 Not Found

Specified AggregationProperty was not found.

json
{
    "error": {
        "code": "AggregationPropertyNotFound",
        "message": "Requested AggregationProperty is not available.",
        "target": "aggregationPropertyId"
    }
}

Response 429 Too many requests

This response indicates that the user has sent too many requests in a given amount of time.

json
{
    "error": {
        "code": "TooManyRequests",
        "message": "More requests were received than the subscription rate-limit allows."
    }
}

Response headers

Name
Description
retry-after

The number of requests exceeds the rate-limit for the client subscription.

Aggregation Property

Defines an output property of aggregation.

TableSchema
Name
Type
Description
id
String

The aggregation property's id.

propertyName
String

Name of the aggregation property (OData v4 SimpleIdentifier).

sourcePropertyName
String

Name of a property in data source table to run the aggregation against. For example, if type is set to Sum and sourcePropertyName is set to X, the aggregator will sum all values of property X for each group in the data source table. Value of sourcePropertyName must be OData v4 SimpleIdentifier.

type
String

Type of aggregation to run for this property. Possible values: GroupBy, Count, Sum.

_links.datasource

URL pointing to the related data source.

_links.aggregationTableSet

URL pointing to the parent aggregation table set.

_links.aggregationTable

URL point to the parent aggregation table.

Aggregation Property Response

Container for an AggregationProperty object.

TableSchema
Name
Type
Description
aggregationProperty

Properties of AggregationProperty.

Link

Hyperlink container.

TableSchema
Name
Type
Description
href
String

Hyperlink to the specific entity.

Error

Contains error information.

TableSchema
Name
Type
Description
code
String

One of a server-defined set of error codes.

message
String

A human-readable representation of the error.

target
String

The target of the error.

Error Response

Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.

TableSchema
Name
Type
Description
error

Error information.