更新
This commit is contained in:
@@ -27,7 +27,7 @@ public class ExportSchedulesCmd : ExternalCommand
|
||||
if (selectedPath == null || !Directory.Exists(selectedPath))
|
||||
{
|
||||
//var manager = new NotificationMessageManager();
|
||||
//manager.CreateMessage().Accent("#1751C3").Background("#333").HasBadge("净高").HasMessage("未选择文件夹").Queue();
|
||||
//manager.CreateMessage().Primary("#1751C3").Background("#333").HasBadge("净高").HasMessage("未选择文件夹").Queue();
|
||||
Result = Result.Cancelled;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Windows;
|
||||
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI;
|
||||
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
|
||||
using Nice3point.Revit.Toolkit.External.Handlers;
|
||||
|
||||
|
||||
@@ -118,32 +121,50 @@ public partial class SectionBoxControllerViewModel : ObservableObject
|
||||
{
|
||||
return;
|
||||
}
|
||||
var boundingBox = elements[0].get_BoundingBox(view3D);
|
||||
var maxX = boundingBox.Max.X;
|
||||
var maxY = boundingBox.Max.Y;
|
||||
var maxZ = boundingBox.Max.Z;
|
||||
var minX = boundingBox.Min.X;
|
||||
var minY = boundingBox.Min.Y;
|
||||
var minZ = boundingBox.Min.Z;
|
||||
foreach (var elem in elements)
|
||||
{
|
||||
var box = elem.get_BoundingBox(view3D);
|
||||
maxX = Math.Max(box.Max.X, maxX);
|
||||
maxY = Math.Max(box.Max.Y, maxY);
|
||||
maxZ = Math.Max(box.Max.Z, maxZ);
|
||||
minX = Math.Min(box.Min.X, minX);
|
||||
minY = Math.Min(box.Min.Y, minY);
|
||||
minZ = Math.Min(box.Min.Z, minZ);
|
||||
}
|
||||
XYZ gmax = XYZ.Zero;
|
||||
XYZ gmin = XYZ.Zero;
|
||||
|
||||
if (!boundingBox.Enabled)
|
||||
{
|
||||
MessageBox.Show("当前三维剖面框不可用", "错误");
|
||||
}
|
||||
doc.InvokeSub(
|
||||
sub =>
|
||||
{
|
||||
//var boundingBox = elements[0].get_BoundingBox(view3D);
|
||||
//var maxX = boundingBox.Max.X;
|
||||
//var maxY = boundingBox.Max.Y;
|
||||
//var maxZ = boundingBox.Max.Z;
|
||||
//var minX = boundingBox.Min.X;
|
||||
//var minY = boundingBox.Min.Y;
|
||||
//var minZ = boundingBox.Min.Z;
|
||||
//foreach (var elem in elements)
|
||||
//{
|
||||
// var box = elem.get_BoundingBox(view3D);
|
||||
// maxX = Math.Max(box.Max.X, maxX);
|
||||
// maxY = Math.Max(box.Max.Y, maxY);
|
||||
// maxZ = Math.Max(box.Max.Z, maxZ);
|
||||
// minX = Math.Min(box.Min.X, minX);
|
||||
// minY = Math.Min(box.Min.Y, minY);
|
||||
// minZ = Math.Min(box.Min.Z, minZ);
|
||||
//}
|
||||
var elementIds = elements.Select(e => e.Id).ToList();
|
||||
var g = doc.Create.NewGroup(elementIds);
|
||||
var boundingBox = g.get_BoundingBox(null);
|
||||
gmax = g.get_BoundingBox(null).Max;
|
||||
gmin = g.get_BoundingBox(null).Min;
|
||||
sub.RollBack();
|
||||
if (!boundingBox.Enabled)
|
||||
{
|
||||
MessageBox.Show("当前三维剖面框不可用", "错误");
|
||||
}
|
||||
});
|
||||
|
||||
//var newbox = new BoundingBoxXYZ
|
||||
//{
|
||||
// Max = new XYZ(maxX, maxY, maxZ),
|
||||
// Min = new XYZ(minX, minY, minZ)
|
||||
//};
|
||||
var newbox = new BoundingBoxXYZ
|
||||
{
|
||||
Max = new XYZ(maxX, maxY, maxZ),
|
||||
Min = new XYZ(minX, minY, minZ)
|
||||
Max = gmax,
|
||||
Min = gmin
|
||||
};
|
||||
//XYZ origin = new XYZ(0, 0, 0);
|
||||
//XYZ axis = new XYZ(0, 0, 1);
|
||||
|
||||
Reference in New Issue
Block a user