Interface CreateParams_Worker

Params for creating BCF topic inside a worker.

N.B: This is used to create a single topic, not the entire file.

Hierarchy

Properties

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

cameraDirection: [number, number, number] = Vector3TupleSchema
cameraUpVector: [number, number, number] = Vector3TupleSchema
cameraViewPoint: [number, number, number] = Vector3TupleSchema
comments: {
    author: string;
    comment?: string;
    date: string;
    modifiedAuthor?: string;
    modifiedDate?: string;
    uuid: string;
    viewpoint?: string;
}[] = ...

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

Type declaration

  • author: string

    Comment author.

  • Optional comment?: string

    The comment text, must not be empty if provided.

  • date: string

    Date of the comment

  • Optional modifiedAuthor?: string

    The author who modified the comment.

  • Optional modifiedDate?: string

    The date when comment was modified.

  • 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.

  • Optional viewpoint?: string

    Back reference to the viewpoint GUID.

components: {
    coloring: ({ uuid: string; color: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; })[];
    selection: ({ uuid: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; })[];
    uuid: string;
    visibility: { uuid: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; defaultVisibility: boolean; viewSetupHints: { ...; }; };
}[] = ...

Type declaration

  • coloring: ({ uuid: string; color: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; })[]

    The Coloring element allows specifying the color of components. For each color a list of components to be displayed with the that color should be provided.

    The color is given in ARGB format. Colors are represented as 6 or 8 hexadecimal digits. If 8 digits are present, the first two represent the alpha (transparency) channel. For example, 40E0D0 would be the color Turquoise. More information about the color format can be found on Wikipedia.

    Optimization Rules

    BCF is suitable for coloring a few components. A huge list of components causes poor performance. All clients should follow this rule:

    • If the size of colored components is huge (over 1000 components), alert the user and ask them to reduce the number of colored components.
  • selection: ({ uuid: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; })[]

    The Selection element lists all components that should be selected (highlighted) when displaying a viewpoint.

    BCF is suitable for selecting a few components. A huge list of selected components causes poor performance. All clients should follow this rule:

    If the size of the selected components is huge (over 1000 components), alert the user and ask them to reduce the number of selected components.

  • 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.

  • visibility: { uuid: string; components: { uuid: string; ifcGuid?: string | undefined; originatingSystem?: string | undefined; authoringToolId?: string | undefined; }[]; defaultVisibility: boolean; viewSetupHints: { ...; }; }

    The Visibility element decides which objects are visible and which are hidden.

    Element/Attribute Optional Description
    DefaultVisibility Yes Boolean. Defaults to false
    • When true, all components should be visible unless listed in the exceptions
    • When false all components should be invisible unless listed in the exceptions
    Exceptions Yes A list of components to hide when DefaultVisibility=true or to show when DefaultVisibility=false
    ViewSetupHints Yes Boolean flags to allow fine control over the visibility of spaces, space boundaries and openings. A typical use of these flags is when DefaultVisibility=true but spaces, spaces boundaries and openings should remain hidden.
    All flags default to false
    • SpacesVisible - same as DefaultVisibility but restricted to spaces only
    • SpaceBoundariesVisible - same as DefaultVisibility but restricted to space boundaries only
    • OpeningsVisible - same as DefaultVisibility but restricted to openings only

    Optimization Rules

    BCF is suitable for hiding/showing a few components. A huge list of hidden/shown components causes poor performance. When encoding a viewpoint follow these rules:

    • If the list of hidden components is smaller than the list of visible components: set DefaultVisibility to true and put the hidden components in exceptions.
    • If the list of visible components is smaller or equals the list of hidden components: set default_visibility to false and put the visible components in exceptions.
    • If the size of exceptions is huge (over 1000 components), alert the user and ask them to alter the visibility to allow efficient encoding.
    • For spaces, space boundaries and openings follow the following guideline (using spaces as an example): When a viewpoint has no visible spaces, set the value of SpacesVisible to false. If there are any spaces visible in the viewpoint, set the value to be the same as DefaultVisibility and follow the optimization rules above while treating spaces like any other component
    Applying Visibility

    The visibility is applied in following order:

    1. Apply the DefaultVisibility
    2. Apply the ViewSetupHints
    3. Apply the Exceptions
    Example

    Consider the viewpoint provided below.

    1. Applying DefaultVisibility="false" hides all objects
    2. Applying SpacesVisible="true" shows all space
    3. Applying Exceptions
      1. Inverting the Wall visibility makes it visible
      2. Interting the Space visibility makes it invisible

    In summary, after applying the following viewpoint:

    1. All spaces are visible except one space which is hidden
    2. All the other objects are hidden except for one wall which is visible
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.

description?: string = ...

Description of the topic.

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.

header: {
    date?: string;
    fileName?: string;
    ifcProject?: string;
    ifcSpatialStructureElement?: string;
    isExternal?: boolean;
    reference?: string;
}

Type declaration

  • Optional date?: string

    Date of the BIM file. For IFC files this is the second entry of the FILE_NAME entry in the IFC file's header. When the timestamp given in the header does not provide timezone, it is interpreted as UTC.

  • Optional fileName?: string

    The BIM file related to this topic. For IFC files this is the first item in the FILE_NAME entry in the IFC file's header.

  • Optional ifcProject?: string

    IfcGuid Reference to the project to which this topic is related in the IFC file

  • Optional ifcSpatialStructureElement?: string

    IfcGuid Reference to the spatial structure element, e.g. IfcBuildingStorey, to which this topic is related.

  • Optional isExternal?: boolean

    Is the IFC file external or within the bcfzip. (Default = true).

  • Optional reference?: string

    URI to IfcFile.
    IsExternal=false “..\example.ifc“ (within bcfzip)
    IsExternal=true “https://.../example.ifc“

index: number
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

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: {
    index: number;
    snapshot: string;
    snapshotImage: string;
    uuid: string;
    viewpoint: string;
}[] = ...

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.

Type declaration

  • index: number

    Parameter for sorting.

  • snapshot: string

    Filename of the snapshot (png or jpeg).

  • snapshotImage: string

    The image data of the snapshot.

    Not a part of the BCF spec, used internally.

  • 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.

  • viewpoint: string

    Filename of the viewpoint (.bcfv).

Generated using TypeDoc