Some test text!
Web / Guides / Client API
Construct initialized 3D viewer.
WebViewer instance that is available after initializing.
URL of WebViewer BIM server.
An options object to configure the WebViewer BIM application. The following are possible arguments:
license
- The WebViewer BIM license key.
dataSchema
- An object that defines the schema of the properties panel.
import WebViewer from '@pdftron/webviewer';
import { initializeBimViewer } from '@pdftron/webviewer-bim-client'
WebViewer({
path: '/webviewer/lib',
}, document.getElementById('viewer')).then(instance => {
const license = `---- Insert commercial license key here after purchase ----`;
const serverURL = `---- Insert server URL after setup ----`;
const options = {
license: license,
dataSchema: {
headerName: 'Name',
defaultValues: {
Description: 'Description',
GlobalID: 'GlobalId',
Handle: 'handle',
EmptyRow1: 'EmptyRow1',
},
groups: {
Dimensions: {
Length: 'Length',
Width: 'Width',
Height: 'Height',
EmptyRow2: 'EmptyRow2',
GrossFootprintArea: 'GrossFootprintArea',
GrossSideArea: 'GrossSideArea',
GrossVolume: 'GrossVolume',
}
EmptyGroupTest: {
ObjectType: 'Lions',
EmptyRow3: 'Tigers',
ObjectPlacement: 'Bears',
},
},
groupOrder: ['EmptyGroupTest', 'Dimensions'],
removeEmptyRows: true,
removeEmptyGroups: true,
createRawValueGroup: true,
}
};
const WebViewerBIM = await initializeBimViewer(instance, serverURL, options);
}
A promise that resolves to an object containing the functions necessary for loading models in WebViewer.
Loads a 3D model.
URL or path to 3D model.
An optional object that modifies the 3D loading process.
loadProperties
, determines whether the server should extract and load 3D property data or not.withCredentials
, determines whether to set the credentials property to 'include' on the Fetch request. This is used when the BIM Server has allow_credentials
enabled.headers
, carries additional information to be sent to the BIM server.headers.extension
, use this option to exclusively specify the file extension.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
const loadOptions = {
loadProperties: true,
withCredentials: true,
headers: {
extension: '.ifc',
},
};
webviewerBIM.File.load3dAsset('Add URL to your 3D asset here', loadOptions);
void
Preloads a 3D model for future loading, allowing for the conversion of model data before loading.
URL to your BIM server instance.
URL or path to 3D model.
Optional options object to modify preload behavior.
loadProperties
, determines whether the server should extract and load 3D property data or not.
withCredentials
, determines whether to set the credentials property to 'include' on the Fetch request. This is used when the BIM Server has allow_credentials
enabled.
headers
, carries additional information to be sent to the BIM server. For instance, the extension
attribute can be included in the header to exclusively specify the file extension.
const preloadOptions = {
loadProperties: true,
withCredentials: true,
headers: {
extension: '.ifc',
},
};
const assetObject = await preload3dAsset(<serverURL>, <pathToAsset>, preloadOptions);
Promise<object>
- An object containing IDs for model and, optionally, properties data. If enable_auth
is enabled on your BIM server, it will return an authorization
token for both the model and properties data.
// Sample return value.
assetObject = {
modelData: {
id: '7bdb6aeab27191a882b9d3ed1e48afd4b490d755',
authorization: 'be36e17d84d9eac35f41aef4cd9dc6e894f9f452b96175b2075308725338c3fe',
},
propertiesData: {
id: 'b204f18fb2168dc547d5056721c50ceb5bb3c62b',
authorization: 'fa34e17d84g3awe35f41aef4cd9dc6e894f9f452b96175b2075308725338c3fe',
},
};
Loads a cached 3D asset from the BIM server.
Options object containing credential options, model data IDs, and optional properties data. Authorization tokens are only required if enable_auth is set to true on the BIM Server.
withCredentials
, determines whether to set the credentials property to 'include' on the Fetch request. This is used when the BIM Server has allow_credentials
enabled.
const loadCachedOptions = {
withCredentials: true,
modelData: {
id: '7bdb6aeab27191a882b9d3ed1e48afd4b490d755',
authorization: 'be36e17d84d9eac35f41aef4cd9dc6e894f9f452b96175b2075308725338c3fe',
},
propertiesData: {
id: 'b204f18fb2168dc547d5056721c50ceb5bb3c62b',
authorization: 'fa34e17d84g3awe35f41aef4cd9dc6e894f9f452b96175b2075308725338c3fe',
},
};
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
await webviewerBIM.File.loadCached3dAsset(loadCachedOptions);
Promise<void>
Checks the status on asset conversion, returning true
when an asset is ready to load.
Options object containing credential options, model data IDs, and optional properties data. Authorization tokens are only required if enable_auth is set to true on the BIM Server.
withCredentials
, determines whether to set the credentials property to 'include' on the Fetch request. This is used when the BIM Server has allow_credentials
enabled.
import { initializeBimViewer, preload3dAsset } from '@pdftron/webviewer-bim-client';
const webviewerBIM = await initializeBimViewer(<instance>, <serverURL>, <options>);
const asset = await preload3dAsset(<serverURL>, <assetURL>, {});
// Rudimentary polling against the BIM server to know when the asset is ready.
while (true) {
const status = await webviewerBIM.File.checkAssetConversionProgress({
...asset,
withCredentials: true
});
if (status === true) {
break;
}
await new Promise((r) => setTimeout(r, 200));
}
await webviewerBIM.File.loadCached3dAsset(asset);
Promise<boolean>
- A promise that resolves to true
if the conversion has been completed successfully. false
otherwise.
Unmounts the BIM Viewer. Calling this will close the document and delete all annotations of the current session.
WebViewer instance that is available after initializing.
import Webviewer from '@pdftron/webviewer';
import { initializeBimViewer, unmountBimViewer } from '@pdftron/webviewer-bim-client'
Webviewer({
path: '/webviewer/lib',
}, document.getElementById('viewer')).then(instance => {
const license = `---- Insert commercial license key here after purchase ----`;
const serverURL = `---- Insert server URL after setup ----`;
const options = {
license: license,
}
const WebViewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.File.load3dAsset("Add URL to your 3D asset here");
unmountBimViewer(instance);
}
void
Enable screen-space ambient occlusion for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.enableSSAO();
void
Disable screen-space ambient occlusion for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.disableSSAO();
void
Adjust screen-space ambient occlusion for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.setSSAOOptions({
// example parameters:
isDynamicRadius: true,
radius: 1,
loops: 64,
blurRadius: 2,
power: 1.4,
});
void
Enable anti-aliasing for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.enableAntiAliasing();
void
Disable anti-aliasing for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.disableAntiAliasing();
void
Enable ground shadows for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.enableShadows();
void
Disable ground shadows for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.disableShadows();
void
Gets the current Walk Mode for the First Person Mode
.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.FirstPersonMode.getWalkMode();
String - Returns either WalkThrough
or FlyThrough
.
Sets the current Walk Mode for the First Person Mode
, either WalkThrough
or FlyThrough
. WalkThrough
simulates walking
where going forward for example is always in reference to the ground plane. When set to FlyThrough
directional movement is relative to the camera
orientation.
String
containing the desired walk mode, either WalkThrough
or FlyThrough
.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.FirstPersonMode.setWalkMode('WalkThrough');
void
Sets the sensitivity for Orbit/Pan tool.
const cameraTools = {
orbit: 'Orbit3D',
pan: 'Pan3D',
walk: 'Walk',
};
const panTool = instance.Core.DocumentViewer.getTool(cameraTools.pan);
panTool.setCameraSensitivity(10);
void
Gets the Orbit/Pan tool's sensitivity.
const cameraTools = {
orbit: 'Orbit3D',
pan: 'Pan3D',
walk: 'Walk',
};
const orbitTool = instance.Core.DocumentViewer.getTool(cameraTools.orbit);
orbitTool.getCameraSensitivity();
Number
Sets a new Properties Panel configuration based on a passed in Schema.
Object containing the desired configuration.
const sampleSchema = {
headerName: 'Name',
defaultValues: {
Description: 'Description',
GlobalID: 'GlobalId',
Handle: 'handle',
EmptyRow1: 'EmptyRow1',
},
groups: {
Dimensions: {
Length: 'Length',
Width: 'Width',
Height: 'Height',
EmptyRow2: 'EmptyRow2',
GrossFootprintArea: 'GrossFootprintArea',
GrossSideArea: 'GrossSideArea',
GrossVolume: 'GrossVolume',
}
EmptyGroupTest: {
ObjectType: 'Lions',
EmptyRow3: 'Tigers',
ObjectPlacement: 'Bears',
},
},
groupOrder: ['EmptyGroupTest', 'Dimensions'],
removeEmptyRows: true,
removeEmptyGroups: true,
createRawValueGroup: true,
}
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.PropertiesPanel.setSchema(sampleSchema);
}
void
Toggles showing the Default
group. This group contains all of the key/value pairs on a selected element
without any adjustments.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.PropertiesPanel.toggleShowDefaultGroup();
void
Toggles showing empty Groups
on the properties panel. Empty Groups
are defined as groups where every Row
has an empty String
.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.PropertiesPanel.toggleShowEmptyGroups();
void
Toggles showing empty Rows
on the properties panel. An empty Row
is defined as a row where the value is an empty String
.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.PropertiesPanel.toggleShowEmptyRows();
void
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales