API Docs for: 2.0.0
Show:

Download Class

Extends Component
Module: loading
Parent Module: BIMSURFER

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.

   //...
});

var downloadTypes = new BIMSURFER.Download(viewer, {
   downloadType: "types",
   types: [
       "IfcDoor",
       "IfcBuildingElementProxy",
       "IfcWallStandardCase",
       "IfcWall"
   ],
   schema: "XYZ"
});

//...

var downloadRevisions = new BIMSURFER.Download(viewer, {
   downloadType: "revision",
   roid: "XYZ"
});

//...

var downloadByIDs = new BIMSURFER.Download(viewer, {
   downloadType: "oids",
   roids: ["XYZ", "XYZ2"],
   oids: ["XYZ", "XYZ2"]
});

//...

Constructor

Download

(
  • [viewer]
  • [cfg]
)

Parameters:

  • [viewer] Viewer optional

    Parent Viewer.

  • [cfg] optional

    Configs

    • [id] String optional

      Optional ID, unique among all components in the parent viewer, generated automatically when omitted.

    • [meta] String:Object optional

      Optional map of user-defined metadata to attach to this Label.

    • [models] optional
    • [downloadType] optional

      Type download - "types", "revision" or "oids"

    • [roids] optional

      A list of revision IDs

    • [roid] optional

      A single revision ID

    • [schema] optional

      Schema

    • [types] optional

      Types of objects to download

    • [oids] optional

      IDs of objects to download

    • [autoDestroy=true] Boolean optional

      Indicates if this Download component should destroy itself when download complete.

Methods

destroy

()

Destroys this component.

Removes this Component from its Viewer.

Fires a destroyed event on this Component.

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 String

    The 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 String

    The event type name

  • value Object

    The event

  • [forget=false] Boolean optional

    When 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 String

    The message to log

off

(
  • handle
)

Cancels an event subscription that was previously made with on or once.

Parameters:

  • handle String

    Subscription handle

on

(
  • event
  • callback
  • [scope=this]
)
String

Subscribes to an event on this component.

The callback is be called with this component as scope.

Parameters:

  • event String

    Publication event

  • callback Function

    Called when fresh data is available at the event

  • [scope=this] Object optional

    Scope for the callback

Returns:

String:

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 String

    Data event to listen to

  • callback Function(data)

    Called when fresh data is available at the event

  • [scope=this] Object optional

    Scope 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 String

    The message to log

Properties

className

String final

JavaScript class name for this Component.

destroyed

Boolean

True as soon as this Component has been destroyed

id

String final

Unique ID for this Component within its parent Viewer.

Items in this map

Unknown

metadata

Object

Metadata on this component.

viewer

Viewer final

The Viewer that contains 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 Object

    Progress percentage

  • numObjects Object

    Total number of objects to download

  • numObjectsLoaded Object

    Number of objects downloaded so far