Download Class
A Download asynchronously downloads Objects from a BIMSurfer into the parent Viewer.
Overview
The downloadType config specifies the type of download:
- "types" - download Object of the given IFC type
- "revision" - download Object belonging to the given revision
- "oids" - download Object having the given IDs
Example 1: General usage
// Create a Viewer
var viewer = new BIMSURFER.Viewer({
element: "myDiv"
});
// Initiate a Download
var download = new BIMSURFER.Download(viewer, {
downloadType: "types",
roid: "xyz",
types: ["", "", ""],
schema: "",
autoDestroy: true // default
});
// Subscribe to progress updates
download.on("progress", function(e) {
// Total number of Objects being loaded
var numObjects = e.numObjects;
// Number of Objects loaded so far
var numObjectsLoaded = e.numObjectsLoaded;
// Percentage of Objects loaded so far
var progress = e.progress;
//...
});
// Subscribe to completion
download.on("completed", function(e) {
// Number of Objects loaded
var numObjectsLoaded = e.numObjectsLoaded;
// Since this Download component was configured with autoDestroy: true,
// which is the default, then this Download component will now
// destroy itself.
//...
});
// Subscribe to errors
download.on("error", function(e) {
// Error message
var message = e;
// Even though this Download component was configured with autoDestroy: true,
// which is the default, the Download component will not destroy itself
// since an error occurred.
//...
});
Example 2: Downloading Object of specified IFC type
var downloadTypes = new BIMSURFER.Download(viewer, {
downloadType: "types",
types: [
"IfcDoor",
"IfcBuildingElementProxy",
"IfcWallStandardCase",
"IfcWall"
],
schema: "XYZ"
});
//...
Example 3: Downloading Object for a revision ID
var downloadRevisions = new BIMSURFER.Download(viewer, {
downloadType: "revision",
roid: "XYZ"
});
//...
Example 4: Downloading Object having the given IDs
var downloadByIDs = new BIMSURFER.Download(viewer, {
downloadType: "oids",
roids: ["XYZ", "XYZ2"],
oids: ["XYZ", "XYZ2"]
});
//...
Constructor
Download
-
[viewer]
-
[cfg]
Parameters:
-
[viewer]
Viewer optionalParent Viewer.
-
[cfg]
optionalConfigs
-
[id]
String optionalOptional ID, unique among all components in the parent viewer, generated automatically when omitted.
-
[meta]
String:Object optionalOptional map of user-defined metadata to attach to this Label.
-
[models]
optional -
[downloadType]
optionalType download - "types", "revision" or "oids"
-
[roids]
optionalA list of revision IDs
-
[roid]
optionalA single revision ID
-
[schema]
optionalSchema
-
[types]
optionalTypes of objects to download
-
[oids]
optionalIDs of objects to download
-
[autoDestroy=true]
Boolean optionalIndicates if this Download component should destroy itself when download complete.
-
Item Index
Methods
destroy
()
error
-
message
Logs an error for this component to the JavaScript console.
The console message will have this format: [ERROR] <component id>: <message>
Parameters:
-
message
StringThe message to log
fire
-
event
-
value
-
[forget=false]
Fires an event on this component.
Notifies existing subscribers to the event, retains the event to give to any subsequent notifications on that location as they are made.
Parameters:
-
event
StringThe event type name
-
value
ObjectThe event
-
[forget=false]
Boolean optionalWhen true, does not retain for subsequent subscribers
log
-
message
Logs a console debugging message for this component.
The console message will have this format: [LOG] <component id>: <message>
Parameters:
-
message
StringThe message to log
off
-
handle
Parameters:
-
handle
StringSubscription handle
on
-
event
-
callback
-
[scope=this]
Subscribes to an event on this component.
The callback is be called with this component as scope.
Parameters:
-
event
StringPublication event
-
callback
FunctionCalled when fresh data is available at the event
-
[scope=this]
Object optionalScope for the callback
Returns:
Handle to the subscription, which may be used to unsubscribe with {@link #off}.
once
-
event
-
callback
-
[scope=this]
Subscribes to the next occurrence of the given event, then un-subscribes as soon as the event is handled.
Parameters:
-
event
StringData event to listen to
-
callback
Function(data)Called when fresh data is available at the event
-
[scope=this]
Object optionalScope for the callback
warn
-
message
Logs a warning for this component to the JavaScript console.
The console message will have this format: [WARN] <component id>: <message>
Parameters:
-
message
StringThe message to log
Properties
className
String
final
JavaScript class name for this Component.
destroyed
Boolean
True as soon as this Component has been destroyed
Items in this map
Unknown
metadata
Object
Metadata on this component.
Events
destroyed
Fired when this Component is destroyed.
finished
Fired when this Download has successfully completed.
finished
Fired when download has completed
progress
Fired periodically as downloading progresses, to indicate download progress.
Event Payload:
-
progress
ObjectProgress percentage
-
numObjects
ObjectTotal number of objects to download
-
numObjectsLoaded
ObjectNumber of objects downloaded so far