Creates a DirectShape object and adds it to document. 
   Namespace:   Autodesk.Revit.DB  
  Assembly:   RevitAPI  (in RevitAPI.dll) Version: 18.0.0.0 (18.2.0.0) 
  Since:  2017 
Syntax
| C# | 
|---|
|  | 
| Visual Basic | 
|---|
|  | 
| Visual C++ | 
|---|
|  | 
Parameters
- document
-  Type:  Autodesk.Revit.DB Document  
 Document to which the created element will be added.
- typeId
-  Type:  Autodesk.Revit.DB ElementId  
 Element id of a DirectShapeType element.
- categoryId
-  Type:  Autodesk.Revit.DB ElementId  
 Id of the category assigned to this DirectShape. Must be a valid category id.
- definitionId
-  Type:  System String  
 Id of the shape definition that was created earlier and stored via DirectShapeLibrary.
- trf
-  Type:  Autodesk.Revit.DB Transform  
 Transform to be applied to the definition.
Return Value
The created DirectShape object.Remarks
 This function is included for convenience. It essentially combines CreateGeometryInstance and CreateElement. The shape stored in the element is either a reference or a copy of a definition shape that was created earlier. How the definitions are stored will determine whether an instance or a copy of the shape will be created. The intended use is to support a definition/instance pattern common in CAD formats - DWG blocks, STEP MAPPED_ITEM, IFC IfcMappedItem. Use DirectShapeLibrary class to store definitions prior to using them here. 
 Exceptions
| Exception | Condition | 
|---|---|
| Autodesk.Revit.Exceptions ArgumentException | Document document may not contain DirectShape or DirectShapeType objects. -or- Element id categoryId may not be used as a DirectShape category. | 
| Autodesk.Revit.Exceptions ArgumentNullException | A non-optional argument was NULL |