WebViewer

class WebViewer()

Constructors

WebViewer.constructor()
WebViewer(inputParams: WebViewerConfig): WebViewer

Creates a new Web Viewer instance. You must pass in a containerId key with the ID of an element or a container element to use for your viewer. The system will create any required elements inside the supplied container.

Parameters

inputParams: WebViewerConfig

object containing key-value pairs for viewer to set

Returns: WebViewer

Properties

WebViewer._views
_views: IView[]
WebViewer.animationManager

readonly

animationManager: Manager
WebViewer.BCFManager

readonly

BCFManager: BCFManager
WebViewer.cuttingManager

readonly

cuttingManager: ICuttingManager
WebViewer.explodeManager

readonly

explodeManager: ExplodeManager
WebViewer.lineManager

readonly

lineManager: LineManager
WebViewer.markupManager

readonly

markupManager: MarkupManager
WebViewer.measureManager

readonly

measureManager: MeasureManager
WebViewer.model

readonly

model: IModel
WebViewer.noteTextManager

readonly

noteTextManager: NoteTextManager
WebViewer.selectionManager

readonly

selectionManager: SelectionManager
WebViewer.sheetManager

readonly

sheetManager: SheetManager

Accessors

WebViewer.floorplanManager()

deprecated

Deprecated

FloorplanManagers are now properties of Views.
get floorplanManager(): FloorplanManager

Deprecated

FloorplanManagers are now properties of Views.

Returns: FloorplanManager

WebViewer.operatorManager()

deprecated

Deprecated

OperatorManagers are now properties of Views.
get operatorManager(): OperatorManager

Deprecated

OperatorManagers are now properties of Views.

Returns: OperatorManager

WebViewer.overlayManager()

deprecated

Deprecated

OverlayManagers are now properties of Views.
get overlayManager(): OverlayManager

Deprecated

OverlayManagers are now properties of Views.

Returns: OverlayManager

WebViewer.view()
get view(): IView

Returns: IView

WebViewer.views()
get views(): IView[]

Returns: IView[]

WebViewer.defaultEngineBinary()

static

get defaultEngineBinary(): unknown

Returns: unknown

set defaultEngineBinary(val: unknown): void

Parameters

val: unknown

Returns: void

WebViewer.defaultEnginePath()

static

get defaultEnginePath(): (undefined | string)

Returns: (undefined | string)

set defaultEnginePath(val: (undefined | string)): void

Parameters

val: (undefined | string)

Returns: void

Methods

WebViewer.addView()
addView(config: ViewConfig): Promise

Adds another 3D view of the scene to the page.

Parameters

config: ViewConfig

configuration to be used for the new view.

Returns: Promise

A promise with the created View.
WebViewer.advanceExportToSvg()
advanceExportToSvg(): Promise

Get the next chunk of the SVG code

Returns: Promise

A promise that resolves to a string containing the next chunk or undefined on completed..
WebViewer.applyFilter()
applyFilter(filterId: FilterId): void

Parameters

filterId: FilterId

Returns: void

WebViewer.beginExportToSvg()
beginExportToSvg(config: SvgConfig?): Promise

Setup the env to export the current scene to a two-dimensional SVG representation through stream.

Parameters

config: SvgConfig = …

Allows customization of the resultant SVG.

Returns: Promise

A promise that resolves to void when the env is ready.
WebViewer.closeConnection()
closeConnection(): void

Disconnects the network connection when in CSR mode.

Returns: void

WebViewer.delayCapping()
delayCapping(): void

Delays capping processing by a fixed time interval.

Returns: void

WebViewer.endExportToSvg()
endExportToSvg(): Promise

Reset the env after SVG stream export.

Returns: Promise

A promise that resolves to void when the env is reset.
WebViewer.exportToSvg()
exportToSvg(config: SvgConfig?): Promise

Exports the current scene to a two-dimensional SVG representation.

Parameters

config: SvgConfig = …

