# create_point_cloud_spatial

## nominal.experimental.spatial.create_point_cloud_spatial(client, name, *, metadata, description=None, labels=(), properties=None, markings=None)

Create an empty spatial, ready to have a point cloud added to it.

The spatial reserves the model that will hold its data; add the data with
[`Spatial.add_point_cloud_csv`](https://dev.nominal.io/python/ref/generated/nominal.experimental.spatial.Spatial.md#nominal.experimental.spatial.Spatial.add_point_cloud_csv "nominal.experimental.spatial.Spatial.add_point_cloud_csv"). The time range it covers is not set here:
`add_point_cloud_csv` measures it from the point cloud’s own time column.

Parameters:
:   - **client** ([*NominalClient*](https://dev.nominal.io/python/ref/generated/nominal.core.NominalClient.md#nominal.core.NominalClient "nominal.core.client.NominalClient"))

      Client to create the spatial with.
    - **name** ([*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)"))

      Human-readable name for the spatial.
    - **metadata** ([*PointCloudMetadata*](https://dev.nominal.io/python/ref/generated/nominal.experimental.spatial.PointCloudMetadata.md#nominal.experimental.spatial.PointCloudMetadata "nominal.experimental.spatial._spatial.PointCloudMetadata"))

      Point-cloud metadata, e.g. `PointCloudMetadata(sensor_model=...)`.
    - **description** ([*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)") *|* *None*)

      Optional description.
    - **labels** ([*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.15)")*[*[*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)")*]*)

      Labels to apply.
    - **properties** ([*Mapping*](https://docs.python.org/3/library/typing.html#typing.Mapping "(in Python v3.15)")*[*[*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)")*,* [*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)")*]* *|* *None*)

      Key-value properties to apply.
    - **markings** ([*Sequence*](https://docs.python.org/3/library/typing.html#typing.Sequence "(in Python v3.15)")*[*[*Marking*](https://dev.nominal.io/python/ref/generated/nominal.core.Marking.md#nominal.core.Marking "nominal.core.marking.Marking") *|* [*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)")*]* *|* *None*)

      If present, markings (or marking RIDs) applied to the spatial. Sent as part of
      the creation request rather than applied in a follow-up call. Without any, the
      spatial is visible to everyone in the workspace.

Returns:
:   The created spatial.

Raises:
:   [**NominalError**](https://dev.nominal.io/python/ref/generated/nominal.exceptions.NominalError.md#nominal.exceptions.NominalError "nominal.exceptions.NominalError") – Error resolving the workspace or creating the spatial via gRPC.

Return type:
:   [*Spatial*](https://dev.nominal.io/python/ref/generated/nominal.experimental.spatial.Spatial.md#nominal.experimental.spatial.Spatial "nominal.experimental.spatial._spatial.Spatial")
