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;
-
-///
-/// 通过设置属性值,关闭窗口
-///
-///
-///
-///
-/// i:Interaction.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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/GaugesModelView.xaml.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/GaugesModelView.xaml.cs
deleted file mode 100644
index 411752e..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/GaugesModelView.xaml.cs
+++ /dev/null
@@ -1,848 +0,0 @@
-using System.Collections.ObjectModel;
-using System.Data;
-using System.Globalization;
-using System.IO;
-using System.Windows;
-using Autodesk.Revit.DB;
-using Autodesk.Revit.UI;
-
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges;
-
-using Curve = LandXMLData.Curve;
-using LandXMLData_Alignment = LandXMLData.Alignment;
-using LandXMLData_CircCurve = LandXMLData.CircCurve;
-using LandXMLData_Spiral = LandXMLData.Spiral;
-using Line = LandXMLData.Line;
-using Model = LandXMLData.Model;
-using TextPoint2D = LandXMLData.TextPoint2D;
-
-///
-/// Interaction logic for GaugesModelView.xaml
-///
-public partial class GaugesModelView
-{
- public GaugesModelView(UIApplication uiapp)
- {
- InitializeComponent();
- this.uiapp = uiapp;
- doc = uiapp.ActiveUIDocument.Document;
- }
-
- private readonly CircuitHelper ch = new();
- private readonly Document doc;
- private readonly ProfileHelper ph = new();
- private readonly UIApplication uiapp;
- private LandXMLData_Alignment align;
- private ObservableCollection allregions;
- private bool isSolid;
- private Model result;
-
- ///
- /// 按桩号创建体量
- ///
- ///
- ///
- ///
- ///
- ///
- public void CreateFormByStation(
- LandXMLData_Alignment al,
- CurveByPoints horizonCurve,
- double startStation,
- double endStation,
- string startProfilePath,
- string endProfilePath
- )
- {
- var starpara = (startStation - al.StationStart) / horizonCurve.GeometryCurve.Length;
- var endpara = (endStation - al.StationStart) / horizonCurve.GeometryCurve.Length;
- }
-
- ///
- /// 从LandXML中得到平曲线数据转成DataTable
- ///
- ///
- ///
- private DataTable CoordGeomData(LandXMLData_Alignment al)
- {
- DataTable dt = new("CoordGeom");
- dt.Columns.Add("曲线类型", typeof(string)); //直缓圆
-
- dt.Columns.Add("起点北距", typeof(double)); //Y
- dt.Columns.Add("起点东距", typeof(double)); //X
-
- dt.Columns.Add("终点北距", typeof(double)); //Y
- dt.Columns.Add("终点东距", typeof(double)); //X
-
- dt.Columns.Add("半径(m)", typeof(string)); //radius
- dt.Columns.Add("长度(m)", typeof(double)); //length
-
- var hc = al.CoordGeom.HorizonCurve;
-
- for (var i = 0; i < hc.Count; i++)
- {
- var dr = dt.NewRow();
- if (hc[i].GetType() == typeof(Curve))
- {
- var c = (Curve)hc[i];
- //dr[1] = c.GetType().Name;
- dr[0] = "圆曲线";
- dr[1] = Math.Round(c.Start.First, 3, MidpointRounding.AwayFromZero);
- dr[2] = Math.Round(c.Start.Second, 3, MidpointRounding.AwayFromZero);
-
- dr[3] = Math.Round(c.End.First, 3, MidpointRounding.AwayFromZero);
- dr[4] = Math.Round(c.End.Second, 3, MidpointRounding.AwayFromZero);
-
- dr[5] = Math.Round(c.Radius, 3, MidpointRounding.AwayFromZero).ToString(CultureInfo.InvariantCulture);
- dr[6] = Math.Round(c.Length, 3, MidpointRounding.AwayFromZero);
- }
- else if (hc[i].GetType() == typeof(Line))
- {
- var l = (Line)hc[i];
- //dr[1] = l.GetType().Name;
- dr[0] = "直线";
- dr[1] = Math.Round(l.Start.First, 3, MidpointRounding.AwayFromZero);
- dr[2] = Math.Round(l.Start.Second, 3, MidpointRounding.AwayFromZero);
-
- dr[3] = Math.Round(l.End.First, 3, MidpointRounding.AwayFromZero);
- dr[4] = Math.Round(l.End.Second, 3, MidpointRounding.AwayFromZero);
-
- dr[5] = "∞";
- dr[6] = Math.Round(l.Length, 3, MidpointRounding.AwayFromZero);
- }
- else if (hc[i].GetType() == typeof(Spiral))
- {
- var s = (LandXMLData_Spiral)hc[i];
- //dr[1] = s.GetType().Name;
- dr[0] = "缓和曲线";
-
- dr[1] = Math.Round(s.Start.First, 3, MidpointRounding.AwayFromZero);
- dr[2] = Math.Round(s.Start.Second, 3, MidpointRounding.AwayFromZero);
-
- dr[3] = Math.Round(s.End.First, 3, MidpointRounding.AwayFromZero);
- dr[4] = Math.Round(s.End.Second, 3, MidpointRounding.AwayFromZero);
- dr[5] = s.RadiusStart + "-" + s.RadiusEnd;
- dr[6] = Math.Round(s.Length, 3, MidpointRounding.AwayFromZero);
- }
-
- dt.Rows.Add(dr);
- }
-
- return dt;
- }
-
- ///
- /// 从LandXML中得到竖曲线数据转成DataTable
- ///
- ///
- ///
- private DataTable ProfileData(LandXMLData_Alignment al)
- {
- DataTable dt = new("Profile");
- dt.Columns.Add("类型", typeof(string)); //起终点,变坡点
- dt.Columns.Add("桩号(m)", typeof(double));
- dt.Columns.Add("高程(m)", typeof(double));
- dt.Columns.Add("半径(m)", typeof(string));
- dt.Columns.Add("曲线长(m)", typeof(double));
- var profCurs = al.Profile.ProfileCurve;
-
- for (var i = 0; i < profCurs.Count; i++)
- {
- for (var j = 0; j < profCurs[i].PVIs.Count; j++)
- {
- var p = profCurs[i].PVIs[j];
- var dr = dt.NewRow();
-
- if (p.GetType() == typeof(TextPoint2D) && j == 0)
- {
- var t = p;
- //dr[1] = t.GetType().Name;
- dr[0] = "起点";
- dr[1] = Math.Round(t.First, 3, MidpointRounding.AwayFromZero);
- dr[2] = Math.Round(t.Second, 3, MidpointRounding.AwayFromZero);
- dr[3] = 0;
- dr[4] = t.Length;
- }
- else if (p.GetType() == typeof(CircCurve))
- {
- var c = (LandXMLData_CircCurve)p;
- //dr[1] = c.GetType().Name;
- dr[0] = "变坡点";
- dr[1] = Math.Round(c.First, 3, MidpointRounding.AwayFromZero);
- dr[2] = Math.Round(c.Second, 3, MidpointRounding.AwayFromZero);
- dr[3] = c.Radius;
- dr[4] = Math.Round(c.CurveLength, 3, MidpointRounding.AwayFromZero);
- }
- else if (p.GetType() == typeof(TextPoint2D) && j < profCurs[i].PVIs.Count - 1)
- {
- var t = p;
- //dr[1] = t.GetType().Name;
- dr[0] = "变坡点";
- dr[1] = Math.Round(t.First, 3, MidpointRounding.AwayFromZero);
- dr[2] = Math.Round(t.Second, 3, MidpointRounding.AwayFromZero);
- dr[3] = 0;
- dr[4] = t.Length;
- }
- else
- {
- var t = p;
- //dr[1] = t.GetType().Name;
- dr[0] = "终点";
- dr[1] = Math.Round(t.First, 3, MidpointRounding.AwayFromZero);
- dr[2] = Math.Round(t.Second, 3, MidpointRounding.AwayFromZero);
- dr[3] = 0;
- dr[4] = t.Length;
- }
-
- dt.Rows.Add(dr);
- }
- }
-
- return dt;
- }
-
- ///
- /// 初始化区域
- ///
- ///
- ///
- private ObservableCollection Regions(LandXMLData_Alignment al)
- {
- allregions = new ObservableCollection();
-
- var endsta = al.StationStart + al.Length;
- Region re = new(al.StationStart, endsta);
- allregions.Add(re);
- DgCross.ItemsSource = allregions;
- return allregions;
- }
-
- ///
- /// 设置项目基点
- ///
- ///
- private void SetProjectPosition(XYZ position)
- {
- using Transaction trans = new(doc);
- trans.Start("设置项目基点");
- XYZ p = new();
-
- ProjectPosition pp = new(position.X, position.Y, position.Z, 0);
- //设置项目基点
-
- doc.ActiveProjectLocation.SetProjectPosition(p, pp);
- trans.Commit();
- }
-
- private void BtnAdd_Click(object sender, RoutedEventArgs e)
- {
- var endStation = align.StationStart + align.Length;
- Region region = new(allregions[allregions.Count - 1].EndStation, endStation);
- allregions.Add(region);
- }
-
- ///
- /// 删除区间
- ///
- ///
- ///
- private void BtnDelete_Click(object sender, RoutedEventArgs e)
- {
- //Button aBtn = sender as Button;
- //string ID = aBtn.ReferenceFamily.ToString();
-
- allregions.RemoveAt(DgCross.SelectedIndex);
- //DGCross.
- //((Button)sender)
- }
-
- ///
- /// 终点断面
- ///
- ///
- ///
- private void BtnEndLoad_Click(object sender, RoutedEventArgs e)
- {
- const string filter = "断面文件(*.xml;*.rfa)|*.Xml;*.xml;*.rfa|所有文件(*.*)|*.*";
- FileOpenDialog dialog = new(filter) { Title = "选择XML文件", };
- if (dialog.Show() == ItemSelectionDialogResult.Confirmed)
- {
- //Region region = (Region)DGCross.SelectedItem;
- var region = (Region)DgCross.SelectedValue;
- region.FilePathEnd = ModelPathUtils.ConvertModelPathToUserVisiblePath(dialog.GetSelectedModelPath());
- FileInfo fileInfo = new(region.FilePathEnd);
- region.FileNameEnd = fileInfo.Name;
- //BindingExpression b = DGCross.GetBindingExpression();
- //b.UpdateTarget();
- DgCross.ItemsSource = null;
- DgCross.ItemsSource = allregions;
- }
- }
-
- private void BtnSetByCurve_Click(object sender, RoutedEventArgs e)
- {
- if (align != null)
- {
- var dict = ch.GetIntervalRegion(align);
- allregions.Clear();
- allregions = new ObservableCollection();
- foreach (var reg in dict.Values)
- {
- allregions.Add(reg);
- }
-
- DgCross.ItemsSource = null;
- DgCross.ItemsSource = allregions;
- }
- else
- {
- MessageBox.Show("请加载LandXML文件", "提示");
- //System.Windows.MessageBox.ShowAhead("请加载LandXML文档");
- }
- }
-
- ///
- /// 起始断面
- ///
- ///
- ///
- private void BtnStartLoad_Click(object sender, RoutedEventArgs e)
- {
- const string filter = "断面文件(*.xml;*.rfa)|*.Xml;*.xml;*.rfa|所有文件(*.*)|*.*";
- FileOpenDialog dialog = new(filter) { Title = "选择XML文件", };
-
- if (dialog.Show() == ItemSelectionDialogResult.Confirmed)
- {
- //Region region = (Region)DGCross.SelectedItem;
- var region = (Region)DgCross.SelectedValue;
- region.FilePathStart = ModelPathUtils.ConvertModelPathToUserVisiblePath(dialog.GetSelectedModelPath());
- FileInfo fileInfo = new(region.FilePathEnd);
- region.FileNameStart = fileInfo.Name;
- //BindingExpression b = DGCross.GetBindingExpression();
- //b.UpdateTarget();
- DgCross.ItemsSource = null;
- DgCross.ItemsSource = allregions;
- }
- }
-
- ///
- /// 创建体量
- ///
- ///
- ///
- private void CreateFrom_Click(object sender, RoutedEventArgs e)
- {
- using Transaction trans = new(doc, "ProcessMode");
- trans.Start();
- if (doc.IsFamilyDocument)
- {
- var horiPts = ch.GetHorizonPts(align, doc);
- XYZ mDir = new((horiPts[0].X / 2) + (horiPts.Last().X / 2), (horiPts[0].Y / 2) + (horiPts.Last().Y / 2), 0);
- var tf = Transform.CreateTranslation(-mDir);
- foreach (var reg in allregions)
- {
- if (!reg.FileNameStart.EndsWith(".rfa"))
- {
- MessageBox.Show("请设置rfa断面文件", "提示");
- trans.RollBack();
- return;
- }
-
- var pts = ch.Get3DRefPointOfRegion(align, reg, 1);
- //错误警告处理
- var fho1 = trans.GetFailureHandlingOptions();
- fho1.SetFailuresPreprocessor(new FailuresPreProcessor());
- trans.SetFailureHandlingOptions(fho1);
-
- ReferencePointArray translatedRefpts = new();
- for (var i = 0; i < pts.Count; i++)
- {
- //XYZ p = tf.OfPoint(pts[i]);
- var p = CircuitHelper.TransformPoint(pts[i], tf);
-
- var refp = doc.FamilyCreate.NewReferencePoint(p);
- //var refp = doc.FamilyCreate.NewReferencePoint(pts[i]);
- translatedRefpts.Append(refp);
- }
-
- var curve = doc.FamilyCreate.NewCurveByPoints(translatedRefpts);
-
- ReferenceArrayArray profiles = new();
- var staProfileCurs = ph.ProfileFromRfa(uiapp, curve, reg, 0);
- var endProfileCurs = ph.ProfileFromRfa(uiapp, curve, reg, 1);
-
- profiles.Append(staProfileCurs);
- profiles.Append(endProfileCurs);
- ////取得放样融合路径曲线的参照
- ReferenceArray path = new();
- path.Append(curve.GeometryCurve.Reference);
- try
- {
- isSolid = CbSolid.IsChecked == true;
-
- //Getprofiles(curve, reg);
- //doc.FamilyCreate.NewLoftForm(isSolid, Getprofiles(curve, reg));
- doc.FamilyCreate.NewSweptBlendForm(isSolid, path, profiles);
- //doc.FamilyCreate.NewSweptBlendForm(isSolid, path, Getprofiles(curve, reg));
- }
- catch (Exception ex)
- {
- trans.RollBack();
- //throw new Exception(e.ViewMessage);
- MessageBox.Show(ex.Message);
- return;
-
- //throw;
- }
- //doc.FamilyCreate.NewSweptBlendForm(true, path, profiles);
-
- //Autodesk.Revit.DB.Line l=Autodesk.Revit.DB.Line.CreateBound(stapt, enpt);
- //CurveArray curarray = new CurveArray();
- //curarray.Append(l);
- //CurveArrArray curarrarray = new CurveArrArray();
- //curarrarray.Append(curarray);
- //SweepProfile sweep = doc.Application.Create.NewCurveLoopsProfile(curarrarray);
- //doc.FamilyCreate.NewSweep(true, path, sweep, 0, ProfilePlaneLocation.Start);
- //revitDoc.CloseTrigger(false);
- //form.Name = align.Name;
- }
- }
- else
- {
- //Solid solid = GeometryCreationUtilities.CreateSweptBlendGeometry(path,)
- var ds = DirectShape.CreateElement(doc, new ElementId(BuiltInCategory.OST_Mass));
- ds?.AppendShape(new List());
- }
-
- trans.Commit();
- }
-
- private void CreateGaugesModel_Click(object sender, RoutedEventArgs e)
- {
- //Document formdoc = uiApplication.Application.NewFamilyDocument(@"C:\ProgramData\Autodesk\RVT 2017\Family Templates\Chinese\概念体量\公制体量.rft");
- //this.formdoc = formdoc;
- Transaction trans = new(doc, "ProcessMode");
- trans.Start();
- if (doc.IsFamilyDocument)
- {
- var horiPts = ch.GetHorizonPts(align, doc);
- var tf = Transform.CreateTranslation(new XYZ(-horiPts[0].X, -horiPts[0].Y, 0));
-
- foreach (var reg in allregions)
- {
- if (!reg.FileNameStart.EndsWith(".xml"))
- {
- MessageBox.Show("请设置xml断面文件", "提示");
- trans.RollBack();
- return;
- }
-
- var pts = ch.Get3DRefPointOfRegion(align, reg, 1);
-
- //错误警告处理
- var fho1 = trans.GetFailureHandlingOptions();
- fho1.SetFailuresPreprocessor(new FailuresPreProcessor());
- trans.SetFailureHandlingOptions(fho1);
-
- ReferencePointArray refpts = new();
- for (var i = 0; i < pts.Count; i++)
- {
- //XYZ p = tf.OfPoint(pts[i]);
- var p = CircuitHelper.TransformPoint(pts[i], tf);
-
- var refp = doc.FamilyCreate.NewReferencePoint(p);
- //var refp = doc.FamilyCreate.NewReferencePoint(pts[i]);
- refpts.Append(refp);
- }
-
- var curve = doc.FamilyCreate.NewCurveByPoints(refpts);
-
- ReferenceArrayArray profiles = new();
-
- var startprof0 = ph.ProfileFromXml(doc, curve, reg, ph.GetXmlOthersPt(reg.FilePathStart), 0);
- var endprof0 = ph.ProfileFromXml(doc, curve, reg, ph.GetXmlOthersPt(reg.FilePathEnd), 1);
- profiles.Append(startprof0);
- profiles.Append(endprof0);
-
- ////取得放样融合路径曲线的参照
- ReferenceArray path = new();
- path.Append(curve.GeometryCurve.Reference);
-
- doc.FamilyCreate.NewSweptBlendForm(true, path, profiles);
- }
-
- //if (formdoc.IsFamilyDocument)
- //{
- // FamilyManager fm = formdoc.FamilyManager;
- // string name = "formname";
- // FamilyType cft = fm.NewType(name);
- // cft = fm.CurrentType;
- //}
-
- //获取到的是英制的单位*304.8/1000转公制
- //double l0 = curve.GeometryCurve.Length * 304.8 / 1000;
-
- //for (int i = 0; i < allregions.Count; i++)
- //{
- //CreateFormByStation(align, GetHorizonCurve(align), allregions[i].StartStation, allregions[i].EndStation, allregions[i].FilePathStart, allregions[i].FilePathEnd);
- //}
- }
-
- trans.Commit();
- trans.Dispose();
- }
-
- ///
- /// 得到起终点线段中心点的向量的偏移变换
- ///
- private void LoadLandXml_Click(object sender, RoutedEventArgs e)
- {
- const string filter = "LandXML文件(*.Xml,*.xml)|*.Xml;*.xml";
- FileOpenDialog dialog = new(filter) { Title = "选择LandXML文件", };
-
- if (dialog.Show() == ItemSelectionDialogResult.Confirmed)
- {
- var file = ModelPathUtils.ConvertModelPathToUserVisiblePath(dialog.GetSelectedModelPath());
- Loader load = new();
- result = load.Load(file);
- if (doc != null)
- {
- var aligns = result.Alignments.AlignmentList;
- DgHorizon.ItemsSource = CoordGeomData(aligns[0]).DefaultView;
- DgVertical.ItemsSource = ProfileData(aligns[0]).DefaultView;
- DgCross.ItemsSource = Regions(aligns[0]);
- align = aligns[0];
- //DGCross.DataContext = InitCross(al);
- //DGCross.DataContext = InitCross(al);
- //pointsdt = SpaceXYs(CoordGeomData(al));
- //formName = al.Name;
- }
- }
-
- if (result != null)
- {
- btnSetByCurve.IsEnabled = true;
- btnCreateGauges.IsEnabled = true;
- btnCreateForm.IsEnabled = true;
- }
- }
-
- #region 行编号
-
- private void DGHorizon_LoadingRow(object sender, System.Windows.Controls.DataGridRowEventArgs e)
- {
- e.Row.Header = e.Row.GetIndex() + 1;
- }
-
- private void DGVertical_LoadingRow(object sender, System.Windows.Controls.DataGridRowEventArgs e)
- {
- e.Row.Header = e.Row.GetIndex() + 1;
- }
-
- private void DGCross_LoadingRow(object sender, System.Windows.Controls.DataGridRowEventArgs e)
- {
- e.Row.Header = e.Row.GetIndex() + 1;
- }
-
- #endregion 行编号
-
- #region
-
- // formdoc = UiDocument.Document;
- // Transaction trans = new Transaction(formdoc, "horizon");
- // XYZ xAxis = new XYZ(1, 0, 0);
- // XYZ yAxis = new XYZ(0, 1, 0);
- // XYZ zAxis = new XYZ(0, 0, 1);
- // XYZ origin = new XYZ();
- // //生成三维路线的全部点
- // trans.Start();
-
- // //ReferencePointArray refpts = new ReferencePointArray();
- // ReferencePointArray D3pt = new ReferencePointArray();
- // for (int i = 0; i < spts.Count; i++)
- // {
- // XYZ p = new XYZ(spts[i].X, spts[i].Y, spts[i].Bottom);
- // ReferencePoint refpt = formdoc.FamilyCreate.NewReferencePoint(p);
- // D3pt.Append(refpt);
-
- // }
- // //CurveByPoints curve = formdoc.FamilyCreate.NewCurveByPoints(refpts);
-
- // CurveByPoints curve = formdoc.FamilyCreate.NewCurveByPoints(D3pt);
-
- // //curve.GeometryCurve.Evaluate(, false);
- // //curve.GeometryCurve.ComputeDerivatives();
- // trans.Commit();
-
- //var dp = DividedPath.Create(formdoc, refs);
-
- //dp.FixedNumberOfPoints = 200;
- //dp.SpacingRuleLayout = SpacingRuleLayout.FixedNumber;
- //dp.MeasurementType = DividedPathMeasurementType.SegmentLength;
- ////Options ops = new Options();
- ////ops.View = formdoc.ActiveView;
-
- ////var points = dp.get_Geometry(ops).GetEnumerator();
- ////Autodesk.Revit.DB.Point pt=
- //ErrorModels pts = new ErrorModels();
- //formdoc.Regenerate();
- //Options opts = dp.Document.Application.Create.NewGeometryOptions();
- //opts.ComputeReferences = true;
- //opts.View = dp.Document.ActiveView;
- ////opts.IncludeNonVisibleObjects = true;
- //GeometryElement geoels = dp.get_Geometry(opts);
- //var elsenu = geoels.GetEnumerator();
-
- //while (elsenu.MoveNext())
- //{
- // Autodesk.Revit.DB.Point pt = (Autodesk.Revit.DB.Point)elsenu.Current;
- // pts.Add(pt);
- //}
- //ReferencePointArray refpts = new ReferencePointArray();
- //foreach (var pt in pts)
- //{
- // ReferencePoint refpt = formdoc.FamilyCreate.NewReferencePoint(pt.Coord);
- // refpts.Append(refpt);
- //}
- //CurveByPoints HorizonCurve = formdoc.FamilyCreate.NewCurveByPoints(refpts);
- ////var p = HorizonCurve.GeometryCurve.Evaluate(0.5, true);
- ////var l = HorizonCurve.GeometryCurve.Tessellate();
- ////var r = HorizonCurve.GeometryCurve.ProjectOf(origin);
-
- //HorizonCurve.GeometryCurve.GetEndParameter(1);
- //PointOnCurveMeasurementType.SegmentLength;点沿着曲线放置方式
-
- //private IList SpaceXYs(DataTable dt)
- //{
- // IList pts = new ErrorModels();
- // for (int i = 0; i < dt.Rows.Count; i++)
- // {
- // if (i < dt.Rows.Count - 1)
- // {
- // XYZ pt = new XYZ(Convert.ToDouble(dt.Rows[i][2]), Convert.ToDouble(dt.Rows[i][3]), 0);
- // pts.Add(pt);
- // }
- // else
- // {
- // pts.Add(new XYZ(Convert.ToDouble(dt.Rows[i][6]), Convert.ToDouble(dt.Rows[i][7]), 0));
- // }
- // }
- // return pts;
- //}
- /////
- //private void CreatForm(string formname, IList pts)
- //{
- // Document formdoc = uiApplication.Application.NewFamilyDocument(@"C:\ProgramData\Autodesk\RVT 2016\Family Templates\Chinese\概念体量\公制体量.rft");
- // this.formdoc = formdoc;
-
- // #region 注释
- // //FilteredElementCollector col = new FilteredElementCollector(formdoc).OfClass(typeof(View3D));
- // //foreach (View3D v3d in col)
- // //{
- // // if (v3d.ViewName =="{3D}")
- // // {
- // // v = v3d;
- // // }
- // //}
-
- // //XYZ max = new XYZ();
- // //XYZ min = new XYZ();
- // //max= curve.get_BoundingBox(v).Max;
- // //min = curve.get_BoundingBox(v).Min;
-
- // //XYZ v = new XYZ(-(refpoints.get_Item(0).Position.X + refpoints.get_Item(refpoints.Size - 1).Position.X) / 2, -(refpoints.get_Item(0).Position.Y + refpoints.get_Item(refpoints.Size - 1).Position.Y) / 2, 0);
- // #endregion
-
- // //得到变换向量坐标
- // ReferencePointArray refpoints = new ReferencePointArray();
- // XYZ v = new XYZ(-(pts[0].X + pts[pts.Count - 1].X) * 1000 / 304.8 / 2, -(pts[0].Y + pts[pts.Count - 1].Y) * 1000 / 304.8 / 2, 0);
-
- // //项目基点坐标
- // XYZ projectPt = v.Negate();
- // Transform tf = Transform.CreateTranslation(v);
- // refpoints.Clear();
- // Transaction tr = new Transaction(formdoc);
- // tr.Start("创建实体");
- // foreach (var pt in pts)
- // {
- // //XYZ point = ImpericalToMetric(pt);
- // //XYZ xyz = TransformPoint(point, tf);
- // XYZ xyz = TransformPoint(pt, tf);
- // ReferencePoint refpt = formdoc.FamilyCreate.NewReferencePoint(xyz);
- // refpoints.Append(refpt);
- // }
- // CurveByPoints curve = formdoc.FamilyCreate.NewCurveByPoints(refpoints);
-
- // //BoundingBoxXYZ bd = new BoundingBoxXYZ();
- // //Plane staplane = Plane.CreateByNormalAndOrigin((curve.GeometryCurve as HermiteSpline).Tangents[0], curve.GeometryCurve.GetEndPoint(0));
- // #region 截面
- // Plane staplane = Plane.CreateByNormalAndOrigin(curve.GeometryCurve.GetEndPoint(0), (curve.GeometryCurve as HermiteSpline).Tangents[0]);
-
- // Arc arc0 = Arc.Create(staplane, 2000 / 304.8, 0, 2 * Math.PI);
- // ModelCurve mc = formdoc.FamilyCreate.NewModelCurve(arc0, SketchPlane.Create(formdoc, staplane));
-
- // //Plane endplane = Plane.CreateByNormalAndOrigin((curve.GeometryCurve as HermiteSpline).Tangents[pts.Count - 1], curve.GeometryCurve.GetEndPoint(1));
- // Plane endplane = Plane.CreateByNormalAndOrigin(curve.GeometryCurve.GetEndPoint(1), (curve.GeometryCurve as HermiteSpline).Tangents[pts.Count - 1]);
-
- // //curve.GeometryCurve.ComputeDerivatives(0, true)
- // Arc arc1 = Arc.Create(endplane, 3000 / 304.8, 0, 2 * Math.PI);
- // ModelCurve mc0 = formdoc.FamilyCreate.NewModelCurve(arc1, SketchPlane.Create(formdoc, endplane));
- // #endregion
-
- // #region 生成参照及模型
- // //取得截面模型线的参照
- // ReferenceArray profile0 = new ReferenceArray();
- // profile0.Append(mc.GeometryCurve.Reference);
- // ReferenceArray profile1 = new ReferenceArray();
- // profile1.Append(mc0.GeometryCurve.Reference);
-
- // //作为轮廓
- // ReferenceArrayArray profiles = new ReferenceArrayArray();
- // profiles.Append(profile0);
- // profiles.Append(profile1);
-
- // //取得路径曲线的参照
- // ReferenceArray path = new ReferenceArray();
- // path.Append(curve.GeometryCurve.Reference);
-
- // //var s = formdoc.FamilyCreate.NewSweptBlendForm(true, path, profiles);
- // var s = formdoc.FamilyCreate.NewSweptBlendForm(true, path, profiles);
- // if (formdoc.IsFamilyDocument)
- // {
- // FamilyManager fm = formdoc.FamilyManager;
-
- // FamilyType cft = fm.NewType(formname);
- // cft = fm.CurrentType;
- // }
- // #endregion
- // tr.Commit();
-
- // LoadAndCreateInstance(formname);
- // SetProjectPosition(projectPt);
- //}
- /////
- //public void LoadAndCreateInstance(string name)
- //{
- // Transaction trans = new Transaction(formdoc, "Excm");
- // using (TransactionGroup tg = new TransactionGroup(doc, "创建路面"))
- // {
- // if (tg.Start() == TransactionStatus.Started)
- // {
- // LoadOpions lo = new LoadOpions();
-
- // Family fa = formdoc.LoadFamily(doc);
- // formdoc.CloseTrigger(false);
-
- // trans = new Transaction(doc, "Change Family Name");
- // trans.Start();
- // fa.Name = name;
- // FilteredElementCollector col = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol));
- // FamilySymbol familySymbol = null;
- // foreach (FamilySymbol fs in col)
- // {
- // if (fs.Name == name)
- // {
- // familySymbol = fs;
- // }
- // }
- // familySymbol.Activate();
- // Autodesk.Revit.DB.View v = doc.ActiveView;
-
- // StructuralType stNon = StructuralType.NonStructural;
- // FamilyInstance instance = doc.Create.NewFamilyInstance(new XYZ(), familySymbol, stNon);
- // trans.Commit();
- // trans.Dispose();
- // tg.Assimilate();
- // }
- // else
- // {
- // tg.RollBack();
- // }
- // };
- //}
- //private ReferenceArrayArray Getprofiles(CurveByPoints curve, Region reg)
- //{
- // Document revitDoc = uiApplication.Application.OpenDocumentFile(reg.FilePathStart);
- // FilteredElementCollector modelCurveCollector = new FilteredElementCollector(revitDoc);
- // ErrorModels modelCurveList =
- // modelCurveCollector.OfCollector(BuiltInCategory.OST_Lines).OfClass(typeof(CurveElement)).ToList()
- // .ConvertAll(x => x as ModelCurve);
- // ReferenceArray profile = new ReferenceArray();
- // ReferenceArrayArray profiles = new ReferenceArrayArray();
- // IList tangents = (curve.GeometryCurve as HermiteSpline).Tangents;
- // for (int i = 0; i < tangents.Count; i = i + 4)
- // {
- // //为了求出X轴的单位向量
- // XYZ horizonNor = new XYZ(tangents[i].X, tangents[i].Y, 0);
- // XYZ orign = curve.GeometryCurve.Evaluate(i * 1000 / 304.8, false);
- // //curve在xy平面上的投影,某点的工作平面
- // //Plane horiCurPl = Plane.CreateByNormalAndOrigin(horizonNor, orign);
- // //XYZ xVect = horiCurPl.XVec;
- // //叉乘求出X轴单位向量
- // XYZ xAxis = horizonNor.CrossProduct(new XYZ(0, 0, 1)).Normalize();
- // //在curve上的工作平面
- // Plane pl = Plane.CreateByNormalAndOrigin(tangents[i], orign);
- // SketchPlane skp = SketchPlane.Create(doc, pl);
- // //XYZ xVect = pl.XVec;//z=0
- // //求出curve上某点工作平面的y向量
- // XYZ yAxis = xAxis.CrossProduct(tangents[i]).Normalize();//z>0
- // if (yAxis.Z < 0)
- // {
- // //xVect = horiCurPl.XVec.Negate();
- // xAxis = xAxis.Negate();
- // yAxis = yAxis.Negate();
- // }
- // foreach (ModelCurve c in modelCurveList)
- // {
- // if (c.GetType() == typeof(ModelLine))
- // {
- // ModelLine ml = (ModelLine)c;
- // var startpt = ml.GeometryCurve.GetEndPoint(0);
- // var endpt = ml.GeometryCurve.GetEndPoint(1);
- // XYZ stapt = (startpt.X * xAxis) + orign + startpt.Y * yAxis;
- // XYZ enpt = endpt.X * xAxis + orign + endpt.Y * yAxis;
- // Autodesk.Revit.DB.Line l = Autodesk.Revit.DB.Line.CreateBound(stapt, enpt);
-
- // ModelCurve m_l = doc.FamilyCreate.NewModelCurve(l, skp);
- // profile.Append(m_l.GeometryCurve.Reference);
- // }
- // else if (c.GetType() == typeof(ModelArc))
- // {
- // ModelArc marc = (ModelArc)c;
- // Arc ar = (Arc)marc.GeometryCurve;
- // //XYZ startpt = marc.GeometryCurve.GetEndPoint(0);
- // //XYZ centpt = marc.GeometryCurve.Evaluate(0.5, true);
- // //XYZ endpt = marc.GeometryCurve.GetEndPoint(1);
-
- // Arc arc;
- // if (marc.GeometryCurve.IsBound)
- // {
- // XYZ startpt = ar.GetEndPoint(0);
- // XYZ centpt = ar.Evaluate(0.5, true);
- // XYZ endpt = ar.GetEndPoint(1);
-
- // XYZ stapt = startpt.X * xAxis + orign + startpt.Y * yAxis;
- // XYZ cept = centpt.X * xAxis + orign + centpt.Y * yAxis;
- // XYZ enpt = endpt.X * xAxis + orign + endpt.Y * yAxis;
- // arc = Arc.Create(stapt, enpt, cept);
- // }
- // else
- // {
- // XYZ center = ar.HorizontallyCenter.X * xAxis + orign + ar.HorizontallyCenter.Y * yAxis;
- // arc = Arc.Create(center, ar.Radius, 0, 2 * Math.PI, xAxis, yAxis);
- // //arc = Arc.Create(pl, ar.Radius, 0, 2 * Math.PI);
- // }
- // ModelCurve m_c = doc.FamilyCreate.NewModelCurve(arc, skp);
- // profile.Append(m_c.GeometryCurve.Reference);
- // }
-
- // }
- // profiles.Append(profile);
- // }
-
- // return profiles;
- //}
-
- #endregion
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AGenerationRange.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AGenerationRange.cs
deleted file mode 100644
index 93c595e..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AGenerationRange.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType]
- [Serializable]
- public abstract class AGenerationRange : IGenerationRange
- {
- [XmlAttribute("end")]
- public abstract double EndStation { get; set; }
-
- [XmlAttribute("endG")]
- public abstract double GenerationEndStation { get; set; }
-
- [XmlAttribute("startG")]
- public abstract double GenerationStartStation { get; set; }
-
- public Tuple GetGenerationScopeIntersection(IGenerationRange parent)
- {
- return new Tuple(
- Math.Max(parent.GenerationStartStation, GenerationStartStation),
- Math.Min(parent.GenerationEndStation, GenerationEndStation)
- );
- }
-
- [XmlAttribute("start")]
- public abstract double StartStation { get; set; }
-
- public void SetRange(double start, double end)
- {
- GenerationStartStation = start;
- StartStation = start;
- GenerationEndStation = end;
- EndStation = end;
- }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Alignment.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Alignment.cs
deleted file mode 100644
index 8732bbb..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Alignment.cs
+++ /dev/null
@@ -1,556 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData;
-
-[XmlType("Alignment")]
-[Serializable]
-public class Alignment : ComparableStructure
-{
- public Alignment()
- {
- Init();
- }
-
- public Alignment(Alignment alignment)
- {
- if (alignment != null)
- {
- Id = alignment.Id;
- Description = alignment.Description;
- Name = alignment.Name;
- StationStart = alignment.StationStart;
- StationEnd = alignment.StationEnd;
- Length = alignment.Length;
- CoordGeom = alignment.CoordGeom;
- Regions = alignment.Regions;
- FeatureLines = alignment.FeatureLines;
- CrossSections = alignment.CrossSections;
- Profile = alignment.Profile;
- SuperElevations = alignment.SuperElevations;
- Structres = alignment.Structres;
- Import = alignment.Import;
- geometricCenter = alignment.geometricCenter;
- return;
- }
-
- Init();
- }
-
- private string description;
- private Point3D geometricCenter;
-
- private string id;
-
- private string name;
-
- [XmlIgnore]
- public Point3D GeometricCenter
- {
- get
- {
- if (geometricCenter == null)
- {
- SetGeometricCenter();
- }
-
- return geometricCenter;
- }
- set => geometricCenter = null;
- }
-
- [Obsolete("Property \"GetGeometricCenter\" is deprecated, please use \"GeometricCenter\" instead.")]
- [XmlIgnore]
- public Point3D GetGeometricCenter => GeometricCenter;
-
- [XmlIgnore]
- public ProfAlign GroundProfile => Profile.ProfileCurve.Find(item => item.Type == 0) ?? Profile.ProfileCurve.FirstOrDefault();
-
- [XmlIgnore]
- public IEnumerable PointCodes => CrossSections.SelectMany(item => item.PointCodes);
-
- [XmlIgnore]
- public IEnumerable SurfaceNames => CrossSections.SelectMany(item => item.SurfaceNames);
-
- [XmlIgnore]
- public ProfAlign WayProfile
- {
- get
- {
- ProfAlign result;
- if ((result = Profile.ProfileCurve.Find(item => item.Type == 1)) == null)
- {
- result = Profile.ProfileCurve.Find(item => item.Type == 2) ?? Profile.ProfileCurve.FirstOrDefault();
- }
-
- return result;
- }
- }
-
- [XmlAttribute("desc")]
- public string Description
- {
- get => description;
- set => description = value;
- }
-
- [XmlAttribute("AlignmentID")]
- public string Id
- {
- get => id;
- set => id = value;
- }
-
- [XmlAttribute("name")]
- public string Name
- {
- get => name;
- set => name = value;
- }
-
- [XmlIgnore]
- internal string AlignmentId => (Roadway != null ? Roadway.CorridorID : string.Empty) + Id;
-
- [XmlAttribute("import")]
- public bool Import { get; set; }
-
- [XmlElement("CoordGeom")]
- public CoordGeom CoordGeom { get; set; }
-
- [XmlAttribute("staStart")]
- public double StationStart { get; set; }
-
- [XmlAttribute("staEnd")]
- public double StationEnd { get; set; }
-
- [XmlAttribute("length")]
- public double Length { get; set; }
-
- [XmlArray("CrossSects")]
- public List CrossSections { get; set; }
-
- [XmlArray("FeatureLines")]
- public List FeatureLines { get; set; }
-
- [XmlArray("Regions")]
- public List Regions { get; set; }
-
- [XmlArray("Structures")]
- public List Structres { get; set; }
-
- [XmlElement("Profile")]
- public Profile Profile { get; set; }
-
- [XmlElement("Superelevation")]
- public List SuperElevations { get; set; }
-
- [XmlIgnore]
- public Roadway Roadway { get; set; }
-
- public void AddRegion(Region region)
- {
- Regions.Add(region);
- region.Alignment = this;
- }
-
- public void ConnectRegions()
- {
- foreach (var region in Regions)
- {
- region.Alignment = this;
- }
- }
-
- public void ConnectSectionsShape(DesignShape linkShape, DesignShape refShape, CrossSection section, CrossSection refSection = null)
- {
- var num = 0;
- linkShape.CrossSectionPoints.Clear();
- var array = (from ds in section.DesignShapes where ds.Name == refShape.Name && ds.Side == refShape.Side select ds)
- .SelectMany(ds => ds.CrossSectionPoints)
- .ToArray();
- var list = !(refSection != null)
- ? new List()
- : (from ds in refSection.DesignShapes where ds.Name == refShape.Name && ds.Side == refShape.Side select ds)
- .SelectMany(ds => ds.CrossSectionPoints)
- .ToList();
- var list2 = list;
- using (var enumerator = refShape.CrossSectionPoints.GetEnumerator())
- {
- while (enumerator.MoveNext())
- {
- var point = enumerator.Current;
- var crossSectionPoint = array.FirstOrDefault(p => p.Code == point?.Code);
- if (crossSectionPoint != null)
- {
- linkShape.CrossSectionPoints.Add(new CrossSectionPoint(crossSectionPoint));
- }
- else
- {
- var num2 = list2.IndexOf(point);
- if (num2 >= 0)
- {
- num = num2;
- }
-
- CrossSectionPoint crossSectionPoint2 = new(num < array.Length ? array[num] : array.Last()) { Code = point?.Code };
- linkShape.CrossSectionPoints.Add(crossSectionPoint2);
- }
-
- num++;
- }
- }
-
- linkShape.UpdatePointDependentData();
- section.DesignShapes.Add(linkShape);
- }
-
- public override bool DifferentDescendants(Alignment alignment)
- {
- if (Regions.Count == alignment.Regions.Count)
- {
- for (var i = 0; i < Regions.Count; i++)
- {
- if (!Regions[i].Equals(alignment.Regions[i]))
- {
- return true;
- }
- }
-
- return false;
- }
-
- return true;
- }
-
- public override bool DifferentItem(Alignment alignment)
- {
- return StationStart != alignment.StationStart || StationEnd != alignment.StationEnd || GeometricCenter != alignment.GeometricCenter;
- }
-
- public Region FindRegion(Region reference)
- {
- return Regions.FirstOrDefault(item => item.Name == reference.Name);
- }
-
- public Point3D GeometricCenterInRange(double startStation, double endStation)
- {
- var array = (from item in CrossSections where item.Station >= startStation && item.Station <= endStation select item).ToArray();
- return CalcGeometricCenter(array, array.Length);
- }
-
- public double GetAzimuthAtStation(double station)
- {
- var num = 0.0;
- var num2 = 0.0;
- foreach (var interval in CoordGeom.HorizonCurve)
- {
- if (num + interval.Length >= station)
- {
- num2 += interval.GetDirectionAtPoint(station - num);
- break;
- }
-
- num2 += interval.GetDirectionAtPoint(interval.Length);
- num += interval.Length;
- }
-
- return num2;
- }
-
- //直线
- public double GetHeightAtStation(double station)
- {
- var result = 0.0;
- var profAlign = Profile.ProfileCurve.FirstOrDefault(item => item.Type == 2);
- if (profAlign != null)
- {
- var num = profAlign.PVIs.Count - 1;
- var i = 0;
- while (i < num)
- {
- if (profAlign.PVIs[i].First >= station)
- {
- if (profAlign.PVIs[i] is not ParaCurve && profAlign.PVIs[i + 1] is not ParaCurve)
- {
- result =
- profAlign.PVIs[i].Second
- + (
- (station - profAlign.PVIs[i].First)
- * (profAlign.PVIs[i + 1].Second - profAlign.PVIs[i].Second)
- / (profAlign.PVIs[i + 1].First - profAlign.PVIs[i].First)
- );
- }
-
- break;
- }
-
- i++;
- }
- }
-
- return result;
- }
-
- public IEnumerable GetPointCodes(Side side, int region = -1)
- {
- return region >= 0
- ? side != Side.Both
- ? (from item in CrossSections where item.Region == region select item).SelectMany(item => item.GetPointCodes(side)).Distinct()
- : (from item in CrossSections where item.Region == region select item).SelectMany(item => item.PointCodes).Distinct()
- : side != Side.Both
- ? CrossSections.SelectMany(item => item.GetPointCodes(side)).Distinct()
- : PointCodes.Distinct();
- }
-
- public void Initialize(string n, double s, double e, double l, string id, string d)
- {
- Name = n;
- StationStart = s;
- StationEnd = e;
- Length = l;
- Id = id;
- Description = d;
- }
-
- public void RefreshShapes() { }
-
- public void RemoveRegion(Region region)
- {
- if (Regions.Remove(region))
- {
- region.Alignment = null;
- }
- }
-
- public void RemoveSameSections()
- {
- for (var i = CrossSections.Count - 1; i > 0; i--)
- {
- if (CrossSections[i - 1].Station == CrossSections[i].Station)
- {
- CrossSections.RemoveAt(i);
- }
- }
-
- GeometricCenter = null;
- }
-
- public void ResetImportsAndParts()
- {
- try
- {
- Import = true;
- foreach (var crossSection in CrossSections)
- {
- crossSection.Import = true;
- foreach (var designShape in crossSection.DesignShapes)
- {
- designShape.Import = true;
- designShape.Part = 0;
- }
-
- for (var i = crossSection.DesignShapes.Count - 1; i >= 0; i--)
- {
- var shape = crossSection.DesignShapes[i];
- if (crossSection.DesignShapes.Count(ds => ds.NameSide == shape.NameSide) > 1)
- {
- if (shape.CrossSectionPoints.Count < crossSection.DesignShapes.Max(ds => ds.CrossSectionPoints.Count))
- {
- crossSection.DesignShapes.RemoveAt(i);
- }
- }
- }
- }
- }
- catch
- {
- // ignored
- }
- }
-
- public void SplitDifferentParts()
- {
- try
- {
- var crossSection = CrossSections.Count > 0 ? CrossSections[0] : null;
- for (var i = 1; i < CrossSections.Count; i++)
- {
- var crossSection2 = CrossSections[i];
- if (crossSection2.Import)
- {
- var count = crossSection2.DesignShapes.Count;
- for (var j = 0; j < count; j++)
- {
- var shape = crossSection2.DesignShapes[j];
- var pointCodesFlat = shape.PointCodesFlat;
- var designShape = crossSection.DesignShapes.FirstOrDefault(ds => ds.NameSideSegment == shape.NameSideSegment);
- var flag4 = !crossSection.Import;
- var flag5 =
- designShape != null && designShape.PointCodesFlat != pointCodesFlat && crossSection2.Station != crossSection.Station;
- if (designShape == null || !designShape.Import || flag5 || crossSection2.Region != crossSection.Region)
- {
- flag4 = shape.Import;
- if (flag5)
- {
- if (shape.Import && crossSection.DesignShapes.Count < crossSection2.DesignShapes.Count)
- {
- ConnectSectionsShape(new DesignShape(designShape) { Import = false }, designShape, crossSection2, crossSection);
- }
- else if (designShape.Import)
- {
- DesignShape designShape2 = new(shape) { Import = true };
- ConnectSectionsShape(designShape2, shape, crossSection, crossSection2);
- AddRange(crossSection2, shape, i);
- designShape2.Part = i;
- }
- }
- }
-
- if (!crossSection.Import)
- {
- AddRange(crossSection2, shape, i);
- for (var k = i + 1; k < CrossSections.Count; k++)
- {
- var designShape3 = CrossSections[k].DesignShapes.FirstOrDefault(ds => ds.NameSideSegment == shape.NameSideSegment);
- if (designShape3 != null)
- {
- designShape3.Part = i;
- }
- }
-
- shape.Part = i;
- }
- }
- }
-
- crossSection = crossSection2;
- }
- }
- catch
- {
- // ignored
- }
- }
-
- public void Transform(GeometryTransformations transformations)
- {
- foreach (var interval in CoordGeom.HorizonCurve)
- {
- interval.Transform(transformations);
- }
-
- StationStart *= transformations.ScaleFactor;
- StationEnd *= transformations.ScaleFactor;
- foreach (var region in Regions)
- {
- region.StartStation *= transformations.ScaleFactor;
- region.EndStation *= transformations.ScaleFactor;
- }
-
- foreach (var crossSection in CrossSections)
- {
- crossSection.Transform(transformations);
- }
-
- foreach (var profAlign in Profile.ProfileCurve)
- {
- profAlign.Transform(transformations);
- }
-
- GeometricCenter = null;
- }
-
- public void TransformByScale(double scale)
- {
- var point3D = GeometricCenter;
- var flag = point3D.LengthSquared3D != 0.0;
- GeometryTransformations geometryTransformations = new();
- if (flag)
- {
- geometryTransformations.Translation(-point3D.X, -point3D.Y, -point3D.Z);
- }
-
- geometryTransformations.Scale(scale);
- point3D *= scale;
- if (flag)
- {
- geometryTransformations.Translation(point3D.X, point3D.Y, point3D.Z);
- }
-
- Transform(geometryTransformations);
- }
-
- protected void AddRange(Part part, double start, double end, int i)
- {
- Range range = new() { Part = i };
- range.SetRange(start, end);
- part.AddRange(range);
- }
-
- protected Point3D CalcGeometricCenter(IEnumerable sections, int count)
- {
- Point3D point3D = new();
- if (count != 0)
- {
- foreach (var p in sections)
- {
- point3D += p / count;
- }
- }
-
- return point3D;
- }
-
- protected void SetGeometricCenter()
- {
- if (CrossSections != null)
- {
- geometricCenter = CalcGeometricCenter(CrossSections, CrossSections.Count);
- return;
- }
-
- geometricCenter = new Point3D();
- }
-
- internal void AddRange(CrossSection section, DesignShape shape, int i)
- {
- var region = Regions.FirstOrDefault(item => item.Id == section.Region);
- if (region != null)
- {
- var part = region.Parts.FirstOrDefault(item => item.NameSideSegment == shape.NameSideSegment);
- var endStation = part.Ranges.Last().EndStation;
- if (section.Station > endStation)
- {
- AddRange(part, endStation, section.Station, i);
- return;
- }
-
- if (section.Station != endStation)
- {
- var startStation = part.Ranges.First().StartStation;
- if (section.Station < startStation)
- {
- AddRange(part, section.Station, startStation, i);
- return;
- }
-
- if (section.Station != startStation)
- {
- part.Ranges.Last().EndStation = section.Station;
- AddRange(part, section.Station, endStation, i);
- }
- }
- }
- }
-
- private void Init()
- {
- CrossSections = new List();
- FeatureLines = new List();
- Regions = new List();
- SuperElevations = new List();
- CoordGeom = new CoordGeom();
- Profile = new Profile();
- geometricCenter = null;
- Import = true;
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Alignments.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Alignments.cs
deleted file mode 100644
index 5584110..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Alignments.cs
+++ /dev/null
@@ -1,122 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType("Alignments")]
- [Serializable]
- public class Alignments : ComparableStructure
- {
- public Alignments()
- {
- AlignmentList = new List();
- }
-
- [XmlIgnore]
- public Alignment this[int index]
- {
- get
- {
- if (index < AlignmentList.Count)
- {
- return AlignmentList[index];
- }
-
- throw new IndexOutOfRangeException();
- }
- set
- {
- if (index < AlignmentList.Count)
- {
- AlignmentList[index] = value;
- return;
- }
-
- if (index == AlignmentList.Count)
- {
- AlignmentList.Add(value);
- return;
- }
-
- throw new IndexOutOfRangeException();
- }
- }
-
- [XmlIgnore]
- public int Count => AlignmentList.Count;
-
- [XmlIgnore]
- public bool IsReadOnly => false;
-
- [XmlElement("Alignment")]
- public List AlignmentList { get; set; }
-
- [XmlAttribute("name")]
- public string Name { get; set; }
-
- public void Add(Alignment item)
- {
- AlignmentList.Add(item);
- }
-
- public void Clear()
- {
- AlignmentList.Clear();
- }
-
- public bool Contains(Alignment item)
- {
- return AlignmentList.Contains(item);
- }
-
- public void CopyTo(Alignment[] array, int arrayIndex)
- {
- AlignmentList.CopyTo(array, arrayIndex);
- }
-
- public override bool DifferentDescendants(Alignments alignments)
- {
- if (AlignmentList.Count == alignments.AlignmentList.Count)
- {
- for (int i = 0; i < AlignmentList.Count; i++)
- {
- if (!AlignmentList[i].Equals(alignments.AlignmentList[i]))
- {
- return true;
- }
- }
- }
-
- return false;
- }
-
- public override bool DifferentItem(Alignments alignments)
- {
- return false;
- }
-
- public IEnumerator GetEnumerator()
- {
- return AlignmentList.GetEnumerator();
- }
-
- public int IndexOf(Alignment item)
- {
- return AlignmentList.IndexOf(item);
- }
-
- public void Insert(int index, Alignment item)
- {
- AlignmentList.Insert(index, item);
- }
-
- public bool Remove(Alignment item)
- {
- return AlignmentList.Remove(item);
- }
-
- public void RemoveAt(int index)
- {
- AlignmentList.RemoveAt(index);
- }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Application.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Application.cs
deleted file mode 100644
index a717650..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Application.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType("Application")]
- [Serializable]
- public class Application
- {
- [XmlAttribute("timeStamp")]
- public DateTime TimeStamp { get; set; }
-
- [XmlAttribute("version")]
- public string Version { get; set; }
-
- [XmlAttribute("desc")]
- public string Description { get; set; }
-
- [XmlAttribute("name")]
- public string Name { get; set; }
-
- [XmlAttribute("manufacturerURL")]
- public string ManufacturerURL { get; set; }
-
- [XmlAttribute("manufacturer")]
- public string Manufacturer { get; set; }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AreaUnit.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AreaUnit.cs
deleted file mode 100644
index 51f1abf..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AreaUnit.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- public enum AreaUnit
- {
- squareMeter,
- squareFoot,
- squareYard,
- acre,
- hectare,
- squareKilometer,
- squareMile
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AsymCurve.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AsymCurve.cs
deleted file mode 100644
index ab2e977..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/AsymCurve.cs
+++ /dev/null
@@ -1,5 +0,0 @@
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [Serializable]
- public class AsymCurve : ParaCurve { }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/BaseModel.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/BaseModel.cs
deleted file mode 100644
index 7b374bf..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/BaseModel.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType("BaseModel")]
- [Serializable]
- public class BaseModel
- {
- public BaseModel()
- {
- Vertices = new List();
- }
-
- [XmlElement("Vertex")]
- public List Vertices;
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/BorderLine.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/BorderLine.cs
deleted file mode 100644
index 79f352b..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/BorderLine.cs
+++ /dev/null
@@ -1,181 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType("BorderLine")]
- [Serializable]
- public class BorderLine
- {
- public BorderLine()
- {
- Points = new List();
- }
-
- [XmlIgnore]
- public Point3D this[int index]
- {
- get
- {
- if (index < Points.Count)
- {
- return Points[index];
- }
-
- throw new IndexOutOfRangeException();
- }
- set
- {
- if (index < Points.Count)
- {
- Points[index] = value;
- return;
- }
-
- if (index == Points.Count)
- {
- Points.Add(value);
- return;
- }
-
- throw new IndexOutOfRangeException();
- }
- }
-
- [XmlIgnore]
- public int Count => Points.Count;
-
- [XmlIgnore]
- public bool IsReadOnly => false;
-
- [XmlIgnore]
- public string NameIndex => Name + " " + Index;
-
- [XmlAttribute("i")]
- public int Index { get; set; }
-
- [XmlElement("BorderPoint")]
- public List Points { get; set; }
-
- [XmlAttribute("name")]
- public string Name { get; set; }
-
- public void Add(Point3D item)
- {
- Points.Add(item);
- }
-
- public void Clear()
- {
- Points.Clear();
- }
-
- public bool Contains(Point3D item)
- {
- return Points.Contains(item);
- }
-
- public void CopyTo(Point3D[] array, int arrayIndex)
- {
- Points.CopyTo(array, arrayIndex);
- }
-
- public override bool Equals(object obj)
- {
- return this == (BorderLine)obj;
- }
-
- public IEnumerator GetEnumerator()
- {
- return Points.GetEnumerator();
- }
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
-
- public int IndexOf(Point3D item)
- {
- return Points.IndexOf(item);
- }
-
- public void Insert(int index, Point3D item)
- {
- Points.Insert(index, item);
- }
-
- public static bool operator ==(BorderLine b1, BorderLine b2)
- {
- if (ReferenceEquals(b1, b2))
- {
- return true;
- }
-
- if (b1 == null || b2 == null)
- {
- return false;
- }
-
- if (b1.Index == b2.Index && b1.Name == b2.Name && b1.Count == b2.Count)
- {
- for (int i = 0; i < b1.Count; i++)
- {
- if (b1[i] != b2[i])
- {
- return false;
- }
- }
-
- return true;
- }
-
- return false;
- }
-
- public static bool operator !=(BorderLine b1, BorderLine b2)
- {
- if (ReferenceEquals(b1, b2))
- {
- return false;
- }
-
- if (b1 == null || b2 == null)
- {
- return true;
- }
-
- if (b1.Index == b2.Index && b1.Name == b2.Name && b1.Count == b2.Count)
- {
- for (int i = 0; i < b1.Count; i++)
- {
- if (b1[i] != b2[i])
- {
- return true;
- }
- }
-
- return false;
- }
-
- return true;
- }
-
- public bool Remove(Point3D item)
- {
- return Points.Remove(item);
- }
-
- public void RemoveAt(int index)
- {
- Points.RemoveAt(index);
- }
-
- public void Transform(GeometryTransformations transformations)
- {
- foreach (Point3D point in Points)
- {
- transformations.Transform(point);
- }
- }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Borders.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Borders.cs
deleted file mode 100644
index 1167674..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Borders.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType("Borders")]
- [Serializable]
- public class Borders
- {
- public Borders()
- {
- Lines = new List();
- }
-
- public BorderLine this[int index]
- {
- get
- {
- if (index < Lines.Count)
- {
- return Lines[index];
- }
-
- throw new IndexOutOfRangeException();
- }
- set
- {
- if (index < Lines.Count)
- {
- Lines[index] = value;
- return;
- }
-
- if (index == Lines.Count)
- {
- Lines.Add(value);
- return;
- }
-
- throw new IndexOutOfRangeException();
- }
- }
-
- public int Count => Lines.Count;
-
- public bool IsReadOnly => false;
-
- [XmlElement("BorderLine")]
- public List Lines { get; set; }
-
- [XmlAttribute("name")]
- public string Name { get; set; }
-
- public void Add(BorderLine item)
- {
- Lines.Add(item);
- }
-
- public void Clear()
- {
- Lines.Clear();
- }
-
- public bool Contains(BorderLine item)
- {
- return Lines.Contains(item);
- }
-
- public void CopyTo(BorderLine[] array, int arrayIndex)
- {
- Lines.CopyTo(array, arrayIndex);
- }
-
- public IEnumerator GetEnumerator()
- {
- return Lines.GetEnumerator();
- }
-
- public int IndexOf(BorderLine item)
- {
- return Lines.IndexOf(item);
- }
-
- public void Insert(int index, BorderLine item)
- {
- Lines.Insert(index, item);
- }
-
- public bool Remove(BorderLine item)
- {
- return Lines.Remove(item);
- }
-
- public void RemoveAt(int index)
- {
- Lines.RemoveAt(index);
- }
-
- public void Transform(GeometryTransformations transformations)
- {
- foreach (BorderLine borderLine in Lines)
- {
- borderLine.Transform(transformations);
- }
- }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CategoryType.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CategoryType.cs
deleted file mode 100644
index a7ddee9..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CategoryType.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- public enum CategoryType
- {
- Abutment,
- Pier,
- Beam,
- Haunch,
- Deck
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CgPoint.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CgPoint.cs
deleted file mode 100644
index 0355083..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CgPoint.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType("CgPoint")]
- public class CgPoint : TextPoint3D
- {
- [XmlAttribute("name")]
- public string Name { get; set; }
-
- [XmlAttribute("code")]
- public string Code { get; set; }
-
- [XmlAttribute("pntRef")]
- public string PntRef { get; set; }
-
- public override bool Equals(object obj)
- {
- return this == (CgPoint)obj;
- }
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
-
- public static bool operator ==(CgPoint p1, CgPoint p2)
- {
- return p1 == p2 && (p1 == null || (p1.Name == p2.Name && p1.Code == p2.Code && p1.PntRef == p2.PntRef));
- }
-
- public static bool operator !=(CgPoint p1, CgPoint p2)
- {
- return p1 != p2 || (p1 != null && p1.Name != p2.Name && p1.Code != p2.Code && p1.PntRef != p2.PntRef);
- }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CgPoints.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CgPoints.cs
deleted file mode 100644
index dbf46cf..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CgPoints.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType("CgPoints")]
- [Serializable]
- public class CgPoints
- {
- public CgPoints()
- {
- cgPoints = new List();
- }
-
- [XmlIgnore]
- public CgPoint this[int index]
- {
- get
- {
- if (index < cgPoints.Count)
- {
- return cgPoints[index];
- }
-
- throw new IndexOutOfRangeException();
- }
- set
- {
- if (index < cgPoints.Count)
- {
- cgPoints[index] = value;
- return;
- }
-
- if (index == cgPoints.Count)
- {
- cgPoints.Add(value);
- return;
- }
-
- throw new IndexOutOfRangeException();
- }
- }
-
- [XmlIgnore]
- public int Count => cgPoints.Count;
-
- [XmlIgnore]
- public bool IsReadOnly => false;
-
- [XmlElement("CgPoint")]
- public List cgPoints { get; set; }
-
- [XmlAttribute("name")]
- public string Name { get; set; }
-
- [XmlAttribute("id")]
- public string Id { get; set; }
-
- public void Add(CgPoint item)
- {
- cgPoints.Add(item);
- }
-
- public void Clear()
- {
- cgPoints.Clear();
- }
-
- public bool Contains(CgPoint item)
- {
- return cgPoints.Contains(item);
- }
-
- public void CopyTo(CgPoint[] array, int arrayIndex)
- {
- cgPoints.CopyTo(array, arrayIndex);
- }
-
- public IEnumerator GetEnumerator()
- {
- return cgPoints.GetEnumerator();
- }
-
- public int IndexOf(CgPoint item)
- {
- return cgPoints.IndexOf(item);
- }
-
- public void Insert(int index, CgPoint item)
- {
- cgPoints.Insert(index, item);
- }
-
- public bool Remove(CgPoint item)
- {
- return cgPoints.Remove(item);
- }
-
- public void RemoveAt(int index)
- {
- cgPoints.RemoveAt(index);
- }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CircCurve.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CircCurve.cs
deleted file mode 100644
index 37b14d4..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CircCurve.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [Serializable]
- public class CircCurve : ParaCurve
- {
- [XmlAttribute("radius")]
- public double Radius { get; set; }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ComparableStructure.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ComparableStructure.cs
deleted file mode 100644
index 3d80f89..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/ComparableStructure.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData.Interfaces;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- public abstract class ComparableStructure : IComparableStructure
- where T : class
- {
- public abstract bool DifferentDescendants(T item);
-
- public abstract bool DifferentItem(T item);
-
- public bool Equals(T item)
- {
- return !ReferenceEquals(item, null) && !DifferentItem(item) && !DifferentDescendants(item);
- }
-
- public override bool Equals(object obj)
- {
- return Equals(obj as T);
- }
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CoordGeom.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CoordGeom.cs
deleted file mode 100644
index f3e1483..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CoordGeom.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType("CoordGeom")]
- [Serializable]
- public class CoordGeom
- {
- public CoordGeom()
- {
- HorizonCurve = new List();
- }
-
- public Interval this[int index]
- {
- get
- {
- if (index < HorizonCurve.Count)
- {
- return HorizonCurve[index];
- }
-
- throw new IndexOutOfRangeException();
- }
- set
- {
- if (index < HorizonCurve.Count)
- {
- HorizonCurve[index] = value;
- return;
- }
-
- if (index == HorizonCurve.Count)
- {
- HorizonCurve.Add(value);
- return;
- }
-
- throw new IndexOutOfRangeException();
- }
- }
-
- public int Count => HorizonCurve.Count;
-
- public bool IsReadOnly => false;
-
- [XmlElement("Curve", Type = typeof(Curve))]
- [XmlElement("Line", Type = typeof(Line))]
- [XmlElement("Spiral", Type = typeof(Spiral))]
- public List HorizonCurve { get; set; }
-
- public void Add(Interval item)
- {
- HorizonCurve.Add(item);
- }
-
- public void Clear()
- {
- HorizonCurve.Clear();
- }
-
- public bool Contains(Interval item)
- {
- return HorizonCurve.Contains(item);
- }
-
- public void CopyTo(Interval[] array, int arrayIndex)
- {
- HorizonCurve.CopyTo(array, arrayIndex);
- }
-
- public IEnumerator GetEnumerator()
- {
- return HorizonCurve.GetEnumerator();
- }
-
- public int IndexOf(Interval item)
- {
- return HorizonCurve.IndexOf(item);
- }
-
- public void Insert(int index, Interval item)
- {
- HorizonCurve.Insert(index, item);
- }
-
- public bool Remove(Interval item)
- {
- return HorizonCurve.Remove(item);
- }
-
- public void RemoveAt(int index)
- {
- HorizonCurve.RemoveAt(index);
- }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CoordinateSystem.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CoordinateSystem.cs
deleted file mode 100644
index 5dc350a..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CoordinateSystem.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType("CoordinateSystem")]
- [Serializable]
- public class CoordinateSystem
- {
- [XmlAttribute("fileLocation")]
- public string FileLocation { get; set; }
-
- [XmlAttribute("horizontalCoordinateSystemName")]
- public string HorizontalCoordinateSystemName { get; set; }
-
- [XmlAttribute("horizontalDatum")]
- public string HorizontalDatum { get; set; }
-
- [XmlAttribute("ogcWktCode")]
- public string OgcWktCode { get; set; }
-
- [XmlAttribute("epsgCode")]
- public string EpsgCode { get; set; }
-
- [XmlAttribute("desc")]
- public string Description { get; set; }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CrossSection.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CrossSection.cs
deleted file mode 100644
index b8f459d..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CrossSection.cs
+++ /dev/null
@@ -1,187 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData;
-
-[XmlType("CrossSect")]
-[Serializable]
-public class CrossSection : Point3D
-{
- public CrossSection()
- {
- DesignShapes = new List();
- Surfaces = new List();
- Import = true;
- }
-
- [XmlIgnore]
- public IEnumerable PointCodes
- {
- get { return DesignShapes.SelectMany(item => item.PointCodes); }
- }
-
- [XmlIgnore]
- public IEnumerable SurfaceNames => (from item in DesignShapes select item.Name).Distinct();
-
- [XmlAttribute("import")]
- public bool Import { get; set; }
-
- [XmlAttribute("sta")]
- public double Station { get; set; }
-
- [XmlAttribute("we")]
- public double WayElevation { get; set; }
-
- [XmlAttribute("ge")]
- public double GroundElevation { get; set; }
-
- [XmlAttribute("r")]
- public int Region { get; set; }
-
- [XmlElement("DesignCrossSectSurf")]
- public List DesignShapes { get; set; }
-
- [XmlElement("CrossSectSurf")]
- public List Surfaces { get; set; }
-
- [XmlAttribute("AssemblyID")]
- public string AssemblyID { get; set; }
-
- [XmlAttribute("name")]
- public string Name { get; set; }
-
- public void ConnectShapes()
- {
- foreach (var designShape in DesignShapes)
- {
- designShape.CrossSection = this;
- }
- }
-
- public override bool Equals(object obj)
- {
- var crossSection = obj as CrossSection;
- return !(crossSection == null) && ValuesEqual(this, crossSection);
- }
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
-
- public CrossSectionPoint GetLeftPoint()
- {
- return GetPointAtOffset(DesignShapes.Min(item => item.CrossSectionPoints.Min(point => point.First)));
- }
-
- public CrossSectionPoint GetPointAtOffset(double offset)
- {
- CrossSectionPoint crossSectionPoint = null;
- foreach (var designShape in DesignShapes)
- {
- crossSectionPoint = designShape.CrossSectionPoints.Find(item => item.First == offset);
- if (crossSectionPoint != null)
- {
- return crossSectionPoint;
- }
- }
-
- return crossSectionPoint;
- }
-
- public CrossSectionPoint GetPointByName(string pointCode, bool onLeft)
- {
- CrossSectionPoint crossSectionPoint = null;
- var side = onLeft ? Side.Left : Side.Right;
- foreach (var designShape in from item in DesignShapes where item.Side == side select item)
- {
- crossSectionPoint = designShape.CrossSectionPoints.Find(item => item.Code == pointCode);
- if (crossSectionPoint != null)
- {
- return crossSectionPoint;
- }
- }
-
- foreach (var designShape2 in from item in DesignShapes where item.Side == Side.Both select item)
- {
- crossSectionPoint = onLeft
- ? designShape2.CrossSectionPoints.Find(item => item.Code == pointCode && item.First <= 0.0)
- : designShape2.CrossSectionPoints.Find(item => item.Code == pointCode && item.First >= 0.0);
-
- if (crossSectionPoint != null)
- {
- return crossSectionPoint;
- }
- }
-
- return crossSectionPoint;
- }
-
- public CrossSectionPoint GetPointByNames(IList pointCodes, bool onLeft)
- {
- CrossSectionPoint crossSectionPoint = null;
- for (var i = 0; i < pointCodes.Count; i++)
- {
- var text = pointCodes[i];
- crossSectionPoint = GetPointByName(text, onLeft);
- if (crossSectionPoint != null)
- {
- if (i > 0)
- {
- pointCodes.RemoveAt(i);
- pointCodes.Insert(0, text);
- }
-
- return crossSectionPoint;
- }
- }
-
- return crossSectionPoint;
- }
-
- public IEnumerable GetPointCodes(Side side)
- {
- if (side == Side.Both)
- {
- return PointCodes.Distinct();
- }
-
- var list = (from item in DesignShapes where item.Side == side select item).SelectMany(item => item.PointCodes).Distinct().ToList();
- list.AddRange((from item in DesignShapes where item.Side == Side.Both select item).SelectMany(item => item.GetPointCodes(side)).Distinct());
- return list.Distinct();
- }
-
- public CrossSectionPoint GetRightPoint()
- {
- return GetPointAtOffset(DesignShapes.Max(item => item.CrossSectionPoints.Max(point => point.First)));
- }
-
- public static bool operator ==(CrossSection p1, CrossSection p2)
- {
- var flag = LamdXMLEx.ReferenceComparison(p1, p2);
- return flag != null ? flag.Value : ValuesEqual(p1, p2);
- }
-
- public static bool operator !=(CrossSection p1, CrossSection p2)
- {
- var flag = LamdXMLEx.ReferenceComparison(p1, p2);
- return !(flag == null ? ValuesEqual(p1, p2) : flag.Value);
- }
-
- public void Transform(GeometryTransformations transformations)
- {
- foreach (var designShape in DesignShapes)
- {
- designShape.Transform(transformations);
- }
-
- Station *= transformations.ScaleFactor;
- GroundElevation = (GroundElevation * transformations.ScaleFactor) + transformations.Dz;
- WayElevation = (WayElevation * transformations.ScaleFactor) + transformations.Dz;
- transformations.Transform(this);
- }
-
- public static bool ValuesEqual(CrossSection p1, CrossSection p2)
- {
- return p1.Region == p2.Region && p1.Name == p2.Name && Point3D.ValuesEqual(p1, p2);
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CrossSectionPoint.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CrossSectionPoint.cs
deleted file mode 100644
index bc55958..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/CrossSectionPoint.cs
+++ /dev/null
@@ -1,169 +0,0 @@
-using System.Xml.Serialization;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData
-{
- [XmlType("CrossSectPnt")]
- [Serializable]
- public class CrossSectionPoint : TextPoint2D
- {
- public CrossSectionPoint()
- {
- Code = null;
- Edge = Index = 0;
- }
-
- public CrossSectionPoint(CrossSectionPoint source)
- : base(source)
- {
- Code = source.Code;
- Edge = source.Edge;
- Index = source.Index;
- }
-
- [XmlIgnore]
- public string CodeIndex => Code + " " + Index;
-
- [XmlAttribute("edge")]
- public int Edge { get; set; }
-
- [XmlAttribute("i")]
- public int Index { get; set; }
-
- [XmlAttribute("code")]
- public string Code { get; set; }
-
- public override bool Equals(object obj)
- {
- return Equals(obj as CrossSectionPoint);
- }
-
- public bool Equals(CrossSectionPoint csp)
- {
- return !ReferenceEquals(csp, null) && ValuesEqual(this, csp);
- }
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
-
- public static CrossSectionPoint operator +(CrossSectionPoint p1, CrossSectionPoint p2)
- {
- if (p1 != null)
- {
- if (p2 != null)
- {
- return new CrossSectionPoint
- {
- X = p1.X + p2.X,
- Y = p1.Y + p2.Y,
- Z = p1.Z + p2.Z,
- _first = p1._first + p2._first,
- Second = p1._second + p2._second
- };
- }
-
- return p1;
- }
-
- if (p2 != null)
- {
- return p2;
- }
-
- return null;
- }
-
- public static bool operator ==(CrossSectionPoint p1, CrossSectionPoint p2)
- {
- return ReferenceEquals(p1, p2) || (!ReferenceEquals(p1, null) && !ReferenceEquals(p2, null) && ValuesEqual(p1, p2));
- }
-
- public static bool operator !=(CrossSectionPoint p1, CrossSectionPoint p2)
- {
- return !ReferenceEquals(p1, p2) && (ReferenceEquals(p1, null) || ReferenceEquals(p2, null) || !ValuesEqual(p1, p2));
- }
-
- public static CrossSectionPoint operator *(double f1, CrossSectionPoint p2)
- {
- if (p2 != null)
- {
- return new CrossSectionPoint
- {
- X = f1 * p2.X,
- Y = f1 * p2.Y,
- Z = f1 * p2.Z,
- _first = f1 * p2._first,
- Second = f1 * p2._second
- };
- }
-
- return null;
- }
-
- public static CrossSectionPoint operator -(CrossSectionPoint p1, CrossSectionPoint p2)
- {
- if (p1 != null)
- {
- if (p2 != null)
- {
- return new CrossSectionPoint
- {
- X = p1.X - p2.X,
- Y = p1.Y - p2.Y,
- Z = p1.Z - p2.Z,
- _first = p1._first - p2._first,
- Second = p1._second - p2._second
- };
- }
-
- return p1;
- }
-
- if (p2 != null)
- {
- return new CrossSectionPoint
- {
- X = -p2.X,
- Y = -p2.Y,
- Z = -p2.Z,
- _first = -p1._first,
- Second = -p2._second
- };
- }
-
- return null;
- }
-
- public string SeekCode(CrossSection crossSection)
- {
- string[] array = crossSection.DesignShapes
- .SelectMany(ds => from p in ds.CrossSectionPoints where p != this && p.Text == Text && p.X == X && p.Y == Y && p.Z == Z select p.Code)
- .ToArray();
- if (array.Length <= 0)
- {
- return null;
- }
-
- return array[0];
- }
-
- public static bool ValuesEqual(CrossSectionPoint p1, CrossSectionPoint p2)
- {
- return p1.Code == p2.Code && TextPoint2D.ValuesEqual(p1, p2);
- }
-
- public class SectionPointComparer : IEqualityComparer
- {
- public bool Equals(CrossSectionPoint x, CrossSectionPoint y)
- {
- return x.First == y.First && x.Second == y.Second;
- }
-
- public int GetHashCode(CrossSectionPoint obj)
- {
- return obj.GetHashCode();
- }
- }
- }
-}
diff --git a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Curve.cs b/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Curve.cs
deleted file mode 100644
index 10b6b2d..0000000
--- a/ShrlAlgoToolkit.RevitAddins/RvIndependent/MetroGauges/LandXMLData/Curve.cs
+++ /dev/null
@@ -1,993 +0,0 @@
-using System.Linq.Expressions;
-using System.Runtime.CompilerServices;
-using System.Xml.Serialization;
-using Microsoft.CSharp.RuntimeBinder;
-
-namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData;
-
-[XmlType("Curve")]
-[Serializable]
-public class Curve : Interval
-{
- public Curve()
- {
- _points = new List(4) { new(), new(), new(), new() };
- }
-
- public Curve(Curve entity)
- : this()
- {
- Length = entity.Length;
- Tangent = entity.Tangent;
- Radius = entity.Radius;
- MidOrd = entity.MidOrd;
- External = entity.External;
- DirStart = entity.DirStart;
- DirEnd = entity.DirEnd;
- Delta = entity.Delta;
- Chord = entity.Chord;
- Rot = entity.Rot;
- CrvType = entity.CrvType;
- Start = entity.Start;
- End = entity.End;
- PI = entity.PI;
- Center = entity.Center;
- }
-
- public Curve(dynamic entity, dynamic baseline, dynamic profile)
- : this()
- {
- Contructor.pSite1 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target = Contructor.pSite1.Target;
- CallSite pSite = Contructor.pSite1;
- Contructor.pSite2 ??= CallSite>.Create(
- Binder.GetMember(CSharpBinderFlags.None, "Length", typeof(Curve), new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) })
- );
-
- Length = target(pSite, Contructor.pSite2.Target(Contructor.pSite2, entity));
- Contructor.pSite3 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target2 = Contructor.pSite3.Target;
- CallSite pSite2 = Contructor.pSite3;
- Contructor.pSite4 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "ExternalTangent",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- Tangent = target2(pSite2, Contructor.pSite4.Target(Contructor.pSite4, entity));
- Contructor.pSite5 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target3 = Contructor.pSite5.Target;
- CallSite pSite3 = Contructor.pSite5;
- Contructor.pSite6 ??= CallSite>.Create(
- Binder.GetMember(CSharpBinderFlags.None, "Radius", typeof(Curve), new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) })
- );
-
- Radius = target3(pSite3, Contructor.pSite6.Target(Contructor.pSite6, entity));
- Contructor.pSite7 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target4 = Contructor.pSite7.Target;
- CallSite pSite4 = Contructor.pSite7;
- Contructor.pSite8 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "MidOrdinate",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- MidOrd = target4(pSite4, Contructor.pSite8.Target(Contructor.pSite8, entity));
- Contructor.pSite9 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target5 = Contructor.pSite9.Target;
- CallSite pSite5 = Contructor.pSite9;
- Contructor.pSitea ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "ExternalSecant",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- External = target5(pSite5, Contructor.pSitea.Target(Contructor.pSitea, entity));
- Contructor.pSiteb ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target6 = Contructor.pSiteb.Target;
- CallSite pSiteb = Contructor.pSiteb;
- Contructor.pSitec ??= CallSite>.Create(
- Binder.BinaryOperation(
- CSharpBinderFlags.None,
- ExpressionType.Divide,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.Constant, null)
- }
- )
- );
-
- Func target7 = Contructor.pSitec.Target;
- CallSite pSitec = Contructor.pSitec;
- Contructor.pSited ??= CallSite>.Create(
- Binder.BinaryOperation(
- CSharpBinderFlags.None,
- ExpressionType.Multiply,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.Constant, null)
- }
- )
- );
-
- Func target8 = Contructor.pSited.Target;
- CallSite pSited = Contructor.pSited;
- Contructor.pSitee ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "StartDirection",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- DirStart = target6(pSiteb, target7(pSitec, target8(pSited, Contructor.pSitee.Target(Contructor.pSitee, entity), 180.0), 3.1415926535897931));
- Contructor.pSitef ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target9 = Contructor.pSitef.Target;
- CallSite pSitef = Contructor.pSitef;
- Contructor.pSite10 ??= CallSite>.Create(
- Binder.BinaryOperation(
- CSharpBinderFlags.None,
- ExpressionType.Divide,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.Constant, null)
- }
- )
- );
-
- Func target10 = Contructor.pSite10.Target;
- CallSite pSite6 = Contructor.pSite10;
- Contructor.pSite11 ??= CallSite>.Create(
- Binder.BinaryOperation(
- CSharpBinderFlags.None,
- ExpressionType.Multiply,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.Constant, null)
- }
- )
- );
-
- Func target11 = Contructor.pSite11.Target;
- CallSite pSite7 = Contructor.pSite11;
- Contructor.pSite12 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "EndDirection",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- DirEnd = target9(pSitef, target10(pSite6, target11(pSite7, Contructor.pSite12.Target(Contructor.pSite12, entity), 180.0), 3.1415926535897931));
- Contructor.pSite13 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target12 = Contructor.pSite13.Target;
- CallSite pSite8 = Contructor.pSite13;
- Contructor.pSite14 ??= CallSite>.Create(
- Binder.BinaryOperation(
- CSharpBinderFlags.None,
- ExpressionType.Divide,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.Constant, null)
- }
- )
- );
-
- Func target13 = Contructor.pSite14.Target;
- CallSite pSite9 = Contructor.pSite14;
- Contructor.pSite15 ??= CallSite>.Create(
- Binder.BinaryOperation(
- CSharpBinderFlags.None,
- ExpressionType.Multiply,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.Constant, null)
- }
- )
- );
-
- Func target14 = Contructor.pSite15.Target;
- CallSite pSite10 = Contructor.pSite15;
- Contructor.pSite16 ??= CallSite>.Create(
- Binder.GetMember(CSharpBinderFlags.None, "Delta", typeof(Curve), new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) })
- );
-
- Delta = target12(pSite8, target13(pSite9, target14(pSite10, Contructor.pSite16.Target(Contructor.pSite16, entity), 180.0), 3.1415926535897931));
- Contructor.pSite17 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target15 = Contructor.pSite17.Target;
- CallSite pSite11 = Contructor.pSite17;
- Contructor.pSite18 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "ChordLength",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- Chord = target15(pSite11, Contructor.pSite18.Target(Contructor.pSite18, entity));
- Contructor.pSite19 ??= CallSite>.Create(
- Binder.UnaryOperation(
- CSharpBinderFlags.None,
- ExpressionType.IsTrue,
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- Func target16 = Contructor.pSite19.Target;
- CallSite pSite12 = Contructor.pSite19;
- Contructor.pSite1a ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "Clockwise",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- Rot = target16(pSite12, Contructor.pSite1a.Target(Contructor.pSite1a, entity)) ? "cw" : "ccw";
- Contructor.pSite1b ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(string), typeof(Curve)));
-
- Func target17 = Contructor.pSite1b.Target;
- CallSite pSite1b = Contructor.pSite1b;
- Contructor.pSite1c ??= CallSite>.Create(
- Binder.InvokeMember(
- CSharpBinderFlags.None,
- "ToString",
- null,
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- Func target18 = Contructor.pSite1c.Target;
- CallSite pSite1c = Contructor.pSite1c;
- Contructor.pSite1d ??= CallSite>.Create(
- Binder.GetMember(CSharpBinderFlags.None, "Type", typeof(Curve), new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) })
- );
-
- CrvType = target17(pSite1b, target18(pSite1c, Contructor.pSite1d.Target(Contructor.pSite1d, entity)));
- Contructor.pSite1e ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target19 = Contructor.pSite1e.Target;
- CallSite pSite1e = Contructor.pSite1e;
- Contructor.pSite1f ??= CallSite>.Create(
- Binder.BinaryOperation(
- CSharpBinderFlags.None,
- ExpressionType.Multiply,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.Constant, null)
- }
- )
- );
-
- Func target20 = Contructor.pSite1f.Target;
- CallSite pSite1f = Contructor.pSite1f;
- Contructor.pSite20 ??= CallSite>.Create(
- Binder.BinaryOperation(
- CSharpBinderFlags.None,
- ExpressionType.Add,
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- Func target21 = Contructor.pSite20.Target;
- CallSite pSite13 = Contructor.pSite20;
- Contructor.pSite21 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "StartingStation",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- object arg = Contructor.pSite21.Target(Contructor.pSite21, entity);
- Contructor.pSite22 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "EndingStation",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- double num = target19(pSite1e, target20(pSite1f, target21(pSite13, arg, Contructor.pSite22.Target(Contructor.pSite22, entity)), 0.5));
- Contructor.pSite23 ??= CallSite>.Create(
- Binder.InvokeMember(
- CSharpBinderFlags.None,
- "StationOffsetElevationToXYZ",
- null,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null)
- }
- )
- );
-
- Func target22 = Contructor.pSite23.Target;
- CallSite pSite14 = Contructor.pSite23;
- double[] array = new double[3];
- double[] array2 = array;
- int num2 = 0;
- Contructor.pSite24 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target23 = Contructor.pSite24.Target;
- CallSite pSite15 = Contructor.pSite24;
- Contructor.pSite25 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "StartingStation",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array2[num2] = target23(pSite15, Contructor.pSite25.Target(Contructor.pSite25, entity));
- double[] array3 = array;
- int num3 = 2;
- Contructor.pSite26 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target24 = Contructor.pSite26.Target;
- CallSite pSite16 = Contructor.pSite26;
- Contructor.pSite27 ??= CallSite>.Create(
- Binder.InvokeMember(
- CSharpBinderFlags.None,
- "ElevationAt",
- null,
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- Func target25 = Contructor.pSite27.Target;
- CallSite pSite17 = Contructor.pSite27;
- Contructor.pSite28 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "StartingStation",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array3[num3] = target24(pSite16, target25(pSite17, profile, Contructor.pSite28.Target(Contructor.pSite28, entity)));
- object obj = target22(pSite14, baseline, array);
- Contructor.pSite29 ??= CallSite>.Create(
- Binder.InvokeMember(
- CSharpBinderFlags.None,
- "StationOffsetElevationToXYZ",
- null,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null)
- }
- )
- );
-
- Func target26 = Contructor.pSite29.Target;
- CallSite pSite18 = Contructor.pSite29;
- double[] array4 = new double[3];
- double[] array5 = array4;
- int num4 = 0;
- Contructor.pSite2a ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target27 = Contructor.pSite2a.Target;
- CallSite pSite2a = Contructor.pSite2a;
- Contructor.pSite2b ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "EndingStation",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array5[num4] = target27(pSite2a, Contructor.pSite2b.Target(Contructor.pSite2b, entity));
- double[] array6 = array4;
- int num5 = 2;
- Contructor.pSite2c ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target28 = Contructor.pSite2c.Target;
- CallSite pSite2c = Contructor.pSite2c;
- Contructor.pSite2d ??= CallSite>.Create(
- Binder.InvokeMember(
- CSharpBinderFlags.None,
- "ElevationAt",
- null,
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- Func target29 = Contructor.pSite2d.Target;
- CallSite pSite2d = Contructor.pSite2d;
- Contructor.pSite2e ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "EndingStation",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array6[num5] = target28(pSite2c, target29(pSite2d, profile, Contructor.pSite2e.Target(Contructor.pSite2e, entity)));
- object obj2 = target26(pSite18, baseline, array4);
- Contructor.pSite2f ??= CallSite>.Create(
- Binder.InvokeMember(
- CSharpBinderFlags.None,
- "StationOffsetElevationToXYZ",
- null,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null)
- }
- )
- );
-
- Func target30 = Contructor.pSite2f.Target;
- CallSite pSite2f = Contructor.pSite2f;
- double[] array7 = new double[3];
- double[] array8 = array7;
- int num6 = 0;
- Contructor.pSite30 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target31 = Contructor.pSite30.Target;
- CallSite pSite19 = Contructor.pSite30;
- Contructor.pSite31 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "PIStation",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array8[num6] = target31(pSite19, Contructor.pSite31.Target(Contructor.pSite31, entity));
- double[] array9 = array7;
- int num7 = 2;
- Contructor.pSite32 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target32 = Contructor.pSite32.Target;
- CallSite pSite20 = Contructor.pSite32;
- Contructor.pSite33 ??= CallSite>.Create(
- Binder.InvokeMember(
- CSharpBinderFlags.None,
- "ElevationAt",
- null,
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- Func target33 = Contructor.pSite33.Target;
- CallSite pSite21 = Contructor.pSite33;
- Contructor.pSite34 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "PIStation",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array9[num7] = target32(pSite20, target33(pSite21, profile, Contructor.pSite34.Target(Contructor.pSite34, entity)));
- object obj3 = target30(pSite2f, baseline, array7);
- Contructor.pSite35 ??= CallSite>.Create(
- Binder.InvokeMember(
- CSharpBinderFlags.None,
- "StationOffsetElevationToXYZ",
- null,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null)
- }
- )
- );
-
- Func target34 = Contructor.pSite35.Target;
- CallSite pSite22 = Contructor.pSite35;
- double[] array10 = new double[3];
- array10[0] = num;
- double[] array11 = array10;
- int num8 = 2;
- Contructor.pSite36 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target35 = Contructor.pSite36.Target;
- CallSite pSite23 = Contructor.pSite36;
- Contructor.pSite37 ??= CallSite>.Create(
- Binder.InvokeMember(
- CSharpBinderFlags.None,
- "ElevationAt",
- null,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null)
- }
- )
- );
-
- array11[num8] = target35(pSite23, Contructor.pSite37.Target(Contructor.pSite37, profile, num));
- object obj4 = target34(pSite22, baseline, array10);
- Contructor.pSite38 ??= CallSite>.Create(
- Binder.InvokeConstructor(
- CSharpBinderFlags.None,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.IsStaticType, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null)
- }
- )
- );
-
- Func target36 = Contructor.pSite38.Target;
- CallSite pSite24 = Contructor.pSite38;
- Type typeFromHandle = typeof(TextPoint2D);
- object arg2 = obj;
- double[] array12 = new double[2];
- double[] array13 = array12;
- int num9 = 0;
- Contructor.pSite39 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target37 = Contructor.pSite39.Target;
- CallSite pSite25 = Contructor.pSite39;
- Contructor.pSite3a ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "StartEasting",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array13[num9] = target37(pSite25, Contructor.pSite3a.Target(Contructor.pSite3a, entity));
- double[] array14 = array12;
- int num10 = 1;
- Contructor.pSite3b ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target38 = Contructor.pSite3b.Target;
- CallSite pSite3b = Contructor.pSite3b;
- Contructor.pSite3c ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "StartNorthing",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array14[num10] = target38(pSite3b, Contructor.pSite3c.Target(Contructor.pSite3c, entity));
- Start = target36(pSite24, typeFromHandle, arg2, array12);
- Contructor.pSite3d ??= CallSite>.Create(
- Binder.InvokeConstructor(
- CSharpBinderFlags.None,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.IsStaticType, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null)
- }
- )
- );
-
- Func target39 = Contructor.pSite3d.Target;
- CallSite pSite3d = Contructor.pSite3d;
- Type typeFromHandle2 = typeof(TextPoint2D);
- object arg3 = obj2;
- double[] array15 = new double[2];
- double[] array16 = array15;
- int num11 = 0;
- Contructor.pSite3e ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target40 = Contructor.pSite3e.Target;
- CallSite pSite3e = Contructor.pSite3e;
- Contructor.pSite3f ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "EndEasting",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array16[num11] = target40(pSite3e, Contructor.pSite3f.Target(Contructor.pSite3f, entity));
- double[] array17 = array15;
- int num12 = 1;
- Contructor.pSite40 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target41 = Contructor.pSite40.Target;
- CallSite pSite26 = Contructor.pSite40;
- Contructor.pSite41 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "EndNorthing",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array17[num12] = target41(pSite26, Contructor.pSite41.Target(Contructor.pSite41, entity));
- End = target39(pSite3d, typeFromHandle2, arg3, array15);
- Contructor.pSite42 ??= CallSite>.Create(
- Binder.InvokeConstructor(
- CSharpBinderFlags.None,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.IsStaticType, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null)
- }
- )
- );
-
- Func target42 = Contructor.pSite42.Target;
- CallSite pSite27 = Contructor.pSite42;
- Type typeFromHandle3 = typeof(TextPoint2D);
- object arg4 = obj3;
- double[] array18 = new double[2];
- double[] array19 = array18;
- int num13 = 0;
- Contructor.pSite43 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target43 = Contructor.pSite43.Target;
- CallSite pSite28 = Contructor.pSite43;
- Contructor.pSite44 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "PIEasting",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array19[num13] = target43(pSite28, Contructor.pSite44.Target(Contructor.pSite44, entity));
- double[] array20 = array18;
- int num14 = 1;
- Contructor.pSite45 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target44 = Contructor.pSite45.Target;
- CallSite pSite29 = Contructor.pSite45;
- Contructor.pSite46 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "PINorthing",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array20[num14] = target44(pSite29, Contructor.pSite46.Target(Contructor.pSite46, entity));
- PI = target42(pSite27, typeFromHandle3, arg4, array18);
- Contructor.pSite47 ??= CallSite>.Create(
- Binder.InvokeConstructor(
- CSharpBinderFlags.None,
- typeof(Curve),
- new[]
- {
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType | CSharpArgumentInfoFlags.IsStaticType, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null),
- CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null)
- }
- )
- );
-
- Func target45 = Contructor.pSite47.Target;
- CallSite pSite30 = Contructor.pSite47;
- Type typeFromHandle4 = typeof(TextPoint2D);
- object arg5 = obj4;
- double[] array21 = new double[2];
- double[] array22 = array21;
- int num15 = 0;
- Contructor.pSite48 ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target46 = Contructor.pSite48.Target;
- CallSite pSite31 = Contructor.pSite48;
- Contructor.pSite49 ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "CenterEasting",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array22[num15] = target46(pSite31, Contructor.pSite49.Target(Contructor.pSite49, entity));
- double[] array23 = array21;
- int num16 = 1;
- Contructor.pSite4a ??= CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(double), typeof(Curve)));
-
- Func target47 = Contructor.pSite4a.Target;
- CallSite pSite4a = Contructor.pSite4a;
- Contructor.pSite4b ??= CallSite>.Create(
- Binder.GetMember(
- CSharpBinderFlags.None,
- "CenterNorthing",
- typeof(Curve),
- new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) }
- )
- );
-
- array23[num16] = target47(pSite4a, Contructor.pSite4b.Target(Contructor.pSite4b, entity));
- Center = target45(pSite30, typeFromHandle4, arg5, array21);
- while (DirStart < 0.0)
- {
- DirStart += 360.0;
- }
-
- while (DirStart >= 360.0)
- {
- DirStart -= 360.0;
- }
-
- while (DirEnd < 0.0)
- {
- DirStart += 360.0;
- }
-
- while (DirEnd >= 360.0)
- {
- DirStart -= 360.0;
- }
-
- Delta = DirEnd - DirStart;
- }
-
- [XmlAttribute("tangent")]
- public double Tangent { get; set; }
-
- [XmlAttribute("radius")]
- public double Radius { get; set; }
-
- [XmlAttribute("midOrd")]
- public double MidOrd { get; set; }
-
- [XmlAttribute("external")]
- public double External { get; set; }
-
- [XmlAttribute("dirStart")]
- public double DirStart { get; set; }
-
- [XmlAttribute("dirEnd")]
- public double DirEnd { get; set; }
-
- [XmlAttribute("delta")]
- public double Delta { get; set; }
-
- [XmlAttribute("chord")]
- public double Chord { get; set; }
-
- [XmlAttribute("rot")]
- public string Rot { get; set; }
-
- [XmlAttribute("crvType")]
- public string CrvType { get; set; }
-
- [XmlElement("HorizontallyCenter")]
- public TextPoint2D Center
- {
- get => _points[2];
- set => _points[2] = value;
- }
-
- [XmlElement("PI")]
- public TextPoint2D PI
- {
- get => _points[3];
- set => _points[3] = value;
- }
-
- public override double GetDirectionAtPoint(double station)
- {
- if (station == Length)
- {
- return DirEnd;
- }
-
- return station == 0.0 ? DirStart : DirStart + (Delta * station / Length);
- }
-
- [CompilerGenerated]
- private static class Contructor
- {
- public static CallSite> pSite1;
-
- public static CallSite> pSite10;
-
- public static CallSite> pSite11;
-
- public static CallSite> pSite12;
-
- public static CallSite> pSite13;
-
- public static CallSite> pSite14;
-
- public static CallSite> pSite15;
-
- public static CallSite> pSite16;
-
- public static CallSite> pSite17;
-
- public static CallSite> pSite18;
-
- public static CallSite> pSite19;
-
- public static CallSite> pSite1a;
-
- public static CallSite> pSite1b;
-
- public static CallSite> pSite1c;
-
- public static CallSite> pSite1d;
-
- public static CallSite> pSite1e;
-
- public static CallSite> pSite1f;
-
- public static CallSite> pSite2;
-
- public static CallSite> pSite20;
-
- public static CallSite> pSite21;
-
- public static CallSite> pSite22;
-
- public static CallSite> pSite23;
-
- public static CallSite> pSite24;
-
- public static CallSite> pSite25;
-
- public static CallSite> pSite26;
-
- public static CallSite> pSite27;
-
- public static CallSite> pSite28;
-
- public static CallSite> pSite29;
-
- public static CallSite> pSite2a;
-
- public static CallSite