Generic spatial-assembly operations exposed through AsukaDesigner.assembly.

The contract uses serializable transforms, anchors, rules, BOM lines and validation results. Native Babylon objects never cross this boundary.

interface AsukaAssemblyApi {
    autoPlace: ((componentId: string, options?: AsukaAssemblyMutationOptions) => AsukaMutationPromise<AsukaAssemblyPlacementResult>);
    configure: ((patch: Partial<AsukaAssemblyState>, options?: AsukaAssemblyMutationOptions) => AsukaMutationPromise<AsukaAssemblyState>);
    connect: ((connection: Partial<AsukaAssemblyConnection>, options?: AsukaAssemblyMutationOptions) => AsukaMutationPromise<null | AsukaAssemblyConnection>);
    disconnect: ((connectionId: string, options?: AsukaAssemblyMutationOptions) => AsukaMutationPromise<null | AsukaAssemblyConnection>);
    export: ((kind: AsukaAssemblyExportKind, options?: AsukaAssemblyExportOptions) => Promise<Blob>);
    getBom: ((options?: {
        currency?: string;
    }) => AsukaAssemblyBom);
    getComponent: ((id: string) => null | AsukaAssemblyComponent);
    getQuote: ((options?: AsukaAssemblyQuoteOptions) => AsukaAssemblyQuote);
    getState: (() => AsukaAssemblyState);
    listComponents: (() => AsukaAssemblyComponent[]);
    place: ((componentId: string, input?: AsukaAssemblyPlacementInput, options?: AsukaAssemblyMutationOptions) => AsukaMutationPromise<AsukaAssemblyPlacementResult>);
    previewPlacement: ((componentId: string, input?: AsukaAssemblyPlacementInput) => AsukaAssemblyPlacementResult);
    validate: (() => AsukaAssemblyValidation);
}

Properties

autoPlace: ((componentId: string, options?: AsukaAssemblyMutationOptions) => AsukaMutationPromise<AsukaAssemblyPlacementResult>)

Find the nearest compatible anchor or valid plan position automatically.

Configure the room/plan and placement policies for the active 3D view.

Create an explicit connection between two compatible anchors.

disconnect: ((connectionId: string, options?: AsukaAssemblyMutationOptions) => AsukaMutationPromise<null | AsukaAssemblyConnection>)

Remove one persisted anchor connection.

export: ((kind: AsukaAssemblyExportKind, options?: AsukaAssemblyExportOptions) => Promise<Blob>)

Export BOM CSV/JSON, quote JSON or a complete production package.

getBom: ((options?: {
    currency?: string;
}) => AsukaAssemblyBom)

Build the normalized bill of materials for the current assembly.

getComponent: ((id: string) => null | AsukaAssemblyComponent)

Return one assembly component by runtime product id.

Build a quote from BOM pricing and optional adjustments.

getState: (() => AsukaAssemblyState)

Return the persisted plan, snapping settings and current connections.

listComponents: (() => AsukaAssemblyComponent[])

List every assembly-enabled Product 3D instance in the active view.

Place a component, applying the last valid transform when required.

previewPlacement: ((componentId: string, input?: AsukaAssemblyPlacementInput) => AsukaAssemblyPlacementResult)

Evaluate snapping, collisions, clearances and adjacency without mutating.

validate: (() => AsukaAssemblyValidation)

Validate the whole scene against collision, clearance and adjacency rules.