Entity LODs (representations)


An Entity LOD (level of detail) is a Client File that represents an Entity.


LODs have categories which describe what the LOD is for. Our most common category is GLB which is used for GLB and GLTF representations that are supported in CesiumJS (our default renderer).

LODs have numeric levels within their LOD Category, where 0 is the highest quality.

You can choose to represent your Entity in any format you choose, for example you can have an SVG representation of an Entity that you display in your app.


Entity Types can also have LODs assigned to them to act as defaults when an Entity one is unavailable. This is commonly used for large sets of repeated graphics. See more here


You can read about how to create file download links for LODs here: Client and temp files.

LOD Category requests

Below are the basic requests for managing LOD Category records.

Get LOD Categories

Response
interface IResponse {
    Items: {
        // Description of the category.
        Description?: string;
        // Unique identifier for the category.
        // This is case-insensitive.
        Key: string;
        // Name of the category.
        Name: string;
    }[];
}
Javascript example

Get LOD Category by Key

Response
interface IResponse {
    // Description of the category.
    Description?: string;
    // Unique identifier for the category.
    // This is case-insensitive.
    Key: string;
    // Name of the category.
    Name: string;
}
Javascript example

Create/Update LOD Category

Response
interface IRequest {
    // Description of the category.
    Description?: string;
    // Unique identifier for the category.
    // This is case-insensitive.
    Key: string;
    // Name of the category.
    Name: string;
}

Delete LOD Category

Javascript example

Get Entity LODs

This request will not overlay an Entity Type's LODs. It only returns LODs directly associated with the Entity itself.

Get Entity LODs

Response
interface IResponse {
    Items: {
        // ID of the related Client File record.
        "ClientFile.ID": string;
        // ID of the related Entity record.
        "Entity.ID": string;
        // Key of the LOD Category.
        "LODCategory.Key": string;
        // Level of detail. 0 is the highest.
        Level: number;
    }[];
}
Javascript example

Get Entity LODs (with defaults)

This an optimized rendering request that will return the "best" LOD per Entity. It will return an Entity Type LOD if no Entity LOD is available.

Get Entity LODs (with defaults)

Request body
interface IRequest {
    // Whether to use strict mode.
    // When false, a lower quality LOD (higher level) is returned if the requested level is not available.
    "strict": boolean;
    "Items": {
        // ID of the related Entity record.
        "entityId": string,
        // ID of the related LOD Category record.
        "categoryId": string,
        // LOD group within its Entity Type.
        "group"?: string,
        // Level of detail. 0 is the highest.
        "level"?: number
    }[];
}
Response
interface IResponse {
    Items: {
        // ID of the LOD's Client File.
        clientFileId: string;
        // ID of the related Entity record.
        entityId: string;
    }[];
}
Javascript example

Delete Entity LODs

Unlike typical 'unlinking' deletions, this request will delete the related Client File records.
This is subject to change as LOD Client Files have a background cleaner that will delete them if they are not in use already.

Delete Entity LODs

Request body
interface IRequest {
    Items: {
        // ID of the related LOD Category record.
        "LODCategory.Key": string;
        // Level of detail. 0 is the highest.
        "Level": number;
    }[];
}
Javascript example

Create Entity LOD

You can request to attach a Client File record to an Entity as a LOD.
It is recommended to read the Client and temp files documentation first.

Create Entity LOD

Request body
interface IRequest {
    "ClientFile.ID": string;
}