Allows customization of the resultant SVG.

Returns: Promise

A promise that resolves to the created SVG string.
WebViewer.fitWorld()
fitWorld(duration: number?): Promise

Parameters

duration: number = DefaultTransitionDuration

Returns: Promise

WebViewer.focusInput()
focusInput(focus: boolean): void

Sets whether keyboard input should be directed to this Web Viewer.

Parameters

focus: boolean

if true, the Web Viewer will be focused and accept keyboard input, otherwise it will be blurred and not accept keyboard input

Returns: void

WebViewer.getAllowHighDpi()
getAllowHighDpi(): boolean

Gets the current value for high DPI rendering

Returns: boolean

current high DPI setting
WebViewer.getContextMenuStatus()
getContextMenuStatus(): boolean

Returns: boolean

boolean true if the context menu is active, false otherwise
WebViewer.getFormatVersionString()
getFormatVersionString(): string

Returns the format version string.

Returns: string

string containing version information for the format.
WebViewer.getMinimumFramerate()
getMinimumFramerate(): Promise

Gets the minimum framerate that will be maintained by the viewer. The viewer will use various culling techniques in order to maintain the value returned.

Deprecated

Views can have independent framerates. This should be set using View.getMinimumFramerate.

Returns: Promise

Promise that is resolved when the operation has completed.
WebViewer.getModelReady()
getModelReady(): boolean

Returns: boolean

WebViewer.getRendererType()
getRendererType(): RendererType

Gets the RendererType this viewer was created with.

Returns: RendererType

the render mode.
WebViewer.getSceneReady()
getSceneReady(): boolean

Returns: boolean

WebViewer.getStatistics()
getStatistics(calculateTotals: boolean?): Promise

Gets viewer statistics for the current rendered frame. Statistics marked with a (*) below must be calculated and will not be included in the results unless the calculateTotals parameter is true. The values of these items will be cached and only updated during the next call to this method with calculateTotals set to true.

Parameters

calculateTotals: boolean = false

Forces an update of the total count elements. Please note that repeatedly calculating these items can cause a performance impact.

Returns: Promise

an object containing informational key/value pairs
WebViewer.getStreamCutoffScale()
getStreamCutoffScale(): number

Returns the scale factor that will be applied to the streaming size cutoff. An object whose projected size is lower than the cutoff will not be streamed until its projected size reaches the cutoff. A value of 0 disables the cutoff.

Returns: number

WebViewer.getStreamingMode()
getStreamingMode(): StreamingMode

Gets the streaming mode this viewer was created with.

Returns: StreamingMode

the streaming mode.
WebViewer.getView()
getView(viewKey: ViewKey): (undefined | IView)

Gets a view with the provided key.

Parameters

viewKey: ViewKey

The key of the view to be returned.

Returns: (undefined | IView)

The view, or undefined if it doesn’t exist.
WebViewer.getViewElement()
getViewElement(): HTMLDivElement

Gets the view element for this viewer. This element contains the canvas

Returns: HTMLDivElement

the view element
WebViewer.getViewerVersionString()
getViewerVersionString(): string

Returns the viewer version string.

Returns: string

string containing version information for the viewer.
WebViewer.moveToWindow()
moveToWindow(win: Window): void

This method should be called when the viewer is being moved to a new window. An example use case would be opening a new pop up window.

Parameters

win: Window

the new document that this viewer will be associated with.

Returns: void

WebViewer.pauseRendering()
pauseRendering(callback: () => void): Promise

Pauses rendering updates for all views. This function is useful when performing large batches of updates and you would like the result to appear all at once.

Parameters

callback: () => void

If provided, rendering will be paused, the callback will be called, and then rendering will be resumed once the callback returns or throws an exception.

Returns: Promise

WebViewer.redraw()
redraw(callback: () => void): void

Forces the viewer to perform a full redraw of all views.

Parameters

callback: () => void

