> For the complete documentation index, see [llms.txt](https://bimwhale.gitbook.io/bim-whale/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bimwhale.gitbook.io/bim-whale/getting-started/example/config.md).

# Config

## Required entities

The first thing we are going to configure is the required entities. These three should do fine.&#x20;

```javascript
var requiredEntities = {
    IFCPROPERTYSINGLEVALUE: "IfcPropertySingleValue",
    IFCRELDEFINESBYPROPERTIES: "IfcRelDefinesByProperties",
    IFCPROPERTYSET: "IfcPropertySet",
};
```

{% hint style="danger" %}
**Notice how the object is structured.**\
\
The **key** must be in uppercase. The **value** can have any form.
{% endhint %}

## Selected Entities

There's no need to get all `IfcEntities`. Let's specify which entities we want.

```javascript
var selectedEntities = {
    IFCDOOR: "IfcDoor",
    IFCWALLSTANDARDCASE: "IfcWallStandardCase",
};
```

{% hint style="warning" %}
Our sample file has only **a door** and **a wall**.\
It would be unnecessary to try to get the roofs, floors, windows, etc.
{% endhint %}

A list of common Ifc Entites can be found here:

{% embed url="<https://standards.buildingsmart.org/IFC/RELEASE/IFC2x3/TC1/HTML/ifcsharedbldgelements/entities.htm>" %}

## Selected Property Set

Also, there's no need to get all `Property Sets`. Let's specify which we want. Leave the array blank to include all `Property Sets`.

```javascript
var selectedPropertySets = ["Custom_Pset"];
```

{% hint style="danger" %}
**Notice how the object is structured.**&#x20;

This is an array, not an object.
{% endhint %}

## All Entities

```javascript
var allEntities = {
    ...requiredEntities,
    ...selectedEntities,
};
```

{% hint style="info" %}
The [spread operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax) can be used to join the two arrays
{% endhint %}

## Config Object

Our final `config object` is constructed as:

```javascript
var config = {
    requiredEntities,
    selectedEntities,
    selectedPropertySets,
    allEntities
};
```
