64 lines
2.0 KiB
C#
64 lines
2.0 KiB
C#
using System.Drawing;
|
|
using System.Timers;
|
|
|
|
using Autodesk.Revit.Attributes;
|
|
using Autodesk.Revit.DB;
|
|
using Autodesk.Revit.UI;
|
|
|
|
using Nice3point.Revit.Toolkit.External;
|
|
using ShrlAlgoToolkit.Core.Assists;
|
|
|
|
namespace ShrlAlgo.Addin.Test;
|
|
|
|
[Transaction(TransactionMode.Manual)]
|
|
[Regeneration(RegenerationOption.Manual)]
|
|
public class TestGDI : ExternalCommand
|
|
{
|
|
private UIView ui;
|
|
/// <summary>
|
|
/// 设置项目基点
|
|
/// </summary>
|
|
/// <param name="position"></param>
|
|
private void SetProjectPosition(XYZ position)
|
|
{
|
|
using Transaction trans = new(Document);
|
|
trans.Start("设置项目基点");
|
|
XYZ p = new();
|
|
|
|
ProjectPosition pp = new(position.X, position.Y, position.Z, 0);
|
|
//设置项目基点
|
|
|
|
Document.ActiveProjectLocation.SetProjectPosition(p, pp);
|
|
trans.Commit();
|
|
}
|
|
public override void Execute()
|
|
{
|
|
|
|
ui = UiDocument.GetOpenUIViews().FirstOrDefault(uiView => uiView.ViewId == UiDocument.ActiveView.Id);
|
|
|
|
var corners = ui.GetZoomCorners();
|
|
//var inptr = HookInptr.FindWindow(null, view.Name);
|
|
//Graphics graphics = Graphics.FromHwnd(inptr);
|
|
|
|
//graphics.RenderingOrigin=
|
|
//Graphics graphics = Graphics.FromHwnd(System.Diagnostics.Process.GetCurrentProcess().Handle);
|
|
System.Timers.Timer timer =
|
|
new(2000)
|
|
{
|
|
Interval = 500,
|
|
Enabled = true
|
|
//AutoReset = true
|
|
};
|
|
timer.Elapsed += Timer_Elapsed;
|
|
}
|
|
|
|
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
|
|
{
|
|
var rectangle = ui.GetWindowRectangle(); //屏幕坐标;原点在右上角
|
|
var graphics = Graphics.FromHwnd(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);
|
|
var p = new System.Drawing.Point(rectangle.Left + 1920, rectangle.Top);
|
|
var p1 = new System.Drawing.Point(rectangle.Right + 1920, rectangle.Bottom);
|
|
GdiAssist.DrawLine(graphics, p, p1);
|
|
}
|
|
}
|