forma-embedded-view-sdk
Version:
The Forma Embedded View SDK is a JavaScript library for creating custom extensions in Autodesk Forma Site Design (previously Spacemaker).
55 lines (54 loc) • 1.79 kB
JavaScript
/**
* Render elements in the 3D scene.
*
* @remarks
* Available via {@link auto.Forma | Forma}.{@link index.EmbeddedViewSdk.experimental | experimental}.{@link index.EmbeddedViewSdk.render | render}.{@link render.RenderApi.element | element}.
*/
export class RenderElementApi {
#iframeMessenger;
constructor(iframeMessenger) {
this.#iframeMessenger = iframeMessenger;
}
/**
* Add elements to the scene.
*
* @returns Unique identifier for this render call
*
* @example
* const { id } = await Forma.render.element.add({ elements: [{ urn: <urn> }] }),
*/
async add(request) {
return await this.#iframeMessenger.sendRequest("experimental/render/element/add", request);
}
/**
* Upsert an element in the scene. If the element does not exist, it will be added.
*
* This method can also be used as an upsert.
*
* @example
* await Forma.render.element.update({ id: "myPreviousAddedGroup", elements: [{ urn: <urn> }] })
*/
async update(request) {
await this.#iframeMessenger.sendRequest("experimental/render/element/update", request);
}
/**
* Remove an existing element group from the scene.
*
* @example
* await Forma.render.element.remove({ id: "myPreviousAddedGroup" })
*/
async remove(request) {
await this.#iframeMessenger.sendRequest("experimental/render/element/remove", request);
}
/**
* Remove all Elements added by this API from the scene.
*
* Called automatically when the extension is unloaded
*
* @example
* await Forma.render.element.cleanup()
*/
async cleanup() {
await this.#iframeMessenger.sendRequest("experimental/render/element/cleanup");
}
}