添加项目文件。
This commit is contained in:
63
Szmedi.RvKits/Display/OverrideElementsCmd.cs
Normal file
63
Szmedi.RvKits/Display/OverrideElementsCmd.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
|
||||
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) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user