Share

FormattedText.Find Method

Returns a text range identifying the first occurrence of the given string within the text, starting from a given index.


Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 26.1.0.0 (26.1.0.34)

Syntax

C#

public TextRange Find(
	string searchString,
	int startIndex,
	bool matchCase,
	bool matchWholeWord
)

Parameters

searchString  String
The text to search for.
startIndex  Int32
The start index to search within the text.
matchCase  Boolean
True if the case must match when searching the formatted text, false to search in a case-insensitive manner.
matchWholeWord  Boolean
True if the match must be a whole word when searching the formatted text, false otherwise.

Return Value

TextRange
The text range identified.

Exceptions

ExceptionCondition
ArgumentException searchString is an empty string. -or- searchString contains invalid characters such as a newline character.
ArgumentNullException A non-optional argument was null
ArgumentOutOfRangeException The given value for startIndex is negative.

Remarks

Returns an empty text range:
  • if the given string cannot be found in the text.
  • if the given start index is beyond the length of the entire text.
The search can be case-sensitive or case-insensitive. The search can be set to match whole words or part of words.

Example

C#

#region Autodesk.Revit.DB.FormattedText.#ctor(System.String)
public void ReformatText(TextNote textNote, string textToChange)
{
    String plainText = textNote.Text;
    FormattedText formattedText = new FormattedText(plainText);

    TextRange foundRange = formattedText.Find(textToChange, 0, false, true);
    while (foundRange.Length > 0)
    {
        formattedText.SetBoldStatus(foundRange, true);
        foundRange = formattedText.Find(textToChange, foundRange.End, false, true);
    }

    textNote.SetFormattedText(formattedText);
}
#endregion

VB

#Region "Autodesk.Revit.DB.FormattedText.#ctor(System.String)"
        Public Sub ReformatText(textNote As TextNote, textToChange As String)
            Dim plainText As [String] = textNote.Text
            Dim formattedText As New FormattedText(plainText)

            Dim foundRange As TextRange = formattedText.Find(textToChange, 0, False, True)
            While foundRange.Length > 0
                formattedText.SetBoldStatus(foundRange, True)
                foundRange = formattedText.Find(textToChange, foundRange.[End], False, True)
            End While

            textNote.SetFormattedText(formattedText)
        End Sub
#End Region

See Also

Reference

Was this information helpful?