# Class T8Project<TProduct, TUnit>

Represents a project in the T8 Client Model. A project is the root container that holds the site and overall project information.

#### Example

    const model = readT8ClientModel(buffer);
    const project = model.project;
    console.log(`Project ID: ${project.globalId}`);
    if (project.isIterable()) {
        for (const product of project) { ... }
    }

#### Type Parameters

- TProduct = T8Product<T8EntityType>

  The product type (default: T8Product)

- TUnit = T8Unit

  The unit type (default: T8Unit)

##### Index

### Constructors

constructor

### Properties

aggregates
description?
globalId
localId
name?
propertySets
quantities
type

### Accessors

className
quantitySets

### Methods

isIterable
connect
create

## Constructors

### constructor

- new T8Project<
  TProduct = T8Product<T8EntityType<T8Unit>, T8Unit>,
  TUnit = T8Unit,
  >(
  localId: number,
  globalId: string,
  type: string,
  propertySets: Record<string, T8PropertySet<TUnit>>,
  quantities: Record<string, T8QuantitySet<TUnit>>,
  name?: string,
  description?: string,
  ): T8Project<TProduct, TUnit>

  #### Type Parameters

  - TProduct = T8Product<T8EntityType<T8Unit>, T8Unit>
  - TUnit = T8Unit

  #### Parameters

  - localId: number

    Local numerical identifier within the model

  - globalId: string

    Global unique identifier (GUID)

  - type: string

    Type name (e.g., 'IfcWall', 'IfcDoor')

  - propertySets: Record<string, T8PropertySet<TUnit>>

    Property sets attached to this project

  - quantities: Record<string, T8QuantitySet<TUnit>>

    Quantity sets attached to this project

  - `Optional` name: string

    Optional name of the product

  - `Optional` description: string

    Optional description of the product

  #### Returns T8Project<TProduct, TUnit>

## Properties

### aggregates

aggregates: TProduct[]

The products aggregated by the project (generally on single IfcSite)

### `Optional` description

description?: string

Optional description of the product

### globalId

globalId: string

Global unique identifier (GUID)

### localId

localId: number

Local numerical identifier within the model

### `Optional` name

name?: string

Optional name of the product

### propertySets

propertySets: Record<string, T8PropertySet<TUnit>>

Property sets attached to this project

### quantities

quantities: Record<string, T8QuantitySet<TUnit>>

Quantity sets attached to this project

### type

type: string

Type name (e.g., 'IfcWall', 'IfcDoor')

## Accessors

### className

- get className(): string

  #### Returns string

### quantitySets

- get quantitySets(): Record<string, T8QuantitySet<TUnit>>

  #### Returns Record<string, T8QuantitySet<TUnit>>

## Methods

### isIterable

- isIterable(): this is T8Project<TProduct, TUnit> & IterableT8Project<TProduct>

  #### Returns this is T8Project<TProduct, TUnit> & IterableT8Project<TProduct>

### `Static` connect

- connect<TProduct, TUnit>(
  dto: T8ClientProjectConnectionsDTO<TProduct>,
  project: T8Project<TProduct, TUnit>,
  ): void

  #### Type Parameters

  - TProduct
  - TUnit

  #### Parameters

  - dto: T8ClientProjectConnectionsDTO<TProduct>
  - project: T8Project<TProduct, TUnit>

  #### Returns void

### `Static` create

- create<TProduct, TUnit>(
  dto: T8ClientProjectDTO<TUnit>,
  ): T8Project<TProduct, TUnit>

  #### Type Parameters

  - TProduct
  - TUnit

  #### Parameters

  - dto: T8ClientProjectDTO<TUnit>

  #### Returns T8Project<TProduct, TUnit>