IFClite TypeScript API
    Preparing search index...

    Interface EmbedOptions

    interface EmbedOptions {
        autoLoad?: boolean;
        bg?: string;
        camera?: { azimuth: number; elevation: number; zoom?: number };
        container: string | HTMLElement;
        controls?: "orbit" | "pan" | "all" | "none";
        hideAxis?: boolean;
        hideScale?: boolean;
        hideTypes?: string[];
        isolate?: number[];
        modelUrl?: string;
        origin?: string;
        select?: number[];
        theme?: "light" | "dark";
        timeout?: number;
        token?: string;
        view?: ViewPreset;
    }
    Index
    autoLoad?: boolean

    Set false to suppress the automatic fetch of modelUrl, leaving the viewer mounted and empty until the host loads something itself. Omitted and true both mean "load", matching the viewer's default — only an explicit false is serialised, because the parser treats every value other than the literal 'false' as true.

    bg?: string

    Custom background color (hex without #)

    camera?: { azimuth: number; elevation: number; zoom?: number }

    Initial absolute camera orientation in degrees; the model is framed at that orientation. zoom is accepted but NOT applied — the viewer has no absolute-zoom actuator and the field carries no unit.

    container: string | HTMLElement

    CSS selector or DOM element to mount the iframe into

    controls?: "orbit" | "pan" | "all" | "none"

    Restrict interactive orbit/pan/zoom. 'orbit'/'pan' allow only that gesture, 'none' freezes the view, 'all' is unrestricted. Programmatic moves (setCamera, view/camera options, SDK calls) are unaffected.

    hideAxis?: boolean

    Hide the axis helper.

    hideScale?: boolean

    Hide the scale bar.

    hideTypes?: string[]

    IFC class names to hide, matched case-insensitively (IFCSPACE === IfcSpace).

    Takes precedence over setTypeVisibility: the two are ANDed, so naming a class here that also has a visibility toggle keeps it hidden even after a later setTypeVisibility({ spaces: true }). There is no call that un-hides a hideTypes entry; re-initialise the embed to change the list.

    Hides meshes AND the symbolic 2D overlay (dimension lines, drawing text, grid bubbles), which is not a mesh and so needed a route of its own (#2934).

    For the overlay, matching is on the class that OWNS the drawn content, which is worth spelling out. Dimensions, leaders and room tags are owned by IfcAnnotation; grid axes and their bubbles by IfcGridAxis — NOT by IfcGrid, which owns no drawn content and therefore hides nothing. Naming a wall or a space removes their meshes and no 2D content: their Axis and FootPrint representations are not drawn in the 3D viewport at all.

    An overlay channel switches off only when every owner class it draws is named, so hiding one class can never take another's content with it.

    isolate?: number[]

    Entity ids to isolate once the first model is on screen. Same id rule as select.

    modelUrl?: string

    URL of the model to load on initialization

    origin?: string

    Origin of the hosted embed viewer (defaults to production)

    select?: number[]

    Entity ids to select once the first model is on screen. The viewer keeps only positive integers, so a non-integer or non-positive id is dropped there rather than reported back here.

    theme?: "light" | "dark"

    Color theme

    timeout?: number

    Handshake timeout in ms (default: 15000)

    token?: string

    Auth token (sent via postMessage, not URL)

    view?: ViewPreset

    Preset camera view. Takes precedence over camera.