Add a definition to be reused by instances. Adding a definition type will change how the instances are created. When asked to create a definition, the library object will look for a corresponding type object. If one is found, it will create an instance of geometry stored in the type object. If it is not found, the library will look for a list of geometry objects stored as definition, and will copy and transform these to create an instance. 
   Namespace:   Autodesk.Revit.DB  
  Assembly:   RevitAPI  (in RevitAPI.dll) Version: 2015.0.0.0 (2015.0.0.0) 
  Since:  2015 
Syntax
| C# | 
|---|
   |  
| Visual Basic | 
|---|
   |  
| Visual C++ | 
|---|
   |  
Parameters
- id
 -  Type:  System String  
ID of the definition to be added. Must be unique. 
- typeId
 -  Type:  Autodesk.Revit.DB ElementId  
Element id of the DirectShapeType element that will be used as a definition. 
Exceptions
| Exception | Condition | 
|---|---|
| Autodesk.Revit.Exceptions ArgumentNullException | A non-optional argument was NULL |