# ICommonComponentTable<T> interface

Namespace: [Rhino.FileIO](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.fileio.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
public interface ICommonComponentTable<T> : IReadOnlyCollection<T>, ICollection<T>
```

Provides methods to use all File3dm and RhinoDoc tables under the same contract. Do not derive from this interface. This is to ensure all tables can be used with the same method list.

**Type parameters:**

- `T` (where ModelComponent)

**Derived types:** [CommonComponentTable<T>](https://developer.rhino3d.com/api/rhinocommon/type/rhino.fileio.commoncomponenttable-1.md), [ManifestTable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.fileio.manifesttable.md)

## Properties

- [ComponentType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.fileio.icommoncomponenttable-1/componenttype.md): Returns the model component type the table handles.

## Methods

- [FindId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.fileio.icommoncomponenttable-1/findid.md): Retrieves an object based on ID. You should prefer ID search over Index search.
- [FindNameHash](https://developer.rhino3d.com/api/rhinocommon/type/rhino.fileio.icommoncomponenttable-1/findnamehash.md): Retrieves an object based on Name.
