---
title: "init(activity:location:displayName:warmup:blocks:cooldown:)"
framework: workoutkit
role: symbol
role_heading: Initializer
path: "workoutkit/customworkout/init(activity:location:displayname:warmup:blocks:cooldown:)"
---

# init(activity:location:displayName:warmup:blocks:cooldown:)

Create a new custom workout.

## Declaration

```swift
init(activity: HKWorkoutActivityType, location: HKWorkoutSessionLocationType = .unknown, displayName: String? = nil, warmup: WorkoutStep? = nil, blocks: [IntervalBlock] = [], cooldown: WorkoutStep? = nil)
```

## Parameters

- `activity`: The type of activity performed during the workout.
- `location`: The workout session location for the workout.
- `displayName`: The name that the system uses when displaying the workout.
- `warmup`: The warmup step (if any).
- `blocks`: A block of repeating work and recovery steps.
- `cooldown`: The cooldown step (if any).

## See Also

### Creating custom workouts

- [supportsActivity(_:)](workoutkit/customworkout/supportsactivity(_:).md)
- [supportsAlert(_:activity:location:)](workoutkit/customworkout/supportsalert(_:activity:location:).md)
- [supportsGoal(_:activity:location:)](workoutkit/customworkout/supportsgoal(_:activity:location:).md)
