Some test text!
Web / Guides / Client API
Platform
Documentation
Construct initialized 3D viewer.
WebViewer instance that is available after initializing.
URL of WebViewer BIM server.
An object containing options for the initializeBimViewer call. The following are possible arguments:
WebViewer BIM license key.
Options to define 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,
createMiscGroup: true,
}
};
const WebViewerBIM = await initializeBimViewer(instance, serverURL, options);
}
a promise that resolves to an object containing the functions needed to load models in WebViewer.
Load an IFC model.
URL or path to IFC model.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.File.load3dAsset('Add URL to your 3D asset here');
N/A
Static method that preloads an IFC model for future loading. This can be used to convert model data prior to loading.
URL to your BIM server instance.
URL or path to IFC model.
Optional options object to modify load behavior.
const assetObject = await preload3dAsset(<serverURL>, <pathToAsset>, <conversionOptions>);
An object containing IDs for model data and optionally properties data. If enable_auth
is enabled on your BIM server you will also receive an auth
token for both the model data and the properties data.
// Sample assetObject
assetObject = {
modelData: {
id: '7bdb6aeab27191a882b9d3ed1e48afd4b490d755',
auth: 'be36e17d84d9eac35f41aef4cd9dc6e894f9f452b96175b2075308725338c3fe',
},
propertiesData: {
id: 'b204f18fb2168dc547d5056721c50ceb5bb3c62b',
auth: 'fa34e17d84g3awe35f41aef4cd9dc6e894f9f452b96175b2075308725338c3fe',
},
};
Loads a cached 3d asset from the BIM server.
Object containing IDs for model data and optional properties data. auth
tokens are only necessary if the BIM Server has enable_auth
set to true.
sampleAssetObject = {
modelData: {
id: '7bdb6aeab27191a882b9d3ed1e48afd4b490d755',
auth: 'be36e17d84d9eac35f41aef4cd9dc6e894f9f452b96175b2075308725338c3fe',
},
propertiesData: {
id: 'b204f18fb2168dc547d5056721c50ceb5bb3c62b',
auth: 'fa34e17d84g3awe35f41aef4cd9dc6e894f9f452b96175b2075308725338c3fe',
},
};
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
const assetObject = await webviewerBIM.File.loadCached3dAsset(
sampleAssetObject
);
N/A
Checks the status on asset conversion, returning true
when an asset is ready to load.
Object containing IDs for model data and optional properties data.
sampleAssetObject = {
modelData: {
id: '7bdb6aeab27191a882b9d3ed1e48afd4b490d755',
auth: 'be36e17d84d9eac35f41aef4cd9dc6e894f9f452b96175b2075308725338c3fe',
},
propertiesData: {
id: 'b204f18fb2168dc547d5056721c50ceb5bb3c62b',
auth: 'fa34e17d84g3awe35f41aef4cd9dc6e894f9f452b96175b2075308725338c3fe',
},
};
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
// rudimentary polling against the BIM server to know when the Asset is ready
while (true) {
const status = await webviewerBim.File.checkAssetConversionProgress(
assetObject
);
if (status === true) {
break;
}
await new Promise((r) => setTimeout(r, 200));
}
const assetObject = await webviewerBIM.File.loadCached3dAsset(
sampleAssetObject
);
Boolean - true
if the asset is ready to be loaded, false
otherwise.
Unmount the Bim Viewer
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");
// Call unmountBimViewer when you're ready to unmount.
// unmountBimViewer(instance);
}
N/A
Enable screen-space ambient occlusion for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.enableSSAO();
N/A
Disable screen-space ambient occlusion for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.disableSSAO();
N/A
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,
});
N/A
Enable anti-aliasing for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.enableAntiAliasing();
N/A
Disable anti-aliasing for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.disableAntiAliasing();
N/A
Enable ground shadows for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.enableShadows();
N/A
Disable ground shadows for the viewer.
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.Viewer.disableShadows();
N/A
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');
N/A
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);
N/A
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,
createMiscGroup: true,
}
const webviewerBIM = await initializeBimViewer(instance, serverURL, options);
webviewerBIM.PropertiesPanel.setSchema(sampleSchema);
}
N/A
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();
N/A
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();
N/A
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();
N/A
Get the answers you need: Support