64 lines
2.4 KiB
C#
64 lines
2.4 KiB
C#
|
|
|
|||
|
|
using Autodesk.Revit.Attributes;
|
|||
|
|
using Autodesk.Revit.DB;
|
|||
|
|
|
|||
|
|
using Nice3point.Revit.Toolkit.External;
|
|||
|
|
|
|||
|
|
using System;
|
|||
|
|
|
|||
|
|
using System.Linq;
|
|||
|
|
|
|||
|
|
namespace Szmedi.RvKits.DisplayTools
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 修改颜色
|
|||
|
|
/// </summary>
|
|||
|
|
[Transaction(TransactionMode.Manual)]
|
|||
|
|
|
|||
|
|
public class OverrideElementsCmd : ExternalCommand
|
|||
|
|
{
|
|||
|
|
public override void Execute()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
var elems = UiDocument.Selection.PickElementsByRectangle(new GenericFilter<Element>(), "请选择元素");
|
|||
|
|
var pat = new FilteredElementCollector(Document)
|
|||
|
|
.OfClass(typeof(FillPatternElement))
|
|||
|
|
.ToElements()
|
|||
|
|
.Cast<FillPatternElement>()
|
|||
|
|
.Where(pattern =>
|
|||
|
|
{
|
|||
|
|
var fill = pattern.GetFillPattern();
|
|||
|
|
return fill.Target == FillPatternTarget.Drafting
|
|||
|
|
&& fill.HostOrientation == FillPatternHostOrientation.ToView
|
|||
|
|
&& fill.IsSolidFill;
|
|||
|
|
})
|
|||
|
|
.FirstOrDefault();
|
|||
|
|
Document.Invoke(
|
|||
|
|
ts =>
|
|||
|
|
{
|
|||
|
|
foreach (var elem in elems)
|
|||
|
|
{
|
|||
|
|
var overrideGraphicSettings = Document.ActiveView.GetElementOverrides(elem.Id);
|
|||
|
|
overrideGraphicSettings.SetSurfaceTransparency(20);
|
|||
|
|
#if REVIT2018
|
|||
|
|
overrideGraphicSettings.SetProjectionFillColor(new Color(24, 100, 24));
|
|||
|
|
overrideGraphicSettings.SetProjectionFillPatternId(pat.Id); //实体填充
|
|||
|
|
#elif REVIT2020 || REVIT2019
|
|||
|
|
overrideGraphicSettings.SetSurfaceForegroundPatternColor(new Color(24, 100, 24));
|
|||
|
|
overrideGraphicSettings.SetSurfaceForegroundPatternId(pat.Id); //实体填充
|
|||
|
|
#endif
|
|||
|
|
Document.ActiveView.SetElementOverrides(elem.Id, overrideGraphicSettings);
|
|||
|
|
}
|
|||
|
|
//var elemIds = elems.Select(e => e.Id).ToList();
|
|||
|
|
//uidoc.doc.ActiveView.HideElements(elemIds);
|
|||
|
|
},
|
|||
|
|
"修改外观颜色"
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
catch (Autodesk.Revit.Exceptions.OperationCanceledException) { }
|
|||
|
|
catch (Exception) { }
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|