API Docs for: 2.0.0
Show:

ObjectSet Class

Extends Component
Module: objects
Parent Module: BIMSURFER

An ObjectSet is a set of Object.

Overview

Example

Highlighting an ObjectSet

In this example we create four Object, then add two of them to an ObjectSet.
Then we apply a HighlightEffect to the ObjectSet, causing it's Object to become highlighted while the other two Object remain un-highlighted.


// Create a Viewer
var viewer = new BIMSURFER.Viewer({ element: "myDiv" });

// Create a Camera
var camera = new BIMSURFER.Camera(viewer, {
       eye: [30, 20, -30]
   });

// Spin the camera
viewer.on("tick", function () {
       camera.rotateEyeY(0.2);
   });

// Create a CameraControl so we can move the Camera
var cameraControl = new BIMSURFER.CameraControl(viewer, {
       camera: camera
   });

// Create an AmbientLight
var ambientLight = new BIMSURFER.AmbientLight(viewer, {
       color: [0.7, 0.7, 0.7]
   });

// Create a DirLight
var dirLight1 = new BIMSURFER.DirLight(viewer, {
       color: [0.6, 0.9, 0.9],
       dir: [1.0, 0.0, 0.0],
       space: "view"
   });

// Create a DirLight
var dirLight2 = new BIMSURFER.DirLight(viewer, {
       color: [0.6, 0.9, 0.9],
       dir: [-0.5, 0.0, -1.0],
       space: "view"
   });

// Create a BoxGeometry
var geometry = new BIMSURFER.BoxGeometry(viewer, {
       id: "myGeometry"
   });

// Create some Objects
// Share the BoxGeometry among them

var object1 = new BIMSURFER.Object(viewer, {
       type: "IfcRoof",
       geometries: [ geometry ],
       matrix: BIMSURFER.math.translationMat4v([-8, 0, -8])
   });

var object2 = new BIMSURFER.Object(viewer, {
       type: "IfcDistributionFlowElement",
       geometries: [ geometry ],
       matrix: BIMSURFER.math.translationMat4v([8, 0, -8])
   });

var object3 = new BIMSURFER.Object(viewer, {
       type: "IfcDistributionFlowElement",
       geometries: [ geometry ],
       matrix: BIMSURFER.math.translationMat4v([-8, 0, 8])
   });

var object4 = new BIMSURFER.Object(viewer, {
       type: "IfcRoof",
       geometries: [ geometry ],
       matrix: BIMSURFER.math.translationMat4v([8, 0, 8])
   });

// Create an ObjectSet that initially contains one of our Objects

var objectSet = new BIMSURFER.ObjectSet(viewer, {
       objects: [object1 ]
   });

// Apply a Highlight effect to the ObjectSet, which causes the
// Object in the ObjectSet to become highlighted.

var highlight = new BIMSURFER.HighlightEffect(viewer, {
       objectSet: objectSet
   });

// Add a second Object to the ObjectSet, causing the Highlight to now render
// that Object as highlighted also

objectSet.addObjects([object3]);

Boundaries

TODO

Constructor

ObjectSet

(
  • [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 Selection.

    • [objects] Array of String | Object optional

      } Array of Object IDs or instances.

Methods

addAllObjects

()

Adds all Object in the Viewer to this ObjectSet.

Fires an updated event.

addObjectIds

(
  • objects
)

Adds Object by ID to this ObjectSet.

The Object must be in the same Viewer as this ObjectSet.

Fires an updated event.

Parameters:

  • objects Array of String

    Array of Object IDs.

addObjects

(
  • objects
)

Adds Object instances to this ObjectSet.

The Object must be in the same Viewer as this ObjectSet.

Fires an updated event.

Parameters:

  • objects Array of Objects

    Array of Object instances.

addTypes

(
  • objects
)

Adds Object by IFC type to this ObjectSet.

The Object must be in the same Viewer as this ObjectSet.

Fires an updated event.

Parameters:

  • objects Array of String

    Array of IFC types.

clear

()

Removes all Object from this ObjectSet.

Fires an updated event.

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

removeObjectIds

(
  • objects
)

Removes Object by ID from this ObjectSet.

The Object must be in the same Viewer as this ObjectSet.

Fires an updated event.

Parameters:

  • objects Array of String

    Array of Object IDs.

removeObjects

(
  • objects
)

Removes Object instances from this ObjectSet.

The Object must be in the same Viewer as this ObjectSet.

Fires an updated event.

Parameters:

  • objects Array of Objects

    Array of Object instances.

removeTypes

(
  • objects
)

Removes Object by IFC type from this ObjectSet.

The Object must be in the same Viewer as this ObjectSet.

Fires an updated event.

Parameters:

  • objects Array of String

    Array of IFC types.

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

withObjects

(
  • callback
)

Iterates with a callback over the Object in this ObjectSet.

Parameters:

  • callback Function

    Callback called for each Object.

Properties

boundary

The axis-aligned World-space boundary of the Object within this ObjectSet.

center

The World-space center of the Object within this ObjectSet.

className

String final

Inherited from Component but overwritten in src/viewer/objects/objectSet.js:138

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.

numObjects

Number

The number of Objects within this ObjectSet.

objects

String:Object

The Objects within this ObjectSet, mapped to their IDs.

Fires an updated event on change.

viewer

Viewer final

The Viewer that contains this Component.

Events

destroyed

Fired when this Component is destroyed.

updated

Fired whenever Object are added or removed from this ObjectSet.

Note that this event also indicates that the ObjectSet's boundary and center will have updated, accordingly.

Event Payload:

  • e Object

    The event

    • [removed] optional

      Info on removed Objects

      • objectIds Array of String
        IDs of removed Objects, when they were removed by ID
      • types Array of String
        IFC types of removed Objects, when they were removed by IFC type
    • [added] optional

      Info on added Objects

      • objectIds Array of String
        IDs of added Objects, when they were added by ID
      • types Array of String
        IFC types of added Objects, when they were added by IFC type
  • Boolean Object

    [cleared