> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ploterr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# WallOpening

> A plain hole in a wall, with no door or window in it.

## Import

```typescript theme={null}
import { WallOpening } from '@opengeometry/floorkit';
```

**Inheritance:** `extends Opening<ElementType.OPENING> implements IShape, PlanVectorExportable`

## Constructor

```typescript theme={null}
constructor(config?: Partial<WallOpeningOptions>);
```

<ParamField path="config.stationLocal" type="StationLocal">
  Position along the host wall: `alongWall` is the opening's centerline distance from the wall
  start. The sill is `baseHeight`.
</ParamField>

<ParamField path="config.baseHeight" type="number">
  Sill height above the host wall's base. See OpeningOptions.baseHeight.
</ParamField>

<ParamField path="config.width" type="number">
  Clear opening width along the wall.
</ParamField>

<ParamField path="config.height" type="number">
  Clear opening height (sill to head).
</ParamField>

<ParamField path="config.profile" type="&#x22;round&#x22; | &#x22;rectangular&#x22; | &#x22;arched&#x22;">
  Shape of the structural void. A round void uses equal width and height.
</ParamField>

<ParamField path="config.ogid" type="string" />

<ParamField path="config.labelName" type="string" />

<ParamField path="config.type" type="ElementType.OPENING" />

<ParamField path="config.hostWallId" type="string" />

<ParamField path="config.thickness" type="number" />

<ParamField path="config.length" type="number" />

<ParamField path="config.points" type="[number, number][]" />

<ParamField path="config.propertySets" type="PropertySets" />

## Properties

<ResponseField name="propertySet" type="WallOpeningOptions" />

<ResponseField name="labelName" type="string" />

<ResponseField name="hostWallId" type="string | undefined" />

<ResponseField name="station" type="StationLocal" />

<ResponseField name="alongWall" type="number">
  Read-only. Station-based: the authored position along the host wall.
</ResponseField>

<ResponseField name="width" type="number" />

<ResponseField name="height" type="number" />

<ResponseField name="profile" type="&#x22;rectangular&#x22; | &#x22;round&#x22; | &#x22;arched&#x22;" />

<ResponseField name="profileView" type="boolean" />

<ResponseField name="modelView" type="boolean" />

<ResponseField name="holeLoop2D" type="Vector3[]">
  Read-only. Plan-view hole loop (Vector3\[] at Y=0).
</ResponseField>

## Methods

### editableSchema

```typescript theme={null}
static editableSchema(): OPEditableSchema;
```

Self-describing editable surface; a host inspector renders this generically.

### anchorSpace

```typescript theme={null}
anchorSpace(): "local" | "world";
```

A single station handle sliding the opening along its host wall (world space, `alongAxis` along the wall).

### getEditAnchors

```typescript theme={null}
getEditAnchors(): EditAnchor[];
```

### applyEditAnchor

```typescript theme={null}
applyEditAnchor(id: string, position: [
    number,
    number,
    number
], snapRadius?: number): void;
```

### move

```typescript theme={null}
move(delta: Vec3): void;
```

Station-based, so the base `Opening.move` (which walks `points`) does not apply.

### getAnalyticCutBounds

```typescript theme={null}
getAnalyticCutBounds(): AnalyticOpeningCutBounds;
```

Sill height above the host wall's base.

### getOPConfig

```typescript theme={null}
getOPConfig(): WallOpeningOptions;
```

### setOPConfig

```typescript theme={null}
setOPConfig(config: Partial<WallOpeningOptions>): void;
```

### dispose

```typescript theme={null}
dispose(): void;
```

### setOPGeometry

```typescript theme={null}
setOPGeometry(): void;
```

### getExportRoots

```typescript theme={null}
getExportRoots(view: PlanExportView): THREE.Object3D[];
```

Vector-export roots (RFC §7).

### toDrawing

```typescript theme={null}
toDrawing(view: PlanExportView): DrawingPrimitive[];
```

Plan symbol as standardized primitives: the two jambs as solid lines and the head as a hidden-class line (renderers dash hidden edges).

### setOPMaterial

```typescript theme={null}
setOPMaterial(): void;
```

## Types

### WallOpeningOptions

```typescript theme={null}
interface WallOpeningOptions extends OpeningOptions<ElementType.OPENING> {
  stationLocal: StationLocal;
  baseHeight: number;
  width: number;
  height: number;
  profile?: 'rectangular' | 'round' | 'arched';
}
```

## Related

* [`Opening`](/floorkit/api/architecture/opening)
* [`AnalyticOpeningCutBounds`](/floorkit/api/architecture/door#analyticopeningcutbounds)
* [`DrawingPrimitive`](/floorkit/api/drawings/draw-project-view#drawingprimitive)
* [`EditAnchor`](/floorkit/api/architecture/op-element#editanchor)
* [`ElementType`](/floorkit/api/architecture/op-element#elementtype)
* [`IShape`](/floorkit/api/shapes/cuboid-shape#ishape)
* [`OPEditableSchema`](/floorkit/api/architecture/op-element#opeditableschema)
* [`OpeningOptions`](/floorkit/api/architecture/opening#openingoptions)
* [`PlanExportView`](/floorkit/api/shapes/cylinder-shape#planexportview)
* [`PlanVectorExportable`](/floorkit/api/shapes/cylinder-shape#planvectorexportable)
* [`StationLocal`](/floorkit/api/architecture/door#stationlocal)
* [`Vec3`](/floorkit/api/architecture/wall#vec3)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.