A function to be called once the draw is complete. This is provided instead of a Promise to ensure the callback is called before the start of another redraw.

Returns: void

WebViewer.registerCustomOperator()
registerCustomOperator(operator: Operator): OperatorId

Associates a custom operator object with a system generated operatorId.

Parameters

operator: Operator

Returns: OperatorId

an operatorId to be used for this operator.
WebViewer.removeView()
removeView(view: IView): void

Removes an existing view from the page. Note that the default view cannot be removed.

Parameters

view: IView

The view to remove.

Returns: void

WebViewer.reset()
reset(durationCameraTransition: number?): Promise

Reset the camera, visibility, and transforms to their default state

Parameters

durationCameraTransition: number = DefaultTransitionDuration

Returns: Promise

Promise that resolves when the operation has completed.
WebViewer.resetClientTimeout()
resetClientTimeout(): void

Resets the client timeout to the duration set with setClientTimeout.

Returns: void

WebViewer.resizeCanvas()
resizeCanvas(): void

This method should be called after the container element is moved or resized.

Returns: void

WebViewer.resumeRendering()
resumeRendering(): Promise

Resumes rendering for all views.

Returns: Promise

WebViewer.selectPart()
selectPart(nodeId: (None | number), selectionMode: SelectionMode?): SelectionType

Selects a part with the given Id.

Parameters

nodeId: (None | number)

nodeId of the part to select. Pass null to clear the selection.

selectionMode: SelectionMode = SelectionMode.Set

Returns: SelectionType

WebViewer.setAllowHighDpi()
setAllowHighDpi(allow: boolean): void

Controls rendering on high DPI displays. If true, the image will be rendered at full resolution when a high-DPI display is detected. If false, the image may be rendered at a lower resolution. The default value is false. This method may be called any time during or after the sceneReady callback has triggered.

Parameters

allow: boolean

controls the high DPI Setting.

Returns: void

WebViewer.setCallbacks()
setCallbacks(callbacks: CallbackMap): void

Registers callbacks that will be called when their corresponding events occur.

Parameters

callbacks: CallbackMap

object with property names set to corresponding functions to be called when the event occurs.

Returns: void

WebViewer.setClientTimeout()
setClientTimeout(timeoutDuration: number, warningTime: number): boolean

Sets the parameters for client driven timeout monitoring. If no input is recorded for the the duration, the viewer will disconnect and free server resources. Calling this method will reset any pending timeout duration. No timeout will occur when viewing SCS Files. The default value is to disconnect after 15 minutes, with a warning issued after 14 minutes of inactivity. <br><br> <strong>Please note:</strong> Both parameters are required.

Parameters

timeoutDuration: number

the total time in minutes of inactivity that is allowed before a timeout event occurs

warningTime: number

the number of minutes before issuing a timeoutWarning event

Returns: boolean

boolean value indicating whether the timeout values were sucessfully updated
WebViewer.setContextMenuStatus()
setContextMenuStatus(isActive: boolean): void

Sets a boolean with the status of the context menu

Parameters

isActive: boolean

Returns: void

WebViewer.setMinimumFramerate()
setMinimumFramerate(value: number): Promise

Sets a minimum frame rate that will be maintained by all views. Views will use various culling techniques in order to maintain the value passed in.

Passing 0 will cause the entire scene to be drawn for every frame.

Parameters

value: number

The frame rate for the views to maintain.

Returns: Promise

Promise that is resolved when the operation has completed.
WebViewer.setServerRenderQuality()
setServerRenderQuality(jpegQualityLow: number, jpegQualityHigh: number, scaleLow: number, scaleHigh: number): void

Sets the image quality settings for the high quality and low quality server side render. The low quality settings will be applied during model interaction (camera changes, selection, etc)

Parameters

jpegQualityLow: number

The JPEG quality of the low quality render frame

jpegQualityHigh: number

The JPEG quality of the high quality render frame

scaleLow: number

The scale factor for the low quality render frame

scaleHigh: number

