Class Topic

Three.js wrapper for BCF topic.

Use this class to create a new BCF Topic that temporary lives in three.js space.

Hierarchy

  • Topic

Implements

Constructors

Properties

aspectRatio: number
assignedTo: null | string
comments: TopicComment_Three[]
components: THREE.Components[]
creationAuthor: string
creationDate: string
description: string
direction: Vector3Tuple
dueDate: null | string
fieldOfView: number
index: number
modifiedAuthor: string
modifiedDate: string
position: Vector3Tuple
target: Vector3Tuple
title: string
topicStatus: string
topicType: string
uuid: string
viewpoints: THREE.Viewpoint[]

Methods

  • Create topic from JSON string.

    Parameters

    • json: Nullable<{
          aspectRatio: number;
          assignedTo: null | string;
          comments: ({ uuid: string; date: string; author: string; comment?: string | undefined; viewpoint?: string | undefined; modifiedDate?: string | undefined; modifiedAuthor?: string | undefined; })[];
          components: ({ uuid: string; selection: { uuid: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; }[]; visibility: { ...; }; coloring: { ...; }[]; })[];
          creationAuthor: string;
          creationDate: string;
          description?: string;
          direction: [number, number, number];
          dueDate: null | string;
          fieldOfView: number;
          index: number;
          modifiedAuthor: string;
          modifiedDate: string;
          position: [number, number, number];
          target: [number, number, number];
          title: string;
          topicStatus: string;
          topicType: string;
          uuid: string;
          viewpoints: ({ uuid: string; viewpoint: string; snapshot: string; snapshotImage: string; index: number; })[];
      }>

    Returns void

  • Get topic. N.B: It will throw an error if topic is not set.

    Returns {
        aspectRatio: number;
        assignedTo: null | string;
        comments: ({ uuid: string; date: string; author: string; comment?: string | undefined; viewpoint?: string | undefined; modifiedDate?: string | undefined; modifiedAuthor?: string | undefined; })[];
        components: ({ uuid: string; selection: { uuid: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; }[]; visibility: { ...; }; coloring: { ...; }[]; })[];
        creationAuthor: string;
        creationDate: string;
        description?: string;
        direction: [number, number, number];
        dueDate: null | string;
        fieldOfView: number;
        index: number;
        modifiedAuthor: string;
        modifiedDate: string;
        position: [number, number, number];
        target: [number, number, number];
        title: string;
        topicStatus: string;
        topicType: string;
        uuid: string;
        viewpoints: ({ uuid: string; viewpoint: string; snapshot: string; snapshotImage: string; index: number; })[];
    }

    • aspectRatio: number

      Aspect ratio of the perspective camera.

    • assignedTo: null | string

      The user(s) to whom this topic is assigned to. Recommended to be in email format (Predefined list in “extensions.xml”).

      E.g. andre.wisen@gmail.com

      Or, with multiple users: foo@example.com, bar@example.comm, lorem@example.com

    • comments: ({ uuid: string; date: string; author: string; comment?: string | undefined; viewpoint?: string | undefined; modifiedDate?: string | undefined; modifiedAuthor?: string | undefined; })[]

      The markup file can contain comments related to the topic. Their purpose is to record discussion between different parties related to the topic.

    • components: ({ uuid: string; selection: { uuid: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; }[]; visibility: { ...; }; coloring: { ...; }[]; })[]
    • creationAuthor: string

      User who created the topic.

      E.g. andre.wisen@gmail.com.

    • creationDate: string

      Date when the topic was created.

      E.g. 2023-07-03T21:02:50+02:00.

    • Optional description?: string

      Description of the topic.

    • direction: [number, number, number]

      Direction of the camera in local three.js space.

    • dueDate: null | string

      Date until when the topics issue needs to be resolved.

      E.g. 2023-09-19T00:00:00+02:00

      DateTime Format

      DateTime values in this specification are always of type xs:dateTime which is an ISO 8601 compatible YYYY-MM-DDThh:mm:ss format with optional time zone indicators. This is the same format as defined in the BCF-API specification.

      For example, 2016-04-28T16:31:12.270+02:00 would represent Thursday, April 28th, 2016, 16:31:12 (270ms) with a time zone offset of +2 hours relative to UTC. Please note that the colon in the timezone offset is optional, so +02:00 is equivalent to +0200.

      To void ambiguity, this specification steps away from ISO 8601 on the topic of DateTime values with no timezone: The ISO 8601 says that DateTime values with no timezone designator are local times - In BCF all DateTime values with no timezone designator are assumed to be in UTC.

    • fieldOfView: number

      Field of view of the perspective camera.

    • index: number

      Number to maintain the order of the topics. This property is deprecated and will be removed in a future release

    • modifiedAuthor: string

      User who modified the topic. Exists only when Topic has been modified after creation.

      E.g. andre.wisen@gmail.com

    • modifiedDate: string

      Date when the topic was last modified. Exists only when Topic has been modified after creation.

      E.g. 2023-07-03T21:02:50+02:00

    • position: [number, number, number]

      Position of the camera in local three.js space.

    • target: [number, number, number]

      target vector of the camera in local three.js space.

    • title: string

      Title of the topic.

    • topicStatus: string

      Type of the topic.

    • topicType: string

      Type of the topic.

    • uuid: string

      The unique identifier of the entity.

      This is not in the BCF spec, but is used internally. However, when a BCF component requires a GUID, the uuid property is used.

    • viewpoints: ({ uuid: string; viewpoint: string; snapshot: string; snapshotImage: string; index: number; })[]

      The markup file can contain multiple viewpoints related to one or more comments. A viewpoint has also the Guid attribute for identifying it uniquely.

      Viewpoints are immutable, therefore they should never be changed once created. If new comments on a topic require different visualization, new viewpoints should be added.

  • Remove comment from topic.

    Parameters

    • uuid: string

    Returns void

  • Return topic as JSON string.

    Returns {
        aspectRatio: number;
        assignedTo: null | string;
        comments: ({ uuid: string; date: string; author: string; comment?: string | undefined; viewpoint?: string | undefined; modifiedDate?: string | undefined; modifiedAuthor?: string | undefined; })[];
        components: ({ uuid: string; selection: { uuid: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; }[]; visibility: { ...; }; coloring: { ...; }[]; })[];
        creationAuthor: string;
        creationDate: string;
        description?: string;
        direction: [number, number, number];
        dueDate: null | string;
        fieldOfView: number;
        index: number;
        modifiedAuthor: string;
        modifiedDate: string;
        position: [number, number, number];
        target: [number, number, number];
        title: string;
        topicStatus: string;
        topicType: string;
        uuid: string;
        viewpoints: ({ uuid: string; viewpoint: string; snapshot: string; snapshotImage: string; index: number; })[];
    }

    JSON string.

    • aspectRatio: number

      Aspect ratio of the perspective camera.

    • assignedTo: null | string

      The user(s) to whom this topic is assigned to. Recommended to be in email format (Predefined list in “extensions.xml”).

      E.g. andre.wisen@gmail.com

      Or, with multiple users: foo@example.com, bar@example.comm, lorem@example.com

    • comments: ({ uuid: string; date: string; author: string; comment?: string | undefined; viewpoint?: string | undefined; modifiedDate?: string | undefined; modifiedAuthor?: string | undefined; })[]

      The markup file can contain comments related to the topic. Their purpose is to record discussion between different parties related to the topic.

    • components: ({ uuid: string; selection: { uuid: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; }[]; visibility: { ...; }; coloring: { ...; }[]; })[]
    • creationAuthor: string

      User who created the topic.

      E.g. andre.wisen@gmail.com.

    • creationDate: string

      Date when the topic was created.

      E.g. 2023-07-03T21:02:50+02:00.

    • Optional description?: string

      Description of the topic.

    • direction: [number, number, number]

      Direction of the camera in local three.js space.

    • dueDate: null | string

      Date until when the topics issue needs to be resolved.

      E.g. 2023-09-19T00:00:00+02:00

      DateTime Format

      DateTime values in this specification are always of type xs:dateTime which is an ISO 8601 compatible YYYY-MM-DDThh:mm:ss format with optional time zone indicators. This is the same format as defined in the BCF-API specification.

      For example, 2016-04-28T16:31:12.270+02:00 would represent Thursday, April 28th, 2016, 16:31:12 (270ms) with a time zone offset of +2 hours relative to UTC. Please note that the colon in the timezone offset is optional, so +02:00 is equivalent to +0200.

      To void ambiguity, this specification steps away from ISO 8601 on the topic of DateTime values with no timezone: The ISO 8601 says that DateTime values with no timezone designator are local times - In BCF all DateTime values with no timezone designator are assumed to be in UTC.

    • fieldOfView: number

      Field of view of the perspective camera.

    • index: number

      Number to maintain the order of the topics. This property is deprecated and will be removed in a future release

    • modifiedAuthor: string

      User who modified the topic. Exists only when Topic has been modified after creation.

      E.g. andre.wisen@gmail.com

    • modifiedDate: string

      Date when the topic was last modified. Exists only when Topic has been modified after creation.

      E.g. 2023-07-03T21:02:50+02:00

    • position: [number, number, number]

      Position of the camera in local three.js space.

    • target: [number, number, number]

      target vector of the camera in local three.js space.

    • title: string

      Title of the topic.

    • topicStatus: string

      Type of the topic.

    • topicType: string

      Type of the topic.

    • uuid: string

      The unique identifier of the entity.

      This is not in the BCF spec, but is used internally. However, when a BCF component requires a GUID, the uuid property is used.

    • viewpoints: ({ uuid: string; viewpoint: string; snapshot: string; snapshotImage: string; index: number; })[]

      The markup file can contain multiple viewpoints related to one or more comments. A viewpoint has also the Guid attribute for identifying it uniquely.

      Viewpoints are immutable, therefore they should never be changed once created. If new comments on a topic require different visualization, new viewpoints should be added.

Generated using TypeDoc