Create Method


Places a tag on an element or subelement.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 18.0.0.0 (18.0.0.420)
Since: 2018

Syntax

C#
public static IndependentTag Create(
	Document document,
	ElementId ownerDBViewId,
	Reference referenceToTag,
	bool addLeader,
	TagMode tagMode,
	TagOrientation tagOrientation,
	XYZ pnt
)
Visual Basic
Public Shared Function Create ( _
	document As Document, _
	ownerDBViewId As ElementId, _
	referenceToTag As Reference, _
	addLeader As Boolean, _
	tagMode As TagMode, _
	tagOrientation As TagOrientation, _
	pnt As XYZ _
) As IndependentTag
Visual C++
public:
static IndependentTag^ Create(
	Document^ document, 
	ElementId^ ownerDBViewId, 
	Reference^ referenceToTag, 
	bool addLeader, 
	TagMode tagMode, 
	TagOrientation tagOrientation, 
	XYZ^ pnt
)

Parameters

document
Type: Autodesk.Revit.DB Document
The document to which the tag will be added.
ownerDBViewId
Type: Autodesk.Revit.DB ElementId
The view in which the tag will be visible.
referenceToTag
Type: Autodesk.Revit.DB Reference
The host reference of the tag. The reference can be to an element or subelement in a local or linked document.
addLeader
Type: System Boolean
When true, the tag will be created with a straight leader with an attached end.
tagMode
Type: Autodesk.Revit.DB TagMode
This argument determines the type of tag that will be created. Tag by category, multi-category tag, and material tag are allowed.
tagOrientation
Type: Autodesk.Revit.DB TagOrientation
The orientation of the tag's head.
pnt
Type: Autodesk.Revit.DB XYZ
For tags without leaders, this point is the position of the tag head. For tags with leaders, this point is the end point of the leader, and a leader of default length will be created from this point to the tag head.

Return Value

If successful the new tag is returned.

Remarks

Single category tags, multi-category tags and material tags can be placed.

Examples

Copy C#
private IndependentTag CreateIndependentTag(Autodesk.Revit.DB.Document document, Wall wall)
{
    // make sure active view is not a 3D view
    Autodesk.Revit.DB.View view = document.ActiveView;

    // define tag mode and tag orientation for new tag
    TagMode tagMode = TagMode.TM_ADDBY_CATEGORY;
    TagOrientation tagorn = TagOrientation.Horizontal;

    // Add the tag to the middle of the wall
    LocationCurve wallLoc = wall.Location as LocationCurve;
    XYZ wallStart = wallLoc.Curve.GetEndPoint(0);
    XYZ wallEnd = wallLoc.Curve.GetEndPoint(1);
    XYZ wallMid = wallLoc.Curve.Evaluate(0.5, true);
    Reference wallRef = new Reference(wall);

    IndependentTag newTag = IndependentTag.Create(document, view.Id,  wallRef, true, tagMode, tagorn, wallMid);
    if (null == newTag)
    {
        throw new Exception("Create IndependentTag Failed.");
    }

    // newTag.TagText is read-only, so we change the Type Mark type parameter to 
    // set the tag text.  The label parameter for the tag family determines
    // what type parameter is used for the tag text.

    WallType type = wall.WallType;

    Parameter foundParameter = type.LookupParameter("Type Mark");
    bool result = foundParameter.Set("Hello");

    // set leader mode free
    // otherwise leader end point move with elbow point

    newTag.LeaderEndCondition = LeaderEndCondition.Free;
    XYZ elbowPnt = wallMid + new XYZ(5.0, 5.0, 0.0);
    newTag.LeaderElbow = elbowPnt;
    XYZ headerPnt = wallMid + new XYZ(10.0, 10.0, 0.0);
    newTag.TagHeadPosition = headerPnt;

    return newTag;
}
Copy VB.NET
Private Function CreateIndependentTag(document As Autodesk.Revit.DB.Document, wall As Wall) As IndependentTag
      ' make sure active view is not a 3D view
      Dim view As Autodesk.Revit.DB.View = document.ActiveView

      ' define tag mode and tag orientation for new tag
      Dim tagMode__1 As TagMode = TagMode.TM_ADDBY_CATEGORY
      Dim tagorn As TagOrientation = TagOrientation.Horizontal

      ' Add the tag to the middle of the wall
      Dim wallLoc As LocationCurve = TryCast(wall.Location, LocationCurve)
      Dim wallStart As XYZ = wallLoc.Curve.GetEndPoint(0)
      Dim wallEnd As XYZ = wallLoc.Curve.GetEndPoint(1)
      Dim wallMid As XYZ = wallLoc.Curve.Evaluate(0.5, True)
   Dim WallRef As Reference = New Reference(wall)

   Dim newTag As IndependentTag = IndependentTag.Create(document, view.Id, wallRef, True, tagMode__1, tagorn, wallMid)
      If newTag Is Nothing Then
          Throw New Exception("Create IndependentTag Failed.")
      End If

      ' newTag.TagText is read-only, so we change the Type Mark type parameter to 
      ' set the tag text.  The label parameter for the tag family determines
      ' what type parameter is used for the tag text.


      Dim type As WallType = wall.WallType

      Dim foundParameter As Parameter = type.LookupParameter("Type Mark")
      Dim result As Boolean = foundParameter.[Set]("Hello")

      ' set leader mode free
      ' otherwise leader end point move with elbow point


      newTag.LeaderEndCondition = LeaderEndCondition.Free
      Dim elbowPnt As XYZ = wallMid + New XYZ(5.0, 5.0, 0.0)
      newTag.LeaderElbow = elbowPnt
      Dim headerPnt As XYZ = wallMid + New XYZ(10.0, 10.0, 0.0)
      newTag.TagHeadPosition = headerPnt

      Return newTag
  End Function

Exceptions

Exception Condition
Autodesk.Revit.Exceptions ArgumentException The ElementId ownerDBViewId does not correspond to a View. -or- The ElementId ownerDBViewId is a view template. -or- The ElementId ownerDBViewId is a perspective view. -or- The 3D view ownerDBViewId is not locked. -or- The reference can not be tagged.
Autodesk.Revit.Exceptions ArgumentNullException A non-optional argument was NULL
Autodesk.Revit.Exceptions ArgumentOutOfRangeException A value passed for an enumeration argument is not a member of that enumeration
Autodesk.Revit.Exceptions InternalException Tag creation failed.
Autodesk.Revit.Exceptions InvalidOperationException There is no loaded tag type that can be used when tagging referenceToTag with tagMode.
Autodesk.Revit.Exceptions ModificationForbiddenException The document is in failure mode: an operation has failed, and Revit requires the user to either cancel the operation or fix the problem (usually by deleting certain elements). -or- The document is being loaded, or is in the midst of another sensitive process.
Autodesk.Revit.Exceptions ModificationOutsideTransactionException The document has no open transaction.

See Also