The scale factor for the high quality render frame

Returns: void

WebViewer.setStreamCutoffScale()
setStreamCutoffScale(value: number): Promise

Specifies a scale factor that will be applied to the streaming size cutoff. An object whose projected size is lower than the cutoff will not be streamed until its projected size reaches the cutoff.

This value may also be set for file-based sessions. In that case, when loading an SCS file based assembly via XML, projected size will be calculated on a per-file basis using the bounding information provided in the XML. For additional information, refer to [[Model.loadSubtreeFromXmlBuffer]].

A value of 0 will disable the cutoff. The value should be in the interval of [0.0, 2.0].

Parameters

value: number

Returns: Promise

WebViewer.setViewOrientation()
setViewOrientation(orientation: ViewOrientation, duration: number?): Promise

Sets the orientation of the current model view.

Parameters

orientation: ViewOrientation

a [[ViewOrientation]] object specifying back, front, top, etc.

duration: number = DefaultTransitionDuration

the time in milliseconds for the model to transition to the new view orientation.

Returns: Promise

WebViewer.shutdown()
shutdown(): void

Releases the resources used by the viewer. This method should be called when the viewer is no longer needed but the page is not being reloaded.

Returns: void

WebViewer.start()
start(): boolean

Starts the viewer and begins the loading process

Returns: boolean

WebViewer.takeSnapshot()
takeSnapshot(config: SnapshotConfig?): Promise

Creates an Image of the current canvas

Parameters

config: SnapshotConfig = …

Returns: Promise

WebViewer.trigger()

Used to trigger Web Viewer events from operators. Refer to the overloaded method signatures for acceptable invocations of this method. Refer to [[CallbackMap]] for additional details for each event.

trigger(name: “bcfLoaded”, id: number, filename: string): void

Parameters

name: “bcfLoaded”

id: number

filename: string

Returns: void

trigger(name: “bcfRemoved”, id: number): void

Parameters

name: “bcfRemoved”

id: number

Returns: void

trigger(name: “handleEvent”, eventType: HandleEventType, nodeIds: number[], initialMatrices: Matrix[], newMatrices: Matrix[]): void

Parameters

name: “handleEvent”

eventType: HandleEventType

nodeIds: number[]

initialMatrices: Matrix[]

newMatrices: Matrix[]

Returns: void

trigger(name: “handleEventEnd”, eventType: HandleEventType, nodeIds: number[], initialMatrices: Matrix[], newMatrices: Matrix[]): void

Parameters

name: “handleEventEnd”

eventType: HandleEventType

nodeIds: number[]

initialMatrices: Matrix[]

newMatrices: Matrix[]

Returns: void

trigger(name: “handleEventStart”, eventType: HandleEventType, nodeIds: number[], initialMatrices: Matrix[]): void

Parameters

name: “handleEventStart”

eventType: HandleEventType

nodeIds: number[]

initialMatrices: Matrix[]

Returns: void

trigger(name: “cuttingPlaneDragStart”, cuttingSection: ICuttingSection, planeIndex: number): void

Parameters

name: “cuttingPlaneDragStart”

cuttingSection: ICuttingSection

planeIndex: number

Returns: void

trigger(name: “cuttingPlaneDrag”, cuttingSection: ICuttingSection, planeIndex: number): void

Parameters

name: “cuttingPlaneDrag”

cuttingSection: ICuttingSection

planeIndex: number

Returns: void

trigger(name: “cuttingPlaneDragEnd”, cuttingSection: ICuttingSection, planeIndex: number): void

Parameters

name: “cuttingPlaneDragEnd”

cuttingSection: ICuttingSection

planeIndex: number

Returns: void

trigger(name: “cuttingSectionsLoaded”): void

Parameters

name: “cuttingSectionsLoaded”

Returns: void

trigger(name: “redlineCreated”, redlineMarkup: RedlineItem): void

Parameters

name: “redlineCreated”

