Creates a CalculatedProperty for a Group. Each CalculatedProperty defines a property or 'column' which is calculated for each element that is returned by the Group's query.
Calculation Types
Calculation types that start with BoundingBox use element aligned bounding boxes. They can be used for approximations of geometric element dimensions when there are no available properties that would have exact dimensions. Some errors may occur due to bounding boxes not being a perfect fit for the surrounded element.
List of all available calculation types:
Length- calculation of a linear element length or a perimeter of a geometric element that does not have a volume. For elements that have a volume use BoundingBox calculations to approximate the length.Area- calculation of a geometric element's surface area.Volume- calculation of a geometric element's volume.BoundingBoxLongestEdgeLength- calculation that gives the longest edge length of an element aligned bounding box.BoundingBoxIntermediateEdgeLength- calculation that gives the edge length that is not the longest nor the shortest of an element aligned bounding box.BoundingBoxShortestEdgeLength- calculation that gives the shortest edge length of an element aligned bounding box.BoundingBoxDiagonalLength- calculation that gives the distance between 2 opposite corners of the element aligned bounding box.BoundingBoxLongestFaceDiagonalLength- calculation that gives the longest distance between 2 opposite corners of a face on the element aligned bounding box.BoundingBoxIntermediateFaceDiagonalLength- calculation that gives the distance between 2 opposite corners of a face on the element aligned bounding box that is not the longest nor the shortest.BoundingBoxShortestFaceDiagonalLength- calculation that gives the shortest distance between 2 opposite corners of a face on the element aligned bounding box.
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_write 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.
"Try it out" Limitations
When you run an Extraction with the "Try it out" function on a Mapping that was created or modified by using the "Try it out" function, you are limited to 100 extracted rows for each group. Mapping modification is any POST/DELETE/PATCH/PUT request to any endpoint with the tag "Mappings" or if the URL contains {mappingId}.
Request parameters
The iModel Id.
The Mapping Id.
Id of the Group for which to create a new CalculatedProperty.
Request headers
OAuth access token with itwin-platform scope
Setting to application/vnd.bentley.itwin-platform.v1+json is recommended.
Request body
CalculatedProperty (create)
The type of the CalculatedProperty. One of 'Area', 'Length', 'Volume', 'BoundingBoxLongestEdgeLength', 'BoundingBoxIntermediateEdgeLength', 'BoundingBoxShortestEdgeLength', 'BoundingBoxDiagonalLength', 'BoundingBoxLongestFaceDiagonalLength', 'BoundingBoxIntermediateFaceDiagonalLength', 'BoundingBoxShortestFaceDiagonalLength'.
Name of the CalculatedProperty.
Example
{ "propertyName": "CalculatedVolume", "type": "Volume" }
Response 200 OK
Created a new CalculatedProperty successfully.
{ "property": { "id": "1ba1f4dd-efc1-4bd1-86f0-a69a4f0d4743", "propertyName": "CustomVolume", "quantityType": "Volume", "type": "Volume", "_links": { "imodel": { "href": "https://api.bentley.com/imodels/70a3d6d3-5385-4bc3-87c4-b6bf106e1c0a" }, "mapping": { "href": "https://api.bentley.com/insights/reporting/datasources/imodels/70a3d6d3-5385-4bc3-87c4-b6bf106e1c0a/mappings/f1fe5959-35ab-467e-83b8-a679b722d80f" }, "group": { "href": "https://api.bentley.com/insights/reporting/datasources/imodels/70a3d6d3-5385-4bc3-87c4-b6bf106e1c0a/mappings/f1fe5959-35ab-467e-83b8-a679b722d80f/groups/1d9ae44a-2204-4bf6-8397-5c590e04ba3e" } } } }
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.
{ "error": { "code": "HeaderNotFound", "message": "Header Authorization was not found in the request. Access denied." } }
Response 404 Not Found
Specified CalculatedProperty was not found.
{ "error": { "code": "CalculatedPropertyNotFound", "message": "Requested CalculatedProperty is not available.", "target": "groupId" } }
Response 409 Conflict
CalculatedProperty with the same name already exists within the Group.
{ "error": { "code": "CalculatedPropertyExists", "message": "CalculatedProperty with this 'propertyName' already exists." } }
Response 422 Unprocessable Entity
The 422 (Unprocessable Entity) status code indicates that the request cannot be processed by the server due to a client error (e.g. malformed request syntax).
{ "error": { "code": "InvalidInsightsRequest", "message": "Error message." } }
Response 429 Too many requests
This response indicates that the client sent more requests than allowed by this API for the current tier of the client.
{ "error": { "code": "RateLimitExceeded", "message": "The client sent more requests than allowed by this API for the current tier of the client." } }
Response headers
Number of seconds to wait until client is allowed to make more requests.
Link
Hyperlink container.
Hyperlink to the specific entity.
{ "type": "object", "title": "Link", "properties": { "href": { "type": "string", "description": "Hyperlink to the specific entity." } }, "description": "Hyperlink container.", "additionalProperties": false }
Error
Contains error information.
One of a server-defined set of error codes.
The target of the error.
A human-readable representation of the error.
{ "type": "object", "required": [ "code", "message" ], "properties": { "code": { "type": "string", "description": "One of a server-defined set of error codes." }, "target": { "type": "string", "nullable": true, "description": "The target of the error." }, "message": { "type": "string", "description": "A human-readable representation of the error." } }, "description": "Contains error information.", "additionalProperties": true }
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.
{ "type": "object", "title": "Error Response", "required": [ "error" ], "properties": { "error": { "$ref": "#/components/schemas/Error", "description": "Error information." } }, "description": "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.", "additionalProperties": false }
CalculatedProperty
Defines a CalculatedProperty or 'column' for a Group. It is calculated for each element returned by the Group's query.
The CalculatedProperty Id.
The type of the CalculatedProperty. One of 'Area', 'Length', 'Volume', 'BoundingBoxLongestEdgeLength', 'BoundingBoxIntermediateEdgeLength', 'BoundingBoxShortestEdgeLength', 'BoundingBoxDiagonalLength', 'BoundingBoxLongestFaceDiagonalLength', 'BoundingBoxIntermediateFaceDiagonalLength', 'BoundingBoxShortestFaceDiagonalLength'.
Name of the Property (OData v4 SimpleIdentifier).
The quantity type of the CalculatedProperty. One of 'Area', 'Distance', 'Force', 'Mass', 'Monetary', 'Time', 'Volume, or 'Undefined'.
{ "type": "object", "title": "CalculatedProperty", "properties": { "id": { "type": "string", "description": "The CalculatedProperty Id." }, "type": { "type": "string", "description": "The type of the CalculatedProperty. One of 'Area', 'Length', 'Volume', 'BoundingBoxLongestEdgeLength', 'BoundingBoxIntermediateEdgeLength', 'BoundingBoxShortestEdgeLength', 'BoundingBoxDiagonalLength', 'BoundingBoxLongestFaceDiagonalLength', 'BoundingBoxIntermediateFaceDiagonalLength', 'BoundingBoxShortestFaceDiagonalLength'." }, "_links": { "type": "object", "properties": { "group": { "$ref": "#/components/schemas/Link" }, "imodel": { "$ref": "#/components/schemas/Link" }, "mapping": { "$ref": "#/components/schemas/Link" } } }, "propertyName": { "type": "string", "description": "Name of the Property (OData v4 SimpleIdentifier)." }, "quantityType": { "type": "string", "description": "The quantity type of the CalculatedProperty. One of 'Area', 'Distance', 'Force', 'Mass', 'Monetary', 'Time', 'Volume, or 'Undefined'." } }, "description": "Defines a CalculatedProperty or 'column' for a Group. It is calculated for each element returned by the Group's query.", "additionalProperties": false }
CalculatedProperty (create)
Properties of the CalculatedProperty to be created.
The type of the CalculatedProperty. One of 'Area', 'Length', 'Volume', 'BoundingBoxLongestEdgeLength', 'BoundingBoxIntermediateEdgeLength', 'BoundingBoxShortestEdgeLength', 'BoundingBoxDiagonalLength', 'BoundingBoxLongestFaceDiagonalLength', 'BoundingBoxIntermediateFaceDiagonalLength', 'BoundingBoxShortestFaceDiagonalLength'.
Name of the CalculatedProperty.
{ "type": "object", "title": "CalculatedProperty (create)", "required": [ "propertyName", "type" ], "properties": { "type": { "type": "string", "description": "The type of the CalculatedProperty. One of 'Area', 'Length', 'Volume', 'BoundingBoxLongestEdgeLength', 'BoundingBoxIntermediateEdgeLength', 'BoundingBoxShortestEdgeLength', 'BoundingBoxDiagonalLength', 'BoundingBoxLongestFaceDiagonalLength', 'BoundingBoxIntermediateFaceDiagonalLength', 'BoundingBoxShortestFaceDiagonalLength'." }, "propertyName": { "type": "string", "description": "Name of the CalculatedProperty." } }, "description": "Properties of the CalculatedProperty to be created.", "additionalProperties": false }
CalculatedProperty Response
Container for a CalculatedProperty object.
{ "type": "object", "title": "CalculatedProperty Response", "properties": { "property": { "$ref": "#/components/schemas/CalculatedProperty" } }, "description": "Container for a CalculatedProperty object.", "additionalProperties": false }
Was this page helpful?