Как получить текстовое значение и XY координаты всех указателей мультивыноски с помощью C# ?
/// <summary>
/// Куда указывает первая стрелка. Может вернуть Point3dExt.NanPoint
/// </summary>
/// <param name="ml"></param>
public static Point3d
FirstArrow(this MLeader ml)
{
int index = ml.FirstArrowIndex();
if (index < 0) return Point3dExt.Null;
return ml.GetFirstVertex(index);
}
/// <summary>
/// Куда указывают все стрелки. Может вернуть пустой список
/// </summary>
/// <param name="ml"></param>
public static List<Point3d>
Arrows(this MLeader ml)
{
if (ml is null || ml.IsErased) return new List<Point3d>();
ArrayList arr = ml.GetLeaderIndexes();
if (arr.Count == 0) return new List<Point3d>(); //можно нарисовать MLeader вообще без стрелок!
List<Point3d> ret = new(arr.Count);
foreach (object i in arr)
{
ArrayList arr1 = ml.GetLeaderLineIndexes((int)i);
if (arr1.Count == 0) continue;
foreach (object j in arr1)
ret.Add(ml.GetFirstVertex((int)j));
}
return ret;
}
/// <summary>
/// Получить текст из текстовой выноски или из единственного атрибута блока
/// </summary>
public static string
GetContents(this MLeader ml, bool fieldCodes, Transaction tr)
{
if (ml.ContentType == ContentType.BlockContent)
return ml.GetBlockAttribute("", fieldCodes, tr);
if (ml.HasContent() && ml.ContentType == ContentType.MTextContent)
try
{
using MText mt = ml.MText; // бывает InvalidOperationException
if (fieldCodes) return mt?.GetMTextWithFieldCodes() ?? "";
return mt?.Text ?? "";
}
catch { }
return "";
}
А что вы стесняетесь спрашивать в новой теме? Ваш вопрос не по C#, а по API - поднимайте новую тему, не делайте бардак.