Places a tag on an element or subelement.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 26.4.0.0 (26.4.0.0)
Syntax
C#
public static IndependentTag Create(
Document document,
ElementId ownerDBViewId,
Reference referenceToTag,
bool addLeader,
TagMode tagMode,
TagOrientation tagOrientation,
XYZ pnt
)
Parameters
- document Document
-
The document to which the tag will be added.
- ownerDBViewId ElementId
-
The view in which the tag will be visible.
- referenceToTag Reference
-
The host reference of the tag. The reference can be to an element or subelement in a local or linked document.
- addLeader Boolean
-
When true, the tag will be created with a straight leader with an attached end.
- tagMode TagMode
-
This argument determines the type of tag that will be created. Tag by category, multi-category tag, and material tag are allowed.
- tagOrientation TagOrientation
-
The orientation of the tag's head.
- pnt 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
IndependentTag
If successful the new tag is returned.
Exceptions
| Exception | Condition |
|---|
| 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.
|
| ArgumentNullException |
A non-optional argument was null
|
| ArgumentOutOfRangeException |
A value passed for an enumeration argument is not a member of that enumeration
|
| InternalException |
Tag creation failed.
|
| InvalidOperationException |
There is no loaded tag type that can be used when tagging referenceToTag with tagMode.
|
| 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.
|
| ModificationOutsideTransactionException |
The document has no open transaction.
|
Remarks
Single category tags, multi-category tags and material tags can be placed.
Example
C#
private IndependentTag CreateIndependentTag(Autodesk.Revit.DB.Document document, Wall wall)
{
Autodesk.Revit.DB.View view = document.ActiveView;
TagMode tagMode = TagMode.TM_ADDBY_CATEGORY;
TagOrientation tagorn = TagOrientation.Horizontal;
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.");
}
WallType type = wall.WallType;
Parameter foundParameter = type.LookupParameter("Type Mark");
bool result = foundParameter.Set("Hello");
newTag.LeaderEndCondition = LeaderEndCondition.Free;
XYZ elbowPnt = wallMid + new XYZ(5.0, 5.0, 0.0);
newTag.SetLeaderElbow(wallRef, elbowPnt);
XYZ headerPnt = wallMid + new XYZ(10.0, 10.0, 0.0);
newTag.TagHeadPosition = headerPnt;
newTag.TagOrientation = TagOrientation.AnyModelDirection;
newTag.RotationAngle = Math.PI / 4;
return newTag;
}
VB
Private Function CreateIndependentTag(document As Autodesk.Revit.DB.Document, wall As Wall) As IndependentTag
Dim view As Autodesk.Revit.DB.View = document.ActiveView
Dim tagMode__1 As TagMode = TagMode.TM_ADDBY_CATEGORY
Dim tagorn As TagOrientation = TagOrientation.Horizontal
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
Dim type As WallType = wall.WallType
Dim foundParameter As Parameter = type.LookupParameter("Type Mark")
Dim result As Boolean = foundParameter.[Set]("Hello")
newTag.LeaderEndCondition = LeaderEndCondition.Free
Dim elbowPnt As XYZ = wallMid + New XYZ(5.0, 5.0, 0.0)
newTag.SetLeaderElbow(WallRef, elbowPnt)
Dim headerPnt As XYZ = wallMid + New XYZ(10.0, 10.0, 0.0)
newTag.TagHeadPosition = headerPnt
newTag.TagOrientation = TagOrientation.AnyModelDirection
newTag.RotationAngle = Math.PI / 4
Return newTag
End Function
See Also
Reference