调整代码
This commit is contained in:
59
ShrlAlgoToolkit.RevitAddins/DrawSheet/AdaptiveMEPTagCmd.cs
Normal file
59
ShrlAlgoToolkit.RevitAddins/DrawSheet/AdaptiveMEPTagCmd.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using Autodesk.Revit.Attributes;
|
||||
using Autodesk.Revit.DB;
|
||||
using Nice3point.Revit.Toolkit.External;
|
||||
|
||||
using ShrlAlgoToolkit.RevitAddins.RvView;
|
||||
using ShrlAlgoToolkit;
|
||||
using ShrlAlgoToolkit.RevitAddins;
|
||||
|
||||
namespace ShrlAlgoToolkit.RevitAddins.DrawSheet;
|
||||
|
||||
[Transaction(TransactionMode.Manual)]
|
||||
public class AdaptiveMEPTagCmd : ExternalCommand
|
||||
{
|
||||
public override void Execute()
|
||||
{
|
||||
try
|
||||
{
|
||||
var tags = UiDocument.SelectObjects<IndependentTag>();
|
||||
var toRotate = new List<IndependentTag>();
|
||||
var toDelete = new List<ElementId>();
|
||||
foreach (var tag in tags)
|
||||
{
|
||||
var mep = Document.GetElement(tag.TaggedElementId.HostElementId);
|
||||
var loc = mep.Location as LocationCurve;
|
||||
var c = loc.Curve.Length < 2;
|
||||
if (c || Math.Abs((loc.Curve as Line).Direction.Z) > 0.2)
|
||||
{
|
||||
toDelete.Add(tag.Id);
|
||||
continue;
|
||||
}
|
||||
if (loc.Curve is Line l)
|
||||
{
|
||||
var ra = l.Direction.AngleTo(XYZ.BasisX);
|
||||
if (ra > Math.PI / 4 && ra < Math.PI / 4 * 3)
|
||||
{
|
||||
toRotate.Add(tag);
|
||||
}
|
||||
}
|
||||
}
|
||||
Document.Invoke(
|
||||
_ =>
|
||||
{
|
||||
foreach (var item in toRotate)
|
||||
{
|
||||
item.TagOrientation = TagOrientation.Vertical;
|
||||
}
|
||||
Document.Delete(toDelete);
|
||||
}, "旋转标注");
|
||||
}
|
||||
catch (Autodesk.Revit.Exceptions.OperationCanceledException)
|
||||
{
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user