# Customizations

#### Customizing a POST Request

Below is a table outlining the key `settings` you can customize in a POST request:

<table><thead><tr><th width="268.046875">Setting Parameter</th><th width="288.984375">Description</th><th width="176.84375">Type</th><th>Default</th></tr></thead><tbody><tr><td><pre><code>topographyModel
</code></pre></td><td>Includes or excludes the topography model from output</td><td><code>Boolean</code></td><td><code>false</code></td></tr><tr><td><pre><code>disableSurfaceProjection
</code></pre></td><td>Don't project the surface geometry onto the terrain. The parameter will be changed soon in our to support images as the surfaces.</td><td><code>Boolean</code></td><td><code>false</code></td></tr><tr><td><pre><code>defaultRoofType
</code></pre></td><td>Applies a default roof type when the actual type is unknown.</td><td>'flat' | 'hipped' | 'gabled' | 'onion' | 'dome' | 'round' | 'skillion' | 'mansard' | 'quadrupleSaltbox' | 'saltbox' | 'gambrel' | 'pyramidal'</td><td><code>flat</code></td></tr><tr><td><pre><code>defaultLevels
</code></pre></td><td>Applies a default amount of levels the actual data is unknown.</td><td><code>Number</code></td><td><code>1</code></td></tr><tr><td><pre><code>defaultLevelHeight
</code></pre></td><td>Applies a default level height when the actual height is unknown.</td><td><code>Float</code></td><td><code>4</code></td></tr><tr><td><pre><code>topographyReturnType
</code></pre></td><td>Topography type. More info: <a data-mention href="../geometry/topography">topography</a></td><td>'meshes' | 'elevationMap' | 'both'</td><td><code>meshes</code></td></tr><tr><td><pre><code>crs
</code></pre></td><td>Specifies the coordinate reference system for geometry coordinates (e.g., <code>"EPSG:3857"</code> for Web Mercator, <code>"UTM"</code> to get UTM-zone-based coordinates,   <code>"LOCAL"</code> for  meter-based coordinates with a defined origin)</td><td><code>local</code><br><code>EPSG:3857</code><br><code>UTM</code></td><td><code>local</code></td></tr><tr><td><pre><code>geometry
</code></pre></td><td><p>An array specifying the desired geometry type is returned.</p><p></p><p>Supported geometry types are </p><p> <code>buildings</code>  <code>surface</code>  <code>barriers</code>  <code>topography</code>  <code>infrastructure</code>  (or  <code>instances</code> )<br>More detailed information about the geometry types: <a data-mention href="../geometry">geometry</a><br><br>NB. Does not include topography by default. <br></p></td><td><p></p><pre class="language-typescript"><code class="lang-typescript"><strong>Array
</strong></code></pre></td><td><pre><code>[
  'buildings',
  'surface',
  'barriers',
  'instances',
]
</code></pre></td></tr><tr><td><pre><code>upAxis
</code></pre></td><td>Specifies which axis represents the "up" direction in the generated 3D geometry. The parameter ensures that buildings, terrain, and other geometry elements are properly oriented for your target application, preventing the need for manual rotation after import. <br>In the current API version, <code>Y</code> is the default.</td><td><p></p><pre><code>'Y' | 'Z'
</code></pre></td><td><code>Y</code></td></tr><tr><td><pre><code>cropScene
</code></pre></td><td>When provided, the API slices the city model to include only geometry inside the polygon boundary. It might slow down the response by 5-20% depending on the area.</td><td><code>Boolean</code></td><td><code>false</code></td></tr><tr><td><p></p><pre class="language-typescript"><code class="lang-typescript">projectToTopography
</code></pre></td><td>When <code>true</code>, enables terrain projection for geometry (buildings, barriers, surface) without returning topography geometry. Useful when you need buildings to sit on terrain elevations but don't need the terrain mesh in the response.</td><td><code>Boolean</code></td><td></td></tr></tbody></table>

#### Example of settings object

```javascript
settings: {
    defaultRoofType:  "gabled"
    defaultLevels: 2,
    defaultLevelHeight: 4.5,
    geometry: ["buildings", "infrastructure", "barriers"],
    cropScene: true
}
```

{% hint style="success" %}
New!
{% endhint %}

## Export Parameter&#x20;

### Overview

The `export` parameter enables direct export of geometry data to various 3D formats. When provided, the API processes the geometry and returns a download URL instead of the raw geometry JSON.

### Usage

Include the `export` parameter in your request body with a `format` field:

```json
{
  "polygon": [[lat1, lon1], [lat2, lon2], ...],
  "settings": { ... },
  "export": {
    "format": "obj"
  }
}
```

### Supported Formats

The following export formats are supported:

* **`obj`** - Wavefront OBJ format (3D model file)
* **`3dm`** - Rhino 3DM format (CAD file)
* **`skp`** - SketchUp native format (CAD file)

### Response Structure

When the `export` parameter is provided, the API returns:

```json
{
  "downloadUrl": "https://s3.amazonaws.com/bucket/preview-id/exports/file.obj",
  "spatialReference": {
    "crs": "local" | "EPSG:3857" | "UTM",
    "utmZoneEPSG": "EPSG:32633",
    "zoneString": "33N",
    "hemisphere": "north",
    "zone": 33,
    "letter": "T",
  }
}
```

{% hint style="info" %}
More details about supported coordinate systems [coordinate-systems-crs](https://cityweft.gitbook.io/docs/basics/coordinate-systems-crs "mention")
{% endhint %}

#### Response Fields

* **`downloadUrl`** (string): Direct URL to download the exported file. The file is stored in S3 and accessible via this URL.
* **`spatialReference`** (object): Contains coordinate system information:
  * **`crs`** (string): Coordinate Reference System used (`local`, `EPSG:3857`, or `UTM`)
  * **`utmZoneEPSG`** (string, optional): UTM zone EPSG code (e.g., `EPSG:32633`) when CRS is `UTM`
  * **`zoneString`** (string, optional): UTM zone identifier (e.g., `33N`) when CRS is `UTM`
  * **`hemisphere`** (string, optional): Hemisphere (`north` or `south`) when CRS is `UTM`
  * **`zone`** (number, optional): UTM zone number when CRS is `UTM`
  * **`letter`** (string, optional): UTM zone letter when CRS is `UTM`
  * **`origin`** (array, optional): Origin coordinates `[latitude, longitude]` when CRS is `local`

### Notes

* Export processing may take longer than standard geometry requests.&#x20;
* The exported file is temporarily stored in on our servers. Ensure you download it promptly, as files may be cleaned up after a period.
* The `spatialReference` object helps you understand the coordinate system used in the exported file, which is important for correctly importing and using the geometry in your application.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cityweft.gitbook.io/docs/basics/customizations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
