From 83b846f15f30c2cdea098fb73933edc8ffec2030 Mon Sep 17 00:00:00 2001 From: GG Z <903524121@qq.com> Date: Sun, 22 Dec 2024 10:26:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E9=A1=B9=E5=8A=9F=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RvAddinTest/CADCurveToModelCurveCmd.cs | 107 ++ RvAddinTest/CorrectSlope.cs | 33 +- RvAddinTest/CreateWindow.xaml | 25 + RvAddinTest/CreateWindow.xaml.cs | 72 + RvAddinTest/DeleteCmd.cs | 105 ++ RvAddinTest/FluentAddin.cs | 120 +- RvAddinTest/GASInstancesCreator.cs | 9 +- RvAddinTest/ModifySystemTypeCmd.cs | 233 +++ RvAddinTest/RemoveParamCmd.cs | 180 +++ RvAddinTest/RvAddinTest.csproj | 1 + RvAddinTest/SeparateModel.cs | 20 + RvAddinTest/SeparateModelWin.xaml | 31 + RvAddinTest/SeparateModelWin.xaml.cs | 105 ++ .../{RotateDimension.cs => SetDimensions.cs} | 23 +- RvAddinTest/TempCmd.cs | 161 +- .../ModelManager/ModelCheckViewModel.cs | 4 +- Sai.RvKits/RvCivil/CreateOpeningsViewModel.cs | 2 +- Sai.RvKits/RvCivil/WallFinishesViewModel.cs | 4 +- Sai.RvKits/RvCommon/AlignModelElement.cs | 12 +- Sai.RvKits/RvCommon/CustomLeader.cs | 28 - Sai.RvKits/RvCommon/PureModelCmd.cs | 18 +- Sai.RvKits/RvCommon/QuickSelectionCmd.cs | 21 + Sai.RvKits/RvCommon/QuickSelectionView.xaml | 15 + .../RvCommon/QuickSelectionView.xaml.cs | 25 + Sai.RvKits/RvMEP/AnyConnectViewModel.cs | 1294 ++++++++--------- Sai.RvKits/RvMEP/ArrangeMEPCurveViewModel.cs | 24 +- Sai.RvKits/RvMEP/BloomConnectorCmd.cs | 205 ++- Sai.RvKits/RvMEP/BreakMEPCurveCmd.cs | 6 +- Sai.RvKits/RvMEP/CableLayoutCmd.cs | 6 +- Sai.RvKits/RvMEP/ClashResolveCmd.cs | 16 +- Sai.RvKits/RvMEP/ClashResolveView.xaml | 10 +- Sai.RvKits/RvMEP/ClashResolveViewModel.cs | 602 ++++---- Sai.RvKits/RvMEP/CorrectMEPCurveSlopeCmd.cs | 2 +- Sai.RvKits/RvMEP/HeadroomCheckCmd.cs | 2 +- Sai.RvKits/RvMEP/InsulationItem.cs | 13 +- Sai.RvKits/RvMEP/MoveConnectCmd.cs | 34 +- Sai.RvKits/RvMEP/MoveMEPCurveViewModel.cs | 2 +- Sai.RvKits/RvMEP/StandMepCurveViewModel.cs | 2 +- Sai.RvKits/RvMEP/SystemModel.cs | 75 +- .../RvView/QuickViewSectionViewModel.cs | 117 +- Sai.RvKits/RvView/SectionBoxControllerCmd.cs | 31 +- .../RvView/SectionBoxControllerViewModel.cs | 36 +- Sai.RvKits/RvView/SwitchBackgroundCmd.cs | 6 +- Sai.RvKits/RvView/ViewManagerViewModel.cs | 2 +- Sai.RvKits/Sai.RvKits.csproj | 15 +- Sai.RvKits/UIRibbon/FamilyApp.cs | 376 ++--- Sai.RvKits/UIRibbon/ModifyTabApp.cs | 74 +- Sai.RvKits/UIRibbon/RvApp.cs | 33 +- .../Extensions/DataTableExtensions.cs | 244 ++-- .../Extensions/ImageExtensions.cs | 25 +- Sai.Toolkit.Core/Heplers/ConfigHelpers.cs | 6 +- Sai.Toolkit.Core/Heplers/EnumHelpers.cs | 176 +-- Sai.Toolkit.Core/Heplers/WinDialogHelper.cs | 29 +- Sai.Toolkit.Revit/Assist/CollectorAssist.cs | 75 +- Sai.Toolkit.Revit/Assist/ConnectorAssist.cs | 65 +- Sai.Toolkit.Revit/Assist/MEPAssist.cs | 19 +- Sai.Toolkit.Revit/Assist/SpatialAssist.cs | 4 +- Sai.Toolkit.Revit/Helpers/KeyIntPtrHelper.cs | 6 +- Sai.Toolkit.Revit/Helpers/ParameterAssist.cs | 1176 +++++++++++++++ .../Helpers/SharedParamsAssist.cs | 1011 ------------- Sai.Toolkit.Revit/Sai.Toolkit.Revit.projitems | 2 +- Wpf.Ui.Extend/Controls/ColorFormatUtils.cs | 280 ++++ .../Controls/ColorPickerControl.xaml | 406 ++++++ .../Controls/ColorPickerControl.xaml.cs | 406 ++++++ Wpf.Ui.Extend/Controls/HSVColor.cs | 83 ++ WpfApp/MainWindow.xaml | 1 + 66 files changed, 5424 insertions(+), 2927 deletions(-) create mode 100644 RvAddinTest/CADCurveToModelCurveCmd.cs create mode 100644 RvAddinTest/CreateWindow.xaml create mode 100644 RvAddinTest/CreateWindow.xaml.cs create mode 100644 RvAddinTest/DeleteCmd.cs create mode 100644 RvAddinTest/ModifySystemTypeCmd.cs create mode 100644 RvAddinTest/RemoveParamCmd.cs create mode 100644 RvAddinTest/SeparateModel.cs create mode 100644 RvAddinTest/SeparateModelWin.xaml create mode 100644 RvAddinTest/SeparateModelWin.xaml.cs rename RvAddinTest/{RotateDimension.cs => SetDimensions.cs} (86%) delete mode 100644 Sai.RvKits/RvCommon/CustomLeader.cs create mode 100644 Sai.RvKits/RvCommon/QuickSelectionCmd.cs create mode 100644 Sai.RvKits/RvCommon/QuickSelectionView.xaml create mode 100644 Sai.RvKits/RvCommon/QuickSelectionView.xaml.cs create mode 100644 Sai.Toolkit.Revit/Helpers/ParameterAssist.cs delete mode 100644 Sai.Toolkit.Revit/Helpers/SharedParamsAssist.cs create mode 100644 Wpf.Ui.Extend/Controls/ColorFormatUtils.cs create mode 100644 Wpf.Ui.Extend/Controls/ColorPickerControl.xaml create mode 100644 Wpf.Ui.Extend/Controls/ColorPickerControl.xaml.cs create mode 100644 Wpf.Ui.Extend/Controls/HSVColor.cs diff --git a/RvAddinTest/CADCurveToModelCurveCmd.cs b/RvAddinTest/CADCurveToModelCurveCmd.cs new file mode 100644 index 0000000..4d694f0 --- /dev/null +++ b/RvAddinTest/CADCurveToModelCurveCmd.cs @@ -0,0 +1,107 @@ +using System; + +using Autodesk.Revit.Attributes; +using Autodesk.Revit.DB; +using Autodesk.Revit.UI; +using Autodesk.Revit.UI.Selection; + +using Sai.Toolkit.Revit.Assist; + +namespace RvAddinTest; +[Transaction(TransactionMode.Manual)] +[Regeneration(RegenerationOption.Manual)] +public class CADCurveToModelCurveCmd : IExternalCommand +{ + public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) + { + //程序UI界面 + UIApplication uiapp = commandData.Application; + //获取元素(选择) 显示元素 视图(活动视图)管理(对象) + UIDocument uidoc = uiapp.ActiveUIDocument; + //程序 + Autodesk.Revit.ApplicationServices.Application app = uiapp.Application; + //获取位置和场地 视图(多个视图)管理 获取元素(Revit 项目里的全部元素) + Document doc = uidoc.Document; + //获取所有打开文档 + DocumentSet docset = uiapp.Application.Documents; + //当前视图 + View view = doc.ActiveView; + + #region SelectExecute + + using (Transaction trans = new Transaction(doc, "default")) + { + try + { + Reference refer = uidoc.Selection.PickObject(ObjectType.Element, "请选择CAD"); + Element e = uidoc.Document.GetElement(refer); + if (e is ImportInstance ins) + { + trans.Start(); + var cadGeo = e.GetGeometryObjects().FirstOrDefault(); + List curves = []; + if (cadGeo is GeometryInstance geometryInstance) + { + curves = [.. geometryInstance.GetInstanceGeometry()]; + } + foreach (var c in curves) + { + + if (c is NurbSpline nurb) + { + if (nurb.Length > 100 / 304.8) + { + var points = nurb.Tessellate(); + ReferencePointArray array = new ReferencePointArray(); + foreach (var p in points) + { + var rp = doc.FamilyCreate.NewReferencePoint(p); + array.Append(rp); + } + var curveBypoints = doc.FamilyCreate.NewCurveByPoints(array); + } + } + if (c is PolyLine poly) + { + ReferencePointArray array = new ReferencePointArray(); + + for (int i = 0; i < poly.NumberOfCoordinates - 1; i++) + { + var p = poly.GetCoordinate(i); + //Line.CreateBound(p, poly.GetCoordinate(i + 1)); + } + } + if (c is Line l) + { + + } + } + trans.Commit(); + } + + } + catch (Autodesk.Revit.Exceptions.OperationCanceledException ex) + { + if (trans.GetStatus() == TransactionStatus.Started) + { + trans.Commit(); + } + + return Result.Succeeded; + } + catch (Exception ex) + { + message = ex.Message; + if (trans.GetStatus() == TransactionStatus.Started) + { + trans.RollBack(); + } + return Result.Failed; + } + } + + #endregion SelectExecute + + return Result.Succeeded; + } +} \ No newline at end of file diff --git a/RvAddinTest/CorrectSlope.cs b/RvAddinTest/CorrectSlope.cs index 3e3c8f3..5e08b5e 100644 --- a/RvAddinTest/CorrectSlope.cs +++ b/RvAddinTest/CorrectSlope.cs @@ -28,23 +28,22 @@ internal class CorrectSlope : ExternalCommand var elem = Document.GetElement(id); if (elem is MEPCurve mep) { - var loc = mep.GetLocCurve() as Line; - var x = loc.Direction.X; - var y = loc.Direction.Y; - var z = loc.Direction.Z; - if (Math.Abs(loc.Direction.X) > 0 && Math.Abs(loc.Direction.X) < 10E-5) - { - x = 0; - } - if (Math.Abs(loc.Direction.Y) > 0 && Math.Abs(loc.Direction.Y) < 10E-5) - { - y = 0; - } - if (Math.Abs(loc.Direction.Z) > 0 && Math.Abs(loc.Direction.Z) < 10E-5) - { - z = 0; - } - + var loc = mep.GetCurve() as Line; + var x = Math.Round(loc.Direction.X); + var y = Math.Round(loc.Direction.Y); + var z = Math.Round(loc.Direction.Z); + //if (Math.Abs(x) < 10E-5) + //{ + // x = 0; + //} + //if (Math.Abs(y) < 10E-5) + //{ + // y = 0; + //} + //if (Math.Abs(z) < 10E-5) + //{ + // z = 0; + //} var dir = new XYZ(x, y, z); var endPoint = loc.Origin + dir * loc.Length; var li = Line.CreateBound(loc.Origin, endPoint); diff --git a/RvAddinTest/CreateWindow.xaml b/RvAddinTest/CreateWindow.xaml new file mode 100644 index 0000000..1f91a00 --- /dev/null +++ b/RvAddinTest/CreateWindow.xaml @@ -0,0 +1,25 @@ + + + +