# CreateGroupProvider(SearchProvider, string, int, bool)

> Copy of a search provider to create a new group copy.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor.Search](/engine/6000.5/script-reference/unityeditor/search.md)
* **Assembly:** UnityEditor

```csharp
public static SearchProvider CreateGroupProvider(SearchProvider templateProvider, string groupId, int groupPriority, bool cacheProvider = false)
```

### Parameters

**** (\[SearchProvider]\(/engine/6000.5/script-reference/unityeditor/search/searchprovider)): Search provider template to copy.**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): New group id. This id is also used as the display name for the group tab if displayed in the [ISearchView](/engine/6000.5/script-reference/unityeditor/search/isearchview.md).**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Priority used to order the group tab in the [ISearchView](/engine/6000.5/script-reference/unityeditor/search/isearchview.md).**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Ask the system to cache the provider in case the function gets called with the same ID later.

### Returns

| Type                                                                                   | Description                                                                    |
| -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [SearchProvider](/engine/6000.5/script-reference/unityeditor/search/searchprovider.md) | A new search provider that can be used temporarily for a given search session. |

### Remarks

This can be useful to base a new search provider on an existing one simply by replacing a few handlers. Note that this search provider will not be globally available, in example with [SearchService.GetProvider](/engine/6000.5/script-reference/unityeditor/search/searchservice/getprovider.md).

### Examples

```csharp
static SearchProvider CreateDecalProvider()
{
    var assetProvider = SearchService.GetProvider("asset");
    var decalProvider = SearchUtils.CreateGroupProvider(assetProvider, "Decals", 0, true);
    decalProvider.fetchPropositions = EnumerateDecalPropositions;
    return decalProvider;
}
```
