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

# CylinderShape

> A solid cylinder.

## Import

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

**Inheritance:** `extends THREE.Group implements IShape, PlanVectorExportable`

## Constructor

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

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

<ParamField path="options.center" type="[number, number, number]" />

<ParamField path="options.radius" type="number" />

<ParamField path="options.height" type="number" />

<ParamField path="options.deflection" type="number" />

<ParamField path="options.color" type="number" />

<ParamField path="options.placement" type="Placement" />

## Properties

<ResponseField name="ogid" type="string">
  Read-only.
</ResponseField>

<ResponseField name="ogType" type="unknown">
  Read-only.
</ResponseField>

<ResponseField name="subElements2D" type="Map<string, THREE.Object3D<THREE.Object3DEventMap>>" />

<ResponseField name="subElements3D" type="Map<string, THREE.Object3D<THREE.Object3DEventMap>>" />

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

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

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

<ResponseField name="body" type="AnalyticSolid">
  Read-only.
</ResponseField>

<ResponseField name="propertySet" type="CylinderOptions">
  Read-only.
</ResponseField>

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

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

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

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

## Methods

### setOPConfig

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

### getOPConfig

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

### setOPGeometry

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

### setOPMaterial

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

### setOPPlacement

```typescript theme={null}
setOPPlacement(placement: Placement): void;
```

### getBrepSerialized

```typescript theme={null}
getBrepSerialized(): string;
```

### getExportRoots

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

### toDrawing

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

Produce standardized drawing primitives for a view directly from the element's parametric data (the 0.3.0 contract).

### dispose

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

## Types

### PlanVectorExportable

```typescript theme={null}
interface PlanVectorExportable {
  getExportRoots(view: PlanExportView): THREE.Object3D[];
  toDrawing?(view: PlanExportView): DrawingPrimitive[];
}
```

### CylinderOptions

```typescript theme={null}
interface CylinderOptions {
  ogid?: string;
  center: [number, number, number];
  radius: number;
  height: number;
  deflection: number;
  color: number;
  placement: Placement;
}
```

### PlanExportView

```typescript theme={null}
type PlanExportView = 'top' | 'isometric';
```

## Related

* [`DrawingCurvedRegion`](/floorkit/api/drawings/draw-project-view#drawingcurvedregion)
* [`DrawingPrimitive`](/floorkit/api/drawings/draw-project-view#drawingprimitive)
* [`IShape`](/floorkit/api/shapes/cuboid-shape#ishape)
* [`Placement`](/floorkit/api/shapes/cuboid-shape#placement)


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