---
title: "Class SmartItem | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/SmartItem/"
---

# Class SmartItem

> **Inheritance:** `System.Object` -> [Aurigma.DesignAtoms.Model.ModelComponent](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md) -> [Aurigma.DesignAtoms.Model.Items.BaseItem](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/BaseItem.md) -> SmartItem

###### **Namespace**: [Aurigma.DesignAtoms.Model.Items](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items.md)

###### **Assembly**: Aurigma.DesignAtoms.Model.dll

```csharp title="Syntax"
public class SmartItem : BaseItem, ICloneable
```

## Implements

* `System.ComponentModel.INotifyPropertyChanged`
* `System.ICloneable`

## Inherited Members

* [Aurigma.DesignAtoms.Model.Items.BaseItem.OnParentContainerChanged()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/BaseItem.md#onparentcontainerchanged)
* [Aurigma.DesignAtoms.Model.Items.BaseItem.Equals(Aurigma.DesignAtoms.Model.Items.BaseItem)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/BaseItem.md#equals)
* [Aurigma.DesignAtoms.Model.Items.BaseItem.ShallowClone()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/BaseItem.md#shallowclone)
* `Aurigma.DesignAtoms.Model.Items.BaseItem.ShallowClone``1(<TItem>)`
* [Aurigma.DesignAtoms.Model.Items.BaseItem.ParentContainer](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/BaseItem.md#parentcontainer)
* [Aurigma.DesignAtoms.Model.Items.BaseItem.Type](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/BaseItem.md#type)
* [Aurigma.DesignAtoms.Model.ModelComponent.UserTagKey](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#usertagkey)
* [Aurigma.DesignAtoms.Model.ModelComponent.WarningTagKey](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#warningtagkey)
* [Aurigma.DesignAtoms.Model.ModelComponent.Tags](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#tags)
* [Aurigma.DesignAtoms.Model.ModelComponent.GenerateId()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#generateid)
* [Aurigma.DesignAtoms.Model.ModelComponent.ToString()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#tostring)
* [Aurigma.DesignAtoms.Model.ModelComponent.Equals(Aurigma.DesignAtoms.Model.ModelComponent)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#equals)
* [Aurigma.DesignAtoms.Model.ModelComponent.GetHashCode()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#gethashcode)
* [Aurigma.DesignAtoms.Model.ModelComponent.Clone(System.Boolean)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#clone)
* [Aurigma.DesignAtoms.Model.ModelComponent.Clone()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#clone)
* [Aurigma.DesignAtoms.Model.ModelComponent.OnPropertyChanged(System.String)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#onpropertychanged)
* [Aurigma.DesignAtoms.Model.ModelComponent.Version](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#version)
* [Aurigma.DesignAtoms.Model.ModelComponent.Id](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#id)
* [Aurigma.DesignAtoms.Model.ModelComponent.Name](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#name)
* [Aurigma.DesignAtoms.Model.ModelComponent.PropertyChanged](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#propertychanged)
* `System.Object.Equals(System.Object,System.Object)`
* `System.Object.ReferenceEquals(System.Object,System.Object)`
* `System.Object.GetType`
* `System.Object.MemberwiseClone`

## Constructors

### SmartItem

```csharp
public SmartItem()
```

## Properties

### BlendMode

```csharp
public BlendMode BlendMode { get; set; }
```

## Methods

### Accept

```csharp
public override Task Accept(ItemVisitor visitor)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.ItemVisitor](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ItemVisitor.md) | *visitor* |  |

##### Returns

`System.Threading.Tasks.Task`

##### Overrides

* [Aurigma.DesignAtoms.Model.Items.BaseItem.Accept(Aurigma.DesignAtoms.Model.ItemVisitor)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/BaseItem.md#accept)

### Accept&lt;T&gt;

```csharp
public override Task<T> Accept<T>(ItemVisitor<T> visitor)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `Aurigma.DesignAtoms.Model.ItemVisitor<<T>>` | *visitor* |  |

##### Returns

`System.Threading.Tasks.Task<<T>>`

##### Overrides

* `Aurigma.DesignAtoms.Model.Items.BaseItem.Accept``1(Aurigma.DesignAtoms.Model.ItemVisitor<<T>>)`

### Equals

```csharp
protected bool Equals(SmartItem other)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Items.SmartItem](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/SmartItem.md) | *other* |  |

##### Returns

`System.Boolean`

### Equals

```csharp
public override bool Equals(object obj)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.Object` | *obj* |  |

##### Returns

`System.Boolean`

##### Overrides

* [Aurigma.DesignAtoms.Model.Items.BaseItem.Equals(System.Object)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.Items/BaseItem.md#equals)

### DeepClone&lt;TItem&gt;

```csharp
public override TItem DeepClone<TItem>(TItem clone = null, bool keepIds = false)
    where TItem : ModelComponent
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `<TItem>` | *clone* |  |
| `System.Boolean` | *keepIds* |  |

##### Returns

`<TItem>`

##### Overrides

* `Aurigma.DesignAtoms.Model.Items.BaseItem.DeepClone``1(<TItem>,System.Boolean)`

## Fields

### SourceDpi

```csharp
public float SourceDpi
```

### SmartObjectDpi

```csharp
public float SmartObjectDpi
```

### SmartObjectRectangle

```csharp
public Rectangle SmartObjectRectangle
```

### SmartObjectSize

```csharp
public Size SmartObjectSize
```

### SmartObjectStorageId

```csharp
public string SmartObjectStorageId
```

### WarpControlPoints

```csharp
public PointF[] WarpControlPoints
```

### ProjectiveTransform

```csharp
public Matrix ProjectiveTransform
```

### VectorMask

```csharp
public Path[] VectorMask
```
