修复bug和新增部分功能
This commit is contained in:
64
RvAddinTest/TestGDI.cs
Normal file
64
RvAddinTest/TestGDI.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using System.Drawing;
|
||||
using System.Timers;
|
||||
|
||||
using Autodesk.Revit.Attributes;
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI;
|
||||
|
||||
using Nice3point.Revit.Toolkit.External;
|
||||
|
||||
using Sai.Toolkit.Core.Helpers;
|
||||
|
||||
namespace RvAddinTest;
|
||||
|
||||
[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);
|
||||
GdiHelper.DrawLine(graphics, p, p1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user