redlineMarkup: RedlineItem

Returns: void

trigger(name: “redlineDeleted”, redlineMarkup: RedlineItem): void

Parameters

name: “redlineDeleted”

redlineMarkup: RedlineItem

Returns: void

trigger(name: “redlineUpdated”, redlineMarkup: RedlineItem): void

Parameters

name: “redlineUpdated”

redlineMarkup: RedlineItem

Returns: void

trigger(name: “measurementBegin”): void

Parameters

name: “measurementBegin”

Returns: void

trigger(name: “measurementCreated”, measurement: MeasureMarkup): void

Parameters

name: “measurementCreated”

measurement: MeasureMarkup

Returns: void

trigger(name: “measurementDeleted”, measurement: MeasureMarkup): void

Parameters

name: “measurementDeleted”

measurement: MeasureMarkup

Returns: void

trigger(name: “measurementValueSet”, measurement: MeasureMarkup): void

Parameters

name: “measurementValueSet”

measurement: MeasureMarkup

Returns: void

trigger(name: “measurementShown”, measurement: MeasureMarkup): void

Parameters

name: “measurementShown”

measurement: MeasureMarkup

Returns: void

trigger(name: “measurementHidden”, measurement: MeasureMarkup): void

Parameters

name: “measurementHidden”

measurement: MeasureMarkup

Returns: void

trigger(name: “noteTextCreated”, noteText: NoteText): void

Parameters

name: “noteTextCreated”

noteText: NoteText

Returns: void

trigger(name: “noteTextDeleted”, noteText: NoteText): void

Parameters

name: “noteTextDeleted”

noteText: NoteText

Returns: void

trigger(name: “noteTextUpdated”, noteText: NoteText): void

Parameters

name: “noteTextUpdated”

noteText: NoteText

Returns: void

trigger(name: “noteTextHidden”, noteText: NoteText): void

Parameters

name: “noteTextHidden”

noteText: NoteText

Returns: void

trigger(name: “noteTextShown”, noteText: NoteText): void

Parameters

name: “noteTextShown”

noteText: NoteText

Returns: void

trigger(name: “walkOperatorActivated”): void

Parameters

name: “walkOperatorActivated”

Returns: void

trigger(name: “walkOperatorDeactivated”): void

Parameters

name: “walkOperatorDeactivated”

Returns: void

trigger(name: “viewCreated”, view: MarkupView): void

Parameters

name: “viewCreated”

view: MarkupView

Returns: void

trigger(name: “viewDeleted”, view: MarkupView): void

Parameters

name: “viewDeleted”

view: MarkupView

Returns: void

trigger(name: “viewLoaded”, view: MarkupView): void

Parameters

name: “viewLoaded”

view: MarkupView

Returns: void

trigger(name: “contextMenu”, position: Point2, modifiers: KeyModifiers): void

Parameters

name: “contextMenu”

position: Point2

modifiers: KeyModifiers

Returns: void

trigger(name: “beginInteraction”): void

Parameters

name: “beginInteraction”

Returns: void

trigger(name: “endInteraction”): void

Parameters

name: “endInteraction”

Returns: void

WebViewer.unregisterCustomOperator()
unregisterCustomOperator(operatorId: OperatorId): void

Removes a previously registered custom operator from the system.

Parameters

operatorId: OperatorId

the ID of the operator that is to be unregistered

Returns: void

WebViewer.unsetCallbacks()
unsetCallbacks(callbacks: CallbackMap): void

Unregisters callbacks from the system. Note the actual function object passed in must be the same as the one that was registered using setCallbacks.

Parameters

callbacks: CallbackMap

object with property names set to corresponding functions to be unregistered.

Returns: void

WebViewer.waitForIdle()
waitForIdle(config: { redraw: boolean }?): Promise

Returns a Promise that will resolve after streaming and associated asynchronous operations complete and the scene is fully drawn.

Parameters

config: { redraw: boolean } = {}

Returns: Promise