---
title: "Plugin Categories"
canonical: "https://documentation.chaos.com/space/APPSDK/132645400/Plugin%20Categories"
format: markdown
---
Besides its type, a plugin (the scene object) may belong to one or more plugin *category* or *categories* such as being a Light, a Material, a Texture, etc.

The following plugin categories are available in App SDK version 7.0:

`    Bitmap`  
`    BSDF`  
`    GeometricObject`  
`    GeometrySource`  
`    Light`  
`    Material`  
`    RenderChannel`  
`    RenderView`  
`    Settings`  
`    Texture`  
`    TextureFloat`  
`    TextureInt`  
`    TextureMatrix`  
`    TextureTransform`  
`    TextureVector`  
`    UVWGen`  
`    Volumetric`


To get all lights using the categories API:

<details>
<summary>Python</summary>

```
lights = renderer.categories.Light.getInstances()
```
</details>

<details>
<summary>C++</summary>

```
PluginCategories categories;
categories.setLightCategory();
std::vector<Plugin> lights = renderer.getPluginsOfCategories(categories);
```
</details>

<details>
<summary>C#.NET</summary>

```
PluginCategories categories = new PluginCategories();
categories.IsLight = true;
IList<Plugin> lights = renderer.GetPluginsOfCategories(categories);
```
</details>

<details>
<summary>Node.js</summary>

```
var lights = renderer.categories.Light.getInstances();
```
</details>


Or to get all plugins that are both lights and geometric objects:

<details>
<summary>Python</summary>

```
geomLight = renderer.categories.getInstances([renderer.categories.Light, renderer.categories.GeometricObject])
```
</details>

<details>
<summary>C++</summary>

```
PluginCategories categories;
categories.setLightCategory();
categories.setGeometricObject();
std::vector<Plugin> geomLight = renderer.getPluginsOfCategories(categories);
```
</details>

<details>
<summary>C#.NET</summary>

```
PluginCategories categories = new PluginCategories();
categories.IsLight = true;
categories.GeometricObject = true;
IList<Plugin> geomLight = renderer.GetPluginsOfCategories(categories);
```
</details>

<details>
<summary>Node.js</summary>

```
var geomLight = renderer.categories.getInstances([renderer.categories.Light, renderer.categories.GeometricObject]);
```
</details>


Plugin categories can also be useful to identify which plugin (as a source) can be connected to another plugin input parameter. E.g., the plugin parameter definition type (the type you get by obtaining the property meta), besides the other standard V-Ray types like `int`, `Color`, `Matrix`, etc., can also be `Texture`, `TextureFloat`, `TextureInt`, `TextureMatrix`, `TextureTransform`, `TextureVector`, and there are plugins belonging to categories with the same name, and they can be connected to those input parameters.

The GeometrySource plugins serve as a source for some GeometricObject plugins connected to their `geometry` input parameter, etc.