From 94cf3f32664f16b22cba857950df19aea41f5aa7 Mon Sep 17 00:00:00 2001 From: GG Z <903524121@qq.com> Date: Wed, 18 Feb 2026 21:41:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86=E6=97=A0=E7=94=A8=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ShrlAlgoToolkit.Mvvm/Assists/BindingHelper.cs | 44 - ShrlAlgoToolkit.Mvvm/Assists/BindingProxy.cs | 24 - .../Attach/TextSearchAssist.cs | 42 - .../Behaviors/CloseByButtonBehavior.cs | 74 -- .../Behaviors/CloseByPropertyBehavior.cs | 46 - .../Behaviors/DropFileBehavior.cs | 45 - .../Behaviors/IValidationExceptionHandler.cs | 6 - .../Behaviors/ValidationRuleBehavior.cs | 44 - .../Behaviors/WindowCloseByButtonBehavior.cs | 75 -- .../Assists/TextSearchAssist.cs | 36 + .../CloseOnClickBehaviour.cs | 0 .../Converters/SearchFamilyValueConverter.cs | 25 + .../Converters/SearchTypeValueConverter.cs | 19 - .../Properties/Resources.Designer.cs | 42 +- .../Properties/Resources.resx | 12 - .../Resources/gauges_16px.png | Bin 606 -> 0 bytes .../Resources/gauges_32px.png | Bin 1147 -> 0 bytes .../Resources/pipe_net_16px.png | Bin 531 -> 0 bytes .../Resources/pipe_net_32px.png | Bin 654 -> 0 bytes .../RvFamily/RenameFamilyView.xaml | 8 +- .../RvFamily/RenameTypeView.xaml | 2 +- .../MetroGauges/CircuitHelper.cs | 609 ----------- .../MetroGauges/GaugesModelView.xaml | 121 --- .../MetroGauges/GaugesModelView.xaml.cs | 848 --------------- .../LandXMLData/AGenerationRange.cs | 37 - .../MetroGauges/LandXMLData/Alignment.cs | 556 ---------- .../MetroGauges/LandXMLData/Alignments.cs | 122 --- .../MetroGauges/LandXMLData/Application.cs | 27 - .../MetroGauges/LandXMLData/AreaUnit.cs | 13 - .../MetroGauges/LandXMLData/AsymCurve.cs | 5 - .../MetroGauges/LandXMLData/BaseModel.cs | 17 - .../MetroGauges/LandXMLData/BorderLine.cs | 181 ---- .../MetroGauges/LandXMLData/Borders.cs | 106 -- .../MetroGauges/LandXMLData/CategoryType.cs | 11 - .../MetroGauges/LandXMLData/CgPoint.cs | 37 - .../MetroGauges/LandXMLData/CgPoints.cs | 104 -- .../MetroGauges/LandXMLData/CircCurve.cs | 11 - .../LandXMLData/ComparableStructure.cs | 27 - .../MetroGauges/LandXMLData/CoordGeom.cs | 97 -- .../LandXMLData/CoordinateSystem.cs | 27 - .../MetroGauges/LandXMLData/CrossSection.cs | 187 ---- .../LandXMLData/CrossSectionPoint.cs | 169 --- .../MetroGauges/LandXMLData/Curve.cs | 993 ------------------ .../MetroGauges/LandXMLData/Definition.cs | 29 - .../MetroGauges/LandXMLData/DefinitionMode.cs | 11 - .../MetroGauges/LandXMLData/DesignShape.cs | 290 ----- .../MetroGauges/LandXMLData/DesignSpeed.cs | 21 - .../MetroGauges/LandXMLData/DiameterUnit.cs | 16 - .../MetroGauges/LandXMLData/DirectionUnit.cs | 9 - .../MetroGauges/LandXMLData/ElementModel.cs | 11 - .../MetroGauges/LandXMLData/Face.cs | 8 - .../MetroGauges/LandXMLData/FeatureLine.cs | 29 - .../LandXMLData/FeatureLinePoint.cs | 23 - .../LandXMLData/GenerationRange.cs | 45 - .../LandXMLData/GenerationRangeInstance.cs | 23 - .../LandXMLData/GeometryTransformations.cs | 309 ------ .../LandXMLData/IGenerationRange.cs | 14 - .../LandXMLData/IGenerationRangeInstance.cs | 4 - .../MetroGauges/LandXMLData/IInstance.cs | 7 - .../MetroGauges/LandXMLData/Imperial.cs | 26 - .../Interfaces/IComparableStructure.cs | 10 - .../MetroGauges/LandXMLData/Interval.cs | 66 -- .../MetroGauges/LandXMLData/LamdXMLEx.cs | 25 - .../MetroGauges/LandXMLData/Line.cs | 508 --------- .../MetroGauges/LandXMLData/LineType.cs | 8 - .../MetroGauges/LandXMLData/LinearUnit.cs | 16 - .../MetroGauges/LandXMLData/Location.cs | 15 - .../MetroGauges/LandXMLData/LoftShapeModel.cs | 11 - .../MetroGauges/LandXMLData/Metric.cs | 26 - .../MetroGauges/LandXMLData/Model.cs | 478 --------- .../LandXMLData/ObjectWithNameSideSegment.cs | 47 - .../ObjectWithNameSideSegmentPart.cs | 26 - .../MetroGauges/LandXMLData/ParaCurve.cs | 11 - .../MetroGauges/LandXMLData/Part.cs | 215 ---- .../MetroGauges/LandXMLData/PartType.cs | 11 - .../MetroGauges/LandXMLData/Point.cs | 12 - .../MetroGauges/LandXMLData/Point2D.cs | 234 ----- .../MetroGauges/LandXMLData/Point3D.cs | 263 ----- .../MetroGauges/LandXMLData/PressureUnit.cs | 10 - .../MetroGauges/LandXMLData/ProfAlign.cs | 115 -- .../MetroGauges/LandXMLData/Profile.cs | 104 -- .../MetroGauges/LandXMLData/ProfileSurface.cs | 18 - .../MetroGauges/LandXMLData/Project.cs | 15 - .../MetroGauges/LandXMLData/Range.cs | 118 --- .../MetroGauges/LandXMLData/Region.cs | 162 --- .../MetroGauges/LandXMLData/Roadway.cs | 66 -- .../MetroGauges/LandXMLData/SectionSurface.cs | 18 - .../MetroGauges/LandXMLData/ShapeModel.cs | 20 - .../MetroGauges/LandXMLData/ShapeType.cs | 8 - .../MetroGauges/LandXMLData/Side.cs | 9 - .../MetroGauges/LandXMLData/SolidCategory.cs | 20 - .../MetroGauges/LandXMLData/SolidInstances.cs | 20 - .../MetroGauges/LandXMLData/SolidModel.cs | 23 - .../MetroGauges/LandXMLData/SolidType.cs | 7 - .../MetroGauges/LandXMLData/SourceData.cs | 8 - .../MetroGauges/LandXMLData/Spiral.cs | 748 ------------- .../LandXMLData/StringByteConversion.cs | 17 - .../MetroGauges/LandXMLData/Structures.cs | 20 - .../MetroGauges/LandXMLData/SuperElevation.cs | 15 - .../MetroGauges/LandXMLData/Surface.cs | 21 - .../MetroGauges/LandXMLData/Tangent.cs | 5 - .../LandXMLData/TemperatureUnit.cs | 8 - .../MetroGauges/LandXMLData/TextPoint2D.cs | 461 -------- .../MetroGauges/LandXMLData/TextPoint3D.cs | 107 -- .../MetroGauges/LandXMLData/Unit.cs | 536 ---------- .../MetroGauges/LandXMLData/UnitValues.cs | 27 - .../MetroGauges/LandXMLData/Units.cs | 99 -- .../MetroGauges/LandXMLData/VolumeUnit.cs | 10 - .../RvIndependent/MetroGauges/Loader.cs | 49 - .../MetroGauges/MetroGaugesCmd.cs | 13 - .../NamespaceIgnorantXmlTextReader.cs | 13 - .../MetroGauges/ProfileHelper.cs | 339 ------ .../RvIndependent/MetroGauges/Region.cs | 18 - .../RvIndependent/MetroGauges/RoadCfg.cs | 134 --- .../RvIndependent/MetroGauges/SpaceXYZ.cs | 28 - .../RvIndependent/MetroGauges/XmlData.cs | 152 --- .../MetroTunnel/MetroTunnelCmd.cs | 326 ------ .../MetroTunnel/MetroTunnelView.xaml | 75 -- .../MetroTunnel/MetroTunnelView.xaml.cs | 14 - .../MetroTunnel/MetroTunnelViewModel.cs | 53 - .../MetroTunnel/SegmentPlacementType.cs | 19 - .../RvIndependent/NetworkCreator/AlignType.cs | 8 - .../RvIndependent/NetworkCreator/ExcelData.cs | 56 - .../NetworkCreator/ExcelDataRow.cs | 206 ---- .../NetworkCreator/NetworkCreatorCmd.cs | 15 - .../NetworkCreator/NetworkCreatorView.xaml | 76 -- .../NetworkCreator/NetworkCreatorView.xaml.cs | 487 --------- .../NetworkCreator/NetworkType.cs | 14 - .../NetworkCreator/SectionType.cs | 8 - .../RvView/ViewManagerView.xaml | 3 +- ShrlAlgoToolkit.RevitAddins/UIRibbon/RvApp.cs | 31 +- 131 files changed, 69 insertions(+), 12589 deletions(-) delete mode 100644 ShrlAlgoToolkit.Mvvm/Assists/BindingHelper.cs delete mode 100644 ShrlAlgoToolkit.Mvvm/Assists/BindingProxy.cs delete mode 100644 ShrlAlgoToolkit.Mvvm/Attach/TextSearchAssist.cs delete mode 100644 ShrlAlgoToolkit.Mvvm/Behaviors/CloseByButtonBehavior.cs delete mode 100644 ShrlAlgoToolkit.Mvvm/Behaviors/CloseByPropertyBehavior.cs delete mode 100644 ShrlAlgoToolkit.Mvvm/Behaviors/DropFileBehavior.cs delete mode 100644 ShrlAlgoToolkit.Mvvm/Behaviors/IValidationExceptionHandler.cs delete mode 100644 ShrlAlgoToolkit.Mvvm/Behaviors/ValidationRuleBehavior.cs delete mode 100644 ShrlAlgoToolkit.Mvvm/Behaviors/WindowCloseByButtonBehavior.cs create mode 100644 ShrlAlgoToolkit.RevitAddins/Assists/TextSearchAssist.cs rename {ShrlAlgoToolkit.Mvvm/Behaviors => ShrlAlgoToolkit.RevitAddins}/CloseOnClickBehaviour.cs (100%) create mode 100644 ShrlAlgoToolkit.RevitAddins/Converters/SearchFamilyValueConverter.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/Resources/gauges_16px.png delete mode 100644 ShrlAlgoToolkit.RevitAddins/Resources/gauges_32px.png delete mode 100644 ShrlAlgoToolkit.RevitAddins/Resources/pipe_net_16px.png delete mode 100644 ShrlAlgoToolkit.RevitAddins/Resources/pipe_net_32px.png delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/CircuitHelper.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/GaugesModelView.xaml delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/GaugesModelView.xaml.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AGenerationRange.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Alignment.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Alignments.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Application.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AreaUnit.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AsymCurve.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/BaseModel.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/BorderLine.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Borders.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CategoryType.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CgPoint.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CgPoints.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CircCurve.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ComparableStructure.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CoordGeom.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CoordinateSystem.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CrossSection.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CrossSectionPoint.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Curve.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Definition.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/DefinitionMode.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/DesignShape.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/DesignSpeed.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/DiameterUnit.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/DirectionUnit.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ElementModel.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Face.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/FeatureLine.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/FeatureLinePoint.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/GenerationRange.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/GenerationRangeInstance.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/GeometryTransformations.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/IGenerationRange.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/IGenerationRangeInstance.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/IInstance.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Imperial.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Interfaces/IComparableStructure.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Interval.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/LamdXMLEx.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Line.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/LineType.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/LinearUnit.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Location.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/LoftShapeModel.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Metric.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Model.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ObjectWithNameSideSegment.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ObjectWithNameSideSegmentPart.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ParaCurve.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Part.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/PartType.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Point.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Point2D.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Point3D.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/PressureUnit.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ProfAlign.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Profile.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ProfileSurface.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Project.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Range.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Region.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Roadway.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/SectionSurface.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ShapeModel.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ShapeType.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Side.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/SolidCategory.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/SolidInstances.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/SolidModel.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/SolidType.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/SourceData.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Spiral.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/StringByteConversion.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Structures.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/SuperElevation.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Surface.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Tangent.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/TemperatureUnit.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/TextPoint2D.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/TextPoint3D.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Unit.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/UnitValues.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Units.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/VolumeUnit.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/Loader.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/MetroGaugesCmd.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/NamespaceIgnorantXmlTextReader.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/ProfileHelper.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/Region.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/RoadCfg.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/SpaceXYZ.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/XmlData.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroTunnel/MetroTunnelCmd.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroTunnel/MetroTunnelView.xaml delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroTunnel/MetroTunnelView.xaml.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroTunnel/MetroTunnelViewModel.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroTunnel/SegmentPlacementType.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/NetworkCreator/AlignType.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/NetworkCreator/ExcelData.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/NetworkCreator/ExcelDataRow.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/NetworkCreator/NetworkCreatorCmd.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/NetworkCreator/NetworkCreatorView.xaml delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/NetworkCreator/NetworkCreatorView.xaml.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/NetworkCreator/NetworkType.cs delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvIndependent/NetworkCreator/SectionType.cs diff --git a/ShrlAlgoToolkit.Mvvm/Assists/BindingHelper.cs b/ShrlAlgoToolkit.Mvvm/Assists/BindingHelper.cs deleted file mode 100644 index 5e9e387..0000000 --- a/ShrlAlgoToolkit.Mvvm/Assists/BindingHelper.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System.Windows; -using System.Windows.Data; - -namespace ShrlAlgoToolkit.Mvvm.Assists -{ - public static class BindingHelper - { - public static Binding GetBinding(this FrameworkElement element, DependencyProperty dependencyProperty) - { - var expression = element.GetBindingExpression(dependencyProperty); - if (expression == null) - { - return null; - } - return expression.ParentBinding; - - } - /// - /// 获取绑定的源(模型视图)属性类型 - /// - /// - /// - /// - public static Type GetBindingPropertyType(this FrameworkElement element, DependencyProperty dependencyProperty) - { - var binding = element.GetBindingExpression(dependencyProperty); - var source = binding.ResolvedSource; - var prop = source.GetType().GetProperty(binding.ResolvedSourcePropertyName); - return prop.PropertyType; - } - /// - /// 设置绑定 - /// - /// wpf框架元素 - /// 依赖属性 - /// 视图模型属性 - /// 视图模型 - public static void SetBinding(this FrameworkElement element,DependencyProperty dependencyProperty,string propertyName,object sourceData) - { - var description = new Binding() { Path = new PropertyPath(propertyName), Source = sourceData }; - element.SetBinding(dependencyProperty, description); - } - } -} diff --git a/ShrlAlgoToolkit.Mvvm/Assists/BindingProxy.cs b/ShrlAlgoToolkit.Mvvm/Assists/BindingProxy.cs deleted file mode 100644 index e414ab1..0000000 --- a/ShrlAlgoToolkit.Mvvm/Assists/BindingProxy.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Windows; - -namespace ShrlAlgoToolkit.Mvvm.Assists -{ - /// - /// 绑定代理,用来传递绑定对象 - /// - public class BindingProxy : Freezable - { - protected override Freezable CreateInstanceCore() => new BindingProxy(); - - public object Data - { - get { return GetValue(DataProperty); } - set { SetValue(DataProperty, value); } - } - - public static readonly DependencyProperty DataProperty = DependencyProperty.Register( - nameof(Data), - typeof(object), - typeof(BindingProxy) - ); - } -} diff --git a/ShrlAlgoToolkit.Mvvm/Attach/TextSearchAssist.cs b/ShrlAlgoToolkit.Mvvm/Attach/TextSearchAssist.cs deleted file mode 100644 index e406501..0000000 --- a/ShrlAlgoToolkit.Mvvm/Attach/TextSearchAssist.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System.Windows; - -namespace ShrlAlgoToolkit.Mvvm.Attach; - -public class TextSearchAssist -{ - // Using a DependencyProperty as the backing store for IsTextMatch. This enables animation, styling, binding, etc... - public static readonly DependencyProperty IsTextMatchProperty = DependencyProperty.RegisterAttached( - "IsTextMatch", - typeof(bool), - typeof(TextSearchAssist), - new UIPropertyMetadata(false) - ); - - // Using a DependencyProperty as the backing store for SearchValue. This enables animation, styling, binding, etc... - public static readonly DependencyProperty SearchValueProperty = DependencyProperty.RegisterAttached( - "SearchValue", - typeof(string), - typeof(TextSearchAssist), - new FrameworkPropertyMetadata(string.Empty, FrameworkPropertyMetadataOptions.Inherits) - ); - - public static bool GetIsTextMatch(DependencyObject obj) - { - return (bool)obj.GetValue(IsTextMatchProperty); - } - - public static string GetSearchValue(DependencyObject obj) - { - return (string)obj.GetValue(SearchValueProperty); - } - - public static void SetIsTextMatch(DependencyObject obj, bool value) - { - obj.SetValue(IsTextMatchProperty, value); - } - - public static void SetSearchValue(DependencyObject obj, string value) - { - obj.SetValue(SearchValueProperty, value); - } -} diff --git a/ShrlAlgoToolkit.Mvvm/Behaviors/CloseByButtonBehavior.cs b/ShrlAlgoToolkit.Mvvm/Behaviors/CloseByButtonBehavior.cs deleted file mode 100644 index d3fb03d..0000000 --- a/ShrlAlgoToolkit.Mvvm/Behaviors/CloseByButtonBehavior.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System.Windows; -using System.Windows.Controls; -using System.Windows.Input; -using Microsoft.Xaml.Behaviors; - -namespace ShrlAlgoToolkit.Mvvm.Behaviors; - -// -// -// -// -// -// -// -// -/// -/// 通过按钮点击,关闭窗口 -/// -public class CloseByButtonBehavior : Behavior -{ - public static readonly DependencyProperty CommandProperty = DependencyProperty.Register( - nameof(Command), - typeof(ICommand), - typeof(CloseByButtonBehavior) - ); - - public static readonly DependencyProperty CommandParameterProperty = DependencyProperty.Register( - nameof(CommandParameter), - typeof(object), - typeof(CloseByButtonBehavior) - ); - - public static readonly DependencyProperty CloseButtonProperty = DependencyProperty.Register( - nameof(CloseButton), - typeof(Button), - typeof(CloseByButtonBehavior), - new FrameworkPropertyMetadata(null, OnCloseButtonChanged) - ); - - public ICommand Command - { - get => (ICommand)GetValue(CommandProperty); - set => SetValue(CommandProperty, value); - } - - public object CommandParameter - { - get => GetValue(CommandParameterProperty); - set => SetValue(CommandParameterProperty, value); - } - - public Button CloseButton - { - get => (Button)GetValue(CloseButtonProperty); - set => SetValue(CloseButtonProperty, value); - } - - private static void OnCloseButtonChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - var window = ((CloseByButtonBehavior)d).AssociatedObject; - ((Button)e.NewValue).Click += (s, e1) => - { - var command = ((CloseByButtonBehavior)d).Command; - var commandParameter = ((CloseByButtonBehavior)d).CommandParameter; - command?.Execute(commandParameter); - window.Close(); - }; - } -} diff --git a/ShrlAlgoToolkit.Mvvm/Behaviors/CloseByPropertyBehavior.cs b/ShrlAlgoToolkit.Mvvm/Behaviors/CloseByPropertyBehavior.cs deleted file mode 100644 index 1596207..0000000 --- a/ShrlAlgoToolkit.Mvvm/Behaviors/CloseByPropertyBehavior.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System.Windows; -using Microsoft.Xaml.Behaviors; - -namespace ShrlAlgoToolkit.Mvvm.Behaviors; - -/// -/// 通过设置属性值,关闭窗口 -/// -/// -/// -/// -/// -/// -/// -public class CloseByPropertyBehavior : Behavior -{ - public static readonly DependencyProperty CloseTriggerProperty = DependencyProperty.Register( - nameof(CloseTrigger), - typeof(bool), - typeof(CloseByPropertyBehavior), - new PropertyMetadata(false, OnCloseTriggerChanged) - ); - - public bool CloseTrigger - { - get => (bool)GetValue(CloseTriggerProperty); - set => SetValue(CloseTriggerProperty, value); - } - - private static void OnCloseTriggerChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - if (d is CloseByPropertyBehavior behavior) - { - behavior.OnCloseTriggerChanged(); - } - } - - private void OnCloseTriggerChanged() - { - // when closetrigger is true, close the window - if (CloseTrigger) - { - AssociatedObject.Close(); - } - } -} diff --git a/ShrlAlgoToolkit.Mvvm/Behaviors/DropFileBehavior.cs b/ShrlAlgoToolkit.Mvvm/Behaviors/DropFileBehavior.cs deleted file mode 100644 index a0fd1e2..0000000 --- a/ShrlAlgoToolkit.Mvvm/Behaviors/DropFileBehavior.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.Windows; -using Microsoft.Xaml.Behaviors; - -namespace ShrlAlgoToolkit.Mvvm.Behaviors; - -/// -/// ��ק�ļ��¼� -/// -/// DropFileBehaviors Data="{Binding FileNames,Mode=OneWayToSource}"���������Դ���Դ���ԣ�ͨ��Դ����ʵ��Mvvm -/// ���ô�������AllowDrop�����ϲ㸲��һ�������Grid�����ô��ڵ�DropEnter��DropLeave(EventTrigger)�¼��������������Լ�����Drop�¼�������(ChangePropertyAction) -class DropFileBehavior : Behavior -{ - public string[] Data - { - get { return (string[])GetValue(DataProperty); } - set { SetValue(DataProperty, value); } - } - - public static readonly DependencyProperty DataProperty = - DependencyProperty.Register(nameof(Data), typeof(string[]), typeof(DropFileBehavior), new PropertyMetadata(null)); - - - protected override void OnAttached() - { - AssociatedObject.AllowDrop = true; - AssociatedObject.Drop += DropHandler; - } - - private void DropHandler(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) - { - Data = (string[])e.Data.GetData(DataFormats.FileDrop); - } - } - - protected override void OnDetaching() - { - AssociatedObject.Drop -= DropHandler; - } - protected override void OnChanged() - { - base.OnChanged(); - } -} \ No newline at end of file diff --git a/ShrlAlgoToolkit.Mvvm/Behaviors/IValidationExceptionHandler.cs b/ShrlAlgoToolkit.Mvvm/Behaviors/IValidationExceptionHandler.cs deleted file mode 100644 index ca303d8..0000000 --- a/ShrlAlgoToolkit.Mvvm/Behaviors/IValidationExceptionHandler.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace ShrlAlgoToolkit.Mvvm.Behaviors; - -public interface IValidationExceptionHandler -{ - bool IsValid { get; set; } -} diff --git a/ShrlAlgoToolkit.Mvvm/Behaviors/ValidationRuleBehavior.cs b/ShrlAlgoToolkit.Mvvm/Behaviors/ValidationRuleBehavior.cs deleted file mode 100644 index 86e1ca6..0000000 --- a/ShrlAlgoToolkit.Mvvm/Behaviors/ValidationRuleBehavior.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System.Windows; -using System.Windows.Controls; -using Microsoft.Xaml.Behaviors; - -namespace ShrlAlgoToolkit.Mvvm.Behaviors; - -/// -/// 在xaml的资源中声明,viewModel继承IValidationExceptionHandler,通过IsValid判断能否执行 -/// -public class ValidationRuleBehavior : Behavior -{ - private int errorCount; - - protected override void OnAttached() - { - base.OnAttached(); - AssociatedObject.AddHandler(Validation.ErrorEvent, new EventHandler(OnValidationError)); - } - - protected override void OnDetaching() - { - AssociatedObject.RemoveHandler(Validation.ErrorEvent, new EventHandler(OnValidationError)); - } - - private void OnValidationError(object sender, ValidationErrorEventArgs e) - { - if (AssociatedObject.DataContext is IValidationExceptionHandler handler) - { - if (e.OriginalSource is UIElement elem) - { - if (e.Action == ValidationErrorEventAction.Added) - { - errorCount++; - } - else if (e.Action == ValidationErrorEventAction.Removed) - { - errorCount--; - } - } - - handler.IsValid = errorCount == 0; - } - } -} diff --git a/ShrlAlgoToolkit.Mvvm/Behaviors/WindowCloseByButtonBehavior.cs b/ShrlAlgoToolkit.Mvvm/Behaviors/WindowCloseByButtonBehavior.cs deleted file mode 100644 index 15a92d3..0000000 --- a/ShrlAlgoToolkit.Mvvm/Behaviors/WindowCloseByButtonBehavior.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System.Windows; -using System.Windows.Controls; -using System.Windows.Input; -using Microsoft.Xaml.Behaviors; - -namespace ShrlAlgoToolkit.Mvvm.Behaviors; - -// -// -// -// -// -// -// -// -/// -/// 通过按钮点击,关闭窗口 -/// -public class WindowCloseByButtonBehavior - : Behavior -{ - public static readonly DependencyProperty CommandProperty = DependencyProperty.Register( - nameof(Command), - typeof(ICommand), - typeof(WindowCloseByButtonBehavior) - ); - - public static readonly DependencyProperty CommandParameterProperty = DependencyProperty.Register( - nameof(CommandParameter), - typeof(object), - typeof(WindowCloseByButtonBehavior) - ); - - public static readonly DependencyProperty CloseButtonProperty = DependencyProperty.Register( - nameof(CloseButton), - typeof(Button), - typeof(WindowCloseByButtonBehavior), - new FrameworkPropertyMetadata(null, OnCloseButtonChanged) - ); - - public ICommand Command - { - get => (ICommand)GetValue(CommandProperty); - set => SetValue(CommandProperty, value); - } - - public object CommandParameter - { - get => GetValue(CommandParameterProperty); - set => SetValue(CommandParameterProperty, value); - } - - public Button CloseButton - { - get => (Button)GetValue(CloseButtonProperty); - set => SetValue(CloseButtonProperty, value); - } - - private static void OnCloseButtonChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - var window = ((WindowCloseByButtonBehavior)d).AssociatedObject; - ((Button)e.NewValue).Click += (s, e1) => - { - var command = ((WindowCloseByButtonBehavior)d).Command; - var commandParameter = ((WindowCloseByButtonBehavior)d).CommandParameter; - command?.Execute(commandParameter); - window.Close(); - }; - } -} diff --git a/ShrlAlgoToolkit.RevitAddins/Assists/TextSearchAssist.cs b/ShrlAlgoToolkit.RevitAddins/Assists/TextSearchAssist.cs new file mode 100644 index 0000000..db27715 --- /dev/null +++ b/ShrlAlgoToolkit.RevitAddins/Assists/TextSearchAssist.cs @@ -0,0 +1,36 @@ +using System.Windows; + +namespace ShrlAlgoToolkit.RevitAddins.Assists +{ + public class TextSearchAssist + { + // Using a DependencyProperty as the backing store for IsTextMatch. This enables animation, styling, binding, etc... + public static readonly DependencyProperty IsTextMatchProperty = + DependencyProperty.RegisterAttached("IsTextMatch", typeof(bool), typeof(TextSearchAssist), new UIPropertyMetadata(false)); + + // Using a DependencyProperty as the backing store for SearchValue. This enables animation, styling, binding, etc... + public static readonly DependencyProperty SearchValueProperty = + DependencyProperty.RegisterAttached("SearchValue", typeof(string), typeof(TextSearchAssist), + new FrameworkPropertyMetadata(string.Empty, FrameworkPropertyMetadataOptions.Inherits)); + + public static bool GetIsTextMatch(DependencyObject obj) + { + return (bool)obj.GetValue(IsTextMatchProperty); + } + + public static string GetSearchValue(DependencyObject obj) + { + return (string)obj.GetValue(SearchValueProperty); + } + + public static void SetIsTextMatch(DependencyObject obj, bool value) + { + obj.SetValue(IsTextMatchProperty, value); + } + + public static void SetSearchValue(DependencyObject obj, string value) + { + obj.SetValue(SearchValueProperty, value); + } + } +} \ No newline at end of file diff --git a/ShrlAlgoToolkit.Mvvm/Behaviors/CloseOnClickBehaviour.cs b/ShrlAlgoToolkit.RevitAddins/CloseOnClickBehaviour.cs similarity index 100% rename from ShrlAlgoToolkit.Mvvm/Behaviors/CloseOnClickBehaviour.cs rename to ShrlAlgoToolkit.RevitAddins/CloseOnClickBehaviour.cs diff --git a/ShrlAlgoToolkit.RevitAddins/Converters/SearchFamilyValueConverter.cs b/ShrlAlgoToolkit.RevitAddins/Converters/SearchFamilyValueConverter.cs new file mode 100644 index 0000000..ec5ee32 --- /dev/null +++ b/ShrlAlgoToolkit.RevitAddins/Converters/SearchFamilyValueConverter.cs @@ -0,0 +1,25 @@ +using System.Windows.Controls; +using System.Windows.Data; + +namespace ShrlAlgoToolkit.RevitAddins.Converters +{ + public class SearchFamilyValueConverter : IMultiValueConverter + { + public static SearchFamilyValueConverter Instance { get; } = new SearchFamilyValueConverter(); + public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + var cellText = values[0] == null ? string.Empty : values[0].ToString(); + var searchText = values[1] as string; + var cell = values[2] as DataGridCell; + + var head = cell?.Column?.Header?.ToString(); + + return head is "族名称" && !string.IsNullOrEmpty(searchText) && !string.IsNullOrEmpty(cellText) ? cellText.Contains(searchText) : (object)false; + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) + { + return null; + } + } +} \ No newline at end of file diff --git a/ShrlAlgoToolkit.RevitAddins/Converters/SearchTypeValueConverter.cs b/ShrlAlgoToolkit.RevitAddins/Converters/SearchTypeValueConverter.cs index 1596fcd..5c1ff37 100644 --- a/ShrlAlgoToolkit.RevitAddins/Converters/SearchTypeValueConverter.cs +++ b/ShrlAlgoToolkit.RevitAddins/Converters/SearchTypeValueConverter.cs @@ -17,25 +17,6 @@ namespace ShrlAlgoToolkit.RevitAddins.Converters return head is "族类型" && !string.IsNullOrEmpty(searchText) && !string.IsNullOrEmpty(cellText) ? cellText.Contains(searchText) : (object)false; } - public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) - { - return null; - } - } - public class SearchFamilyValueConverter : IMultiValueConverter - { - public static SearchFamilyValueConverter Instance { get; } = new SearchFamilyValueConverter(); - public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - var cellText = values[0] == null ? string.Empty : values[0].ToString(); - var searchText = values[1] as string; - var cell = values[2] as DataGridCell; - - var head = cell?.Column?.Header?.ToString(); - - return head is "族名称" && !string.IsNullOrEmpty(searchText) && !string.IsNullOrEmpty(cellText) ? cellText.Contains(searchText) : (object)false; - } - public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture) { return null; diff --git a/ShrlAlgoToolkit.RevitAddins/Properties/Resources.Designer.cs b/ShrlAlgoToolkit.RevitAddins/Properties/Resources.Designer.cs index ca64f27..54c57af 100644 --- a/ShrlAlgoToolkit.RevitAddins/Properties/Resources.Designer.cs +++ b/ShrlAlgoToolkit.RevitAddins/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace ShrlAlgoToolkit.RevitAddins.Properties { // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -590,26 +590,6 @@ namespace ShrlAlgoToolkit.RevitAddins.Properties { } } - /// - /// 查找 System.Drawing.Bitmap 类型的本地化资源。 - /// - internal static System.Drawing.Bitmap gauges_16px { - get { - object obj = ResourceManager.GetObject("gauges_16px", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// 查找 System.Drawing.Bitmap 类型的本地化资源。 - /// - internal static System.Drawing.Bitmap gauges_32px { - get { - object obj = ResourceManager.GetObject("gauges_32px", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// @@ -860,26 +840,6 @@ namespace ShrlAlgoToolkit.RevitAddins.Properties { } } - /// - /// 查找 System.Drawing.Bitmap 类型的本地化资源。 - /// - internal static System.Drawing.Bitmap pipe_net_16px { - get { - object obj = ResourceManager.GetObject("pipe_net_16px", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// 查找 System.Drawing.Bitmap 类型的本地化资源。 - /// - internal static System.Drawing.Bitmap pipe_net_32px { - get { - object obj = ResourceManager.GetObject("pipe_net_32px", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// diff --git a/ShrlAlgoToolkit.RevitAddins/Properties/Resources.resx b/ShrlAlgoToolkit.RevitAddins/Properties/Resources.resx index ab0fc51..c02c266 100644 --- a/ShrlAlgoToolkit.RevitAddins/Properties/Resources.resx +++ b/ShrlAlgoToolkit.RevitAddins/Properties/Resources.resx @@ -277,12 +277,6 @@ ..\Resources\flip_workplane_32px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\gauges_16px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\gauges_32px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\head_room_16px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -358,12 +352,6 @@ ..\Resources\pipe_creator_32px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\pipe_net_16px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\pipe_net_32px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\purge_16px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/ShrlAlgoToolkit.RevitAddins/Resources/gauges_16px.png b/ShrlAlgoToolkit.RevitAddins/Resources/gauges_16px.png deleted file mode 100644 index 90c387c024563491e7720f56eaa927db409d7abd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0rN>jK~y+TrIR~I z98na8XJ%ipV6CK4307jTl9Z;3i0EPzVv|N8#lk*tr;&tZs}xaor`SSp8w3TaG~FHJG!_{j#H2?*?B2I}?tM7do4)mFQaOeUX% z!{L403nrOvt00rfcr^HGmK~&0sos1(-!-M6T-C_8S&VA5TCFx5e3@Vp^B($VAh3-W zeDz4aCW%BMXVTPt5pD;?uIu(-*5J=(vpI*ofI2u?A0~GjE~>#Kopuxu;_-NmbshJb z$^Kz)SfBCrP6NTzOgbd>!S8L^vI>R59l7maI0%>UsaXd&L2FRh51+Hv75_zBh097%4ZPF@dnC-TcT=^G{*}94BTe*}mT*7u6Mg13 sen`h3#82S9VxkR-UFpIjpR;BC2bd%MSVsU_H~;_u07*qoM6N<$g6pCSWB>pF diff --git a/ShrlAlgoToolkit.RevitAddins/Resources/gauges_32px.png b/ShrlAlgoToolkit.RevitAddins/Resources/gauges_32px.png deleted file mode 100644 index 66ac6043474570dad33c7996f7ed9018f6f664f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1147 zcmV->1cdvEP)Px(HAzH4R9HvFSAB?OV;KKEbF9&bW!Y@xGykw5Eka?Dgf${d_77QVHgfO#oSDoY zRvBd#HJ#_oEpmlhYOy1-7Hz^rZHl$oLJzV=dXLu z`+WSK&-Zx=UDD9d(BgrCfk9Qh3BVadbUc9Ly!c*K-2>oTB6@vpZf5>>qwzz~2HJ|dG* z6y4TNt}Os&{tm!tUSOSwRJ#d%D-Saph^PJcX%RWSmFExu%)A?b6`0ZWBJ%csF`mjW z^K}5;^8fdU$kMF7CIHO*0f5VlK}0$h=)VER%VHmDe)#o~S3LqDNclHzC9Z!kKeKa~c zder><{P#q3EP%G&kByBTF*7ss6@ZgHfZeJ(NkmrFR%9tn0hr2*fCtd%3|0NDzrX)f zDwoSQ_x1I?3gEALy?#=qQn4;*qLGo2v+MQx=b4XJiijDr^gV1|`?Estji*#9Ee(R; zCjg6*B)Nr{`6U3i19(qFuFlDw%>pcwP|Wp^`bbAKkfv;IrktDZBW%6 z7J(nUf_p?Hx5%7xW~fF)%W@1fh2N)bbr1xTX|z%~X1*K1vjBcH00#gJ09Yj=Z|0$Q z&J7Zg38hnViiq|CFb6h9QDoKKAZES`Km_0z05bqW5vgU)Zve0bz+Be=nE8DGE4`9w z0Bci)3kwUovIB{kHv_marVth zaG3YpqSK%xN$!}Kn6Rj}rSw8NIEuXog_ltnhG(kk*G0Ma>3AlJBAfNOlqt}EE+Y@X zHs8YQn3+cbJf5TZXWJQzE+KCxUD2AaV}EEHaN$B?O9&C!!g&f2o#@B$4ggz4r0*o<2-6k?7siECZrXP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0jNntK~y+TrBXdl z0znYH^A5rlmsl9Y#N@Q&D>?0;w8GNPSXwESS}B#S9kH~MPCNVuLWOo*_y|_E5E=p& z6nyyJ-YuShi3u;6o!On;xASIKSrw}1|Ak~Sc?5UMSXI?*tyX(mN`Q?~Y)E<2877lS z9_wj@QP_38UQe%yj1Td6JOcMRolf`W4Tp!CrVZVlitxG!eZVHNzk~hKUHJhjD~-qF zBFI9p6Rrsfo;Dg`A^Fj0G|oA(ZF>i$N2ph1=O87tU@x8#B@U2th#M&@G|f-wk2#LhbJH#a0UH+x1VW5QqY=A*tn2y}ZofcGLI-w+ zzU;#Pg2tiS?S6GSogOV54sYPr7&I3Q!zc%X!7a?UaeJ0|amoiNf#pjHHjGs~;Gp;m zAiJSo20?%Z-C?uTz6m2)8AdV%rSIc4*7=0Yp{WJDQjR%6;0OBwvI@d`zBgj=Vc;`x zt-)ZBLqjWg+S6vUSzY*vSZq@-V|kbW*^q?ZbcTfr{(@y$A>90kFa@G#DPct@$~P>+ Vu~00X7x(}G002ovPDHLkV1k%D+nN9X diff --git a/ShrlAlgoToolkit.RevitAddins/Resources/pipe_net_32px.png b/ShrlAlgoToolkit.RevitAddins/Resources/pipe_net_32px.png deleted file mode 100644 index a1b0c20bcfc119ea063169aaebef5e47f3221fc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmV;90&)F`P)Px%NJ&INR9HvFSHX?KFc7pw3V|O|ObvHb0#pK533LKi1CGS+xIT#XG?v%e7$GFsy0fgPoL<;TKgrFej5NE{3m9Zi0)0(EO`BG z0E{tbWKKkX1tQ#WQx?ozL2FuVNV5BlhFwmhc$3W?RP-tJ>@mx?S - + @@ -86,7 +86,7 @@ - + diff --git a/ShrlAlgoToolkit.RevitAddins/RvFamily/RenameTypeView.xaml b/ShrlAlgoToolkit.RevitAddins/RvFamily/RenameTypeView.xaml index 1b3af3c..615a8b4 100644 --- a/ShrlAlgoToolkit.RevitAddins/RvFamily/RenameTypeView.xaml +++ b/ShrlAlgoToolkit.RevitAddins/RvFamily/RenameTypeView.xaml @@ -2,7 +2,7 @@ x:Class="ShrlAlgoToolkit.RevitAddins.RvFamily.RenameTypeView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:attach="clr-namespace:ShrlAlgoToolkit.Mvvm.Attach;assembly=ShrlAlgoToolkit.Mvvm" + xmlns:attach="clr-namespace:ShrlAlgoToolkit.RevitAddins.Assists" xmlns:b="http://schemas.microsoft.com/xaml/behaviors" xmlns:conv="clr-namespace:ShrlAlgoToolkit.RevitAddins.Converters" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/CircuitHelper.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/CircuitHelper.cs deleted file mode 100644 index 3cc88df..0000000 --- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/CircuitHelper.cs +++ /dev/null @@ -1,609 +0,0 @@ -using Autodesk.Revit.DB; - -namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges; - -using Curve = LandXMLData.Curve; -using Interval = LandXMLData.Interval; -using LandXMLData_Alignment = LandXMLData.Alignment; -using LandXMLData_CircCurve = LandXMLData.CircCurve; -using LandXMLData_Spiral = LandXMLData.Spiral; -using Line = LandXMLData.Line; - -public class CircuitHelper -{ - /// - /// 获取线路所有竖曲线区间 - /// - /// - /// - public Dictionary> DictCir(LandXMLData_Alignment al) - { - var prof = al.GroundProfile; - Dictionary> dictcir = new(); - for (int i = 0; i < prof.Count - 1; i++) - { - if (prof[i].GetType() == typeof(CircCurve)) - { - LandXMLData_CircCurve c = (LandXMLData_CircCurve)prof[i]; - SpaceXYZ stap = new(prof[i - 1].First, prof[i - 1].Second); - SpaceXYZ pi = new(prof[i].First, prof[i].Second); - SpaceXYZ endp = new(prof[i + 1].First, prof[i + 1].Second); - List pts = GetStartCenterEnd(c, stap, pi, endp); - dictcir.Add(c, pts); - } - } - - return dictcir; - } - - /// - /// 得到区域内的参考点 - /// - /// - /// - /// - /// - public List Get3DRefPointOfRegion(LandXMLData_Alignment align, Region reg, double interval) - { - List pts = new(); - for (double i = reg.StartStation; i < reg.EndStation; i += interval) - { - XYZ pt = new(GetHorizonCoord(i, align).X, GetHorizonCoord(i, align).Y, GetElevAtStation(i, align)); - pts.Add(pt); - } - - XYZ lastp = GetHorizonCoord(reg.EndStation, align); - XYZ lastpt = new(lastp.X, lastp.Y, GetElevAtStation(reg.EndStation, align)); - pts.Add(lastpt); - - return pts; - } - - /// - /// 获取圆曲线上的点(坐标英制) - /// - /// 沿着线路方向从圆曲线起点行走过的距离 - /// - /// - public SpaceXYZ GetArcPtCoord(double length, Curve c) - { - double r = Math.Sqrt( - Math.Pow(c.Center.Second - c.Start.Second, 2.0) + Math.Pow(c.Center.First - c.Start.First, 2.0) - ); - //弧度 - double rad = length / r; - //计算圆心起点直线与X轴弧度(带符号) - double num3 = Math.Atan2(c.Start.First - c.Center.First, c.Start.Second - c.Center.Second); - double Xrad = num3 < 0.0 ? (2 * Math.PI) + num3 : num3; - //总弧度 - double Totalrad = c.Length / r; - //斜率判断圆弧左转右转(起点与圆心直线斜率小于终点与圆心直线斜率,左转,逆时针;大于则右转) - int dir = -1; - if ( - ((c.Start.Second - c.Center.Second) * (c.End.First - c.Center.First)) - - ((c.Start.First - c.Center.First) * (c.End.Second - c.Center.Second)) - < 0.0 - ) - { - rad = -rad; - } - - if (Math.Abs(Totalrad) > Math.PI) - { - rad = -rad; - } - - double x = (r * Math.Cos((-dir * rad) + Xrad)) + c.Center.Second; - double y = (r * Math.Sin((-dir * rad) + Xrad)) + c.Center.First; - return new SpaceXYZ(x * 1000 / 304.8, y * 1000 / 304.8, 0); - } - - /// - /// 纵断圆弧高程(英制) - /// - /// - /// - /// - /// - /// - public static double GetArcY(double station, LandXMLData_CircCurve c, SpaceXYZ circleCenter, double radius) - { - double[] y = new double[2]; - //(x-x0)^2*+y0^2-R^2 - double num = Math.Pow(radius, 2.0) - Math.Pow(station - circleCenter.Station, 2.0); - //4*R^2-4(x-x0)^2 - //double num2 = 4.0 * Math.Pow(circleCenter.Bottom, 2.0) - 4.0 * num; - //y-y0的开方 - double num3 = Math.Sqrt(num); - //y-y0值的不同符号 - y[0] = circleCenter.Elevation - num3; - y[1] = circleCenter.Elevation + num3; - SpaceXYZ pvi = new(c.First, c.Second); - double elevation; - { - double l1 = GetLength(pvi, new SpaceXYZ(station, y[0])); - double l2 = GetLength(pvi, new SpaceXYZ(station, y[1])); - elevation = l1 <= l2 ? y[0] : y[1]; - } - - return elevation * 1000 / 304.8; - } - - /// - /// 获取圆心坐标 - /// - /// - /// - /// - /// - /// - /// - /// - public SpaceXYZ GetCircleCenter(double x1, double y1, double x2, double y2, double r, bool bump) - { - double c1 = ((x2 * x2) - (x1 * x1) + (y2 * y2) - (y1 * y1)) / (2 * (x2 - x1)); - double c2 = (y2 - y1) / (x2 - x1); //斜率 - double a = (c2 * c2) + 1; - double b = (2 * x1 * c2) - (2 * c1 * c2) - (2 * y1); - double c = (x1 * x1) - (2 * x1 * c1) + (c1 * c1) + (y1 * y1) - (r * r); - //为true时,为凹曲线,false为凸曲线 - if (bump) - { - double y = (-b + Math.Sqrt((b * b) - (4 * a * c))) / (2 * a); - double x = c1 - (c2 * y); - return new SpaceXYZ(x, y); - } - else - { - double y = (-b - Math.Sqrt((b * b) - (4 * a * c))) / (2 * a); - double x = c1 - (c2 * y); - return new SpaceXYZ(x, y); - } - } - - /// - /// 获取任意桩号位置的高程 - /// - /// - /// - /// - public double GetElevAtStation(double station, LandXMLData_Alignment al) - { - double elev = 0.0; - var prof = al.GroundProfile; - //var liprof = al.Profile.ProfileCurve; - //var prof = liprof[0]; - Dictionary> dictcir = DictCir(al); - //+0.1保证终点桩号的小数能满足条件 - for (int i = 0; i < prof.Count - 1; i++) - { - if (station >= prof[i].First && station <= prof[i + 1].First + 0.1) - { - SpaceXYZ stap = new(prof[i].First, prof[i].Second); - SpaceXYZ endp = new(prof[i + 1].First, prof[i + 1].Second); - elev = GetLineY(station, stap, endp); - - foreach (KeyValuePair> cir in dictcir) - { - if (station >= cir.Value[0].Station && station <= cir.Value[2].Station) - { - elev = GetArcY(station, cir.Key, cir.Value[1], cir.Key.Radius); - return elev; - } - } - - return elev; - } - } - - //if (prof[i].GetType() == typeof(TextPoint2D)) - //{ - // SpaceXYZ stap = new SpaceXYZ(prof[i].First, prof[i].Second); - // SpaceXYZ endp = new SpaceXYZ(prof[i + 1].First, prof[i + 1].Second); - // elev = GetLinePtY(station, stap, endp); - //} - - //GetStartAndEndSta() - return elev; - } - - /// - /// 获取任意桩号位置的水平坐标 - /// - /// - /// - /// - public SpaceXYZ GetHorizonCoord(double station, LandXMLData_Alignment al) - { - List hc = al.CoordGeom.HorizonCurve; - SpaceXYZ p = new(0.0, 0.0, 0.0); - Dictionary dicts = GetIntervalRegion(al); - //if (station > al.Length + al.StationStart) - //{ - // return p; - //} - foreach (KeyValuePair dict in dicts) - { - double sta = dict.Value.StartStation; - double end = dict.Value.EndStation; - //加0.1保证终点桩号的小数能满足条件 - if (station >= dict.Value.StartStation && station <= dict.Value.EndStation + 0.1) - { - double distance = station - dict.Value.StartStation; - if (dict.Key.GetType() == typeof(Autodesk.Revit.DB.Curve)) - { - Curve c = (Curve)dict.Key; - //公制转英制,但是显示的时候英制转为公制 - p = GetArcPtCoord(distance, c); - //ReferencePoint refpt = formdoc.FamilyCreate.NewReferencePoint(p); - //refpts.Append(refpt); - //SpaceXYZ spt = new SpaceXYZ(p.X, p.Y, p.Z); - //spt.Station = j + station; - //spt.Bottom = GetElevAtStation(spt.Station, al); - //spts.Add(spt); - } - else if (dict.Key.GetType() == typeof(Line)) - { - Line l = (Line)dict.Key; - - p = GetLinePtCoord(distance, l); - } - //else if (dict.Key.GetType() == typeof(landxml.Spiral)) - else - { - LandXMLData_Spiral s = (LandXMLData_Spiral)dict.Key; - - p = GetSpiralPtCoord(distance, s); - } - } - } - - return p; - } - - /// - /// 得到平曲线参考点 - /// - /// - /// - /// - public List GetHorizonPts(LandXMLData_Alignment al, Document doc) - { - List pts = new(); - var hc = al.CoordGeom.HorizonCurve; - //double station = al.StationStart; - - for (int i = 0; i < hc.Count; i++) - { - //if (i - 1 >= 0) - //{ - // station += hc[i - 1].Length; - //} - if (hc[i].GetType() == typeof(Autodesk.Revit.DB.Curve)) - { - Curve c = (Curve)hc[i]; - for (int j = 0; j < c.Length; j++) - { - //公制转英制,但是显示的时候英制转为公制 - XYZ p = GetArcPtCoord(j, c); - pts.Add(p); - //ReferencePoint refpt = formdoc.FamilyCreate.NewReferencePoint(p); - //refpts.Append(refpt); - //SpaceXYZ spt = new SpaceXYZ(p.X, p.Y, p.Z); - //spt.Station = j + station; - //spt.Bottom = GetElevAtStation(spt.Station, al); - //spts.Add(spt); - } - } - else if (hc[i].GetType() == typeof(Autodesk.Revit.DB.Line)) - { - Line l = (Line)hc[i]; - for (int j = 0; j < l.Length; j++) - { - XYZ p = GetLinePtCoord(j, l); - pts.Add(p); - } - } - else if (hc[i].GetType() == typeof(Spiral)) - { - LandXMLData_Spiral s = (LandXMLData_Spiral)hc[i]; - for (int j = 0; j < s.Length; j++) - { - XYZ p = GetSpiralPtCoord(j, s); - pts.Add(p); - } - } - } - //最后一点 - - XYZ last = new XYZ(hc[hc.Count - 1].End.Second, hc[hc.Count - 1].End.First, 0.0) * 1000 / 304.8; - pts.Add(last); - //ReferencePointArray array = new ReferencePointArray(); - //for (int i = 0; i < pts.Count; i++) - //{ - // ReferencePoint refp = doc.FamilyCreate.NewReferencePoint(pts[i]); - // array.Append(refp); - //} - return pts; - } - - /// - /// 按曲线类型获取区域 - /// - /// - /// - public Dictionary GetIntervalRegion(LandXMLData_Alignment al) - { - var hc = al.CoordGeom.HorizonCurve; - - Dictionary regions = new(); - regions.Clear(); - double currentsta = al.StationStart; - double endsta = 0.0; - if (al != null) - { - for (int i = 0; i < hc.Count; i++) - { - if (i - 1 >= 0) - { - //currentsta += Math.Round(hc[i - 1].Length, 3, MidpointRounding.AwayFromZero); - currentsta += hc[i - 1].Length; - } - - Region re = new(currentsta, endsta); - if (hc[i].GetType() == typeof(Autodesk.Revit.DB.Curve)) - { - Curve c = (Curve)hc[i]; - //re.EndStation = Math.Round(c.Length + currentsta, 3, MidpointRounding.AwayFromZero); - re.EndStation = c.Length + currentsta; - } - else if (hc[i].GetType() == typeof(Autodesk.Revit.DB.Line)) - { - Line l = (Line)hc[i]; - //re.EndStation = Math.Round(l.Length + currentsta, 3, MidpointRounding.AwayFromZero); - re.EndStation = l.Length + currentsta; - } - else - { - LandXMLData_Spiral s = (LandXMLData_Spiral)hc[i]; - re.EndStation = s.Length + currentsta; - } - - regions.Add(hc[i], re); - } - } - - //return allregions; - return regions; - } - - /// - /// 计算两点直线距离 - /// - /// - /// - /// - public static double GetLength(SpaceXYZ p1, SpaceXYZ p2) - { - double num = p1.Station - p2.Station; - double num2 = p1.Elevation - p2.Elevation; - return Math.Sqrt((num * num) + (num2 * num2)); - } - - /// - /// 获取直线上的点(坐标英制) - /// - /// 沿着线路方向从直线起点行走过的距离 - /// - /// - public SpaceXYZ GetLinePtCoord(double length, Line line) - { - XYZ startCoord = new(line.Start.Second, line.Start.First, 0); - XYZ endCoord = new(line.End.Second, line.End.First, 0); - //Autodesk.Revit.DB.Point stapt = Autodesk.Revit.DB.Point.Create(startCoord); - XYZ xyz = endCoord - startCoord; - double length2 = xyz.GetLength(); - //if (length > line.Length) - //{ - // System.Windows.MessageBox.ShowAhead("长度错误"); - //} - XYZ p = xyz * length / length2; - XYZ pt = p + startCoord; - - SpaceXYZ sp = new(pt.X * 1000 / 304.8, pt.Y * 1000 / 304.8, pt.Z * 1000 / 304.8); - - return sp; - } - - /// - /// 纵断直线高程(英制) - /// - /// - /// - /// - /// - public double GetLineY(double station, SpaceXYZ startpoint, SpaceXYZ endpoint) - { - double deltaY = endpoint.Elevation - startpoint.Elevation; - double deltaX = endpoint.Station - startpoint.Station; - double k = deltaY / deltaX; - double c = startpoint.Elevation - (k * startpoint.Station); - double elev = (k * station) + c; - return elev * 1000 / 304.8; - //double[] lineBetween2Points = GetLineBetween2Points(startpoint, endpoint); - //if (lineBetween2Points[1] != 0.0) - //{ - // return (-lineBetween2Points[0] * station - lineBetween2Points[2]) / lineBetween2Points[1]; - //} - //if (startpoint.Bottom <= endpoint.Bottom) - //{ - // return endpoint.Bottom; - //} - //return startpoint.Bottom; - } - - /// - /// 获取缓和曲线上的点(坐标英制) - /// - /// 沿着线路方向从缓和曲线起点行走过的距离 - /// 缓和曲线 - /// 坐标点 - public SpaceXYZ GetSpiralPtCoord(double length, LandXMLData_Spiral spiral) - { - //左右转向 - double num = - ((spiral.PI.Second - spiral.Start.Second) * (spiral.End.First - spiral.Start.First)) - - ((spiral.PI.First - spiral.Start.First) * (spiral.End.Second - spiral.Start.Second)); - //转角符号右为正,左为负 - double direction = num >= 0.0 ? 1 : -1; - //根据起始半径,1:起点为直线,起始曲率半径无穷大;0:起点为圆曲线,起始半径为圆曲线半径,判断是前缓和曲线还是后缓和曲线,前为1,后为0 - int fOrb = spiral.RadiusStart is double.PositiveInfinity or double.MaxValue ? 1 : 0; - //n3为1取终点半径,n3为0取起点半径(圆曲线半径) - double R = fOrb != 0 ? spiral.RadiusEnd : spiral.RadiusStart; - //(缓和曲线长/圆曲线半径)^2 用于计算TotalX,TotalY - num = spiral.Length * spiral.Length / (R * R); - //x,y方向总距离 - spiral.TotalX = spiral.Length * (1.0 - (num / 40.0) + (num * num / 3456.0)); - spiral.TotalY = num * R / 6.0 * (1.0 - (num / 56.0) + (num * num / 7040.0)); - //当前长度 - double l = length; - double totalx = 0.0; - double totaly = 0.0; - double num8 = 1.0; - - if (fOrb == 0) - { - l = spiral.Length - length; - num8 = -1.0; - //x,y方向总距离 - totalx = spiral.TotalX; - totaly = spiral.TotalY; - } - - num = l * l / (2.0 * R * spiral.Length); - - double x = totalx + (num8 * l * (1.0 - (num * num / 10.0) + (Math.Pow(num, 4.0) / 216.0))); - double y = - direction * (-totaly + (l * ((num / 3.0) - (Math.Pow(num, 3.0) / 42.0) + (Math.Pow(num, 5.0) / 1320.0)))); - //转东北距同时转英制 - return TransformXYtoNE(x, y, direction * num8, spiral); - } - - /// - /// 获取圆弧纵断线起点圆心终点 - /// - /// - /// - /// - /// - /// - public List GetStartCenterEnd(LandXMLData_CircCurve c, SpaceXYZ start, SpaceXYZ pi, SpaceXYZ end) - { - List li = new(); - //圆心角 - - double w = c.CurveLength / c.Radius; - //交点距圆弧起点桩号距离(X轴) - double l = Math.Tan(w / 2) * c.Radius; - //起点交点连线 - double θ1 = RadianFromHorizon(start, pi); - //交点终点连线 - double θ2 = RadianFromHorizon(pi, end); - //圆曲线起点 - SpaceXYZ startpoint = new(pi.Station - (l * Math.Cos(θ1)), pi.Elevation - (l * Math.Sin(θ1))); - SpaceXYZ endpoint = new(pi.Station + (l * Math.Cos(θ2)), pi.Elevation + (l * Math.Sin(θ2))); - li.Add(startpoint); - if (θ2 - θ1 > 0) - { - //凹曲线 - //SpaceXYZ centerpoint = new SpaceXYZ(start.Station - c.Radius * Math.Sin(θ1), start.Bottom + c.Radius * Math.Cos(θ1)); - SpaceXYZ centerpoint = GetCircleCenter( - startpoint.Station, - startpoint.Elevation, - endpoint.Station, - endpoint.Elevation, - c.Radius, - true - ); - li.Add(centerpoint); - } - else - { - //凸曲线 - //SpaceXYZ centerpoint = new SpaceXYZ(start.Station + c.Radius * Math.Sin(θ1), start.Bottom - c.Radius * Math.Cos(θ1)); - SpaceXYZ centerpoint = GetCircleCenter( - startpoint.Station, - startpoint.Elevation, - endpoint.Station, - endpoint.Elevation, - c.Radius, - false - ); - li.Add(centerpoint); - } - - //圆曲线终点 - li.Add(endpoint); - return li; - } - - /// - /// 纵断直线与X的夹角(弧度) - /// - /// - /// - /// - public double RadianFromHorizon(SpaceXYZ start, SpaceXYZ end) - { - return Math.Atan((start.Elevation - end.Elevation) / (start.Station - end.Station)); - } - - /// - /// 坐标转换 - /// - /// - /// - /// - public static XYZ TransformPoint(XYZ point, Transform transform) - { - double x = point.X; - double y = point.Y; - double z = point.Z; - - //获取变换的原点和基向量 - XYZ b0 = transform.get_Basis(0); - XYZ b1 = transform.get_Basis(1); - XYZ b2 = transform.get_Basis(2); - XYZ origin = transform.Origin; - - //对原来坐标系统的点在新的坐标系统进行变换 - double xTemp = (x * b0.X) + (y * b1.X) + (z * b2.X) + origin.X; - double yTemp = (x * b0.Y) + (y * b1.Y) + (z * b2.Y) + origin.Y; - double zTemp = (x * b0.Z) + (y * b1.Z) + (z * b2.Z) + origin.Z; - - return new XYZ(xTemp, yTemp, zTemp); - } - - /// - /// 缓和曲线坐标转东北距(坐标英制) - /// - /// - /// - /// - /// - /// - public SpaceXYZ TransformXYtoNE(double x, double y, double signTotalY, LandXMLData_Spiral spi) - { - double DeltaY = spi.End.First - spi.Start.First; - double DeltaX = spi.End.Second - spi.Start.Second; - spi.TotalY = signTotalY * spi.TotalY; - double num3 = - ((spi.TotalX * DeltaY) - (spi.TotalY * DeltaX)) / (Math.Pow(spi.TotalX, 2.0) + Math.Pow(spi.TotalY, 2.0)); - double num4 = - ((spi.TotalX * DeltaX) + (spi.TotalY * DeltaY)) / (Math.Pow(spi.TotalX, 2.0) + Math.Pow(spi.TotalY, 2.0)); - double num5 = (num4 * x) - (num3 * y); - double num6 = (num3 * x) + (num4 * y); - num6 += spi.Start.First; - return new SpaceXYZ((num5 + spi.Start.Second) * 1000 / 304.8, num6 * 1000 / 304.8, 0.0); - } -} diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/GaugesModelView.xaml b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/GaugesModelView.xaml deleted file mode 100644 index 1c315ac..0000000 --- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/GaugesModelView.xaml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -