From 5a3a368a2eb0dc197caade20577786356721582a Mon Sep 17 00:00:00 2001 From: GG Z <903524121@qq.com> Date: Sun, 22 Feb 2026 21:12:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ShrlAlgoToolkit.RevitAddins/Entry/RvApp.cs | 3 - .../Mep/MappingSystemCmd.cs | 66 ++++ .../Standardizer/WriteParametersCmd.cs | 35 ++ .../Standardizer/WriteParametersView.xaml | 127 +++++++ .../Standardizer/WriteParametersView.xaml.cs | 16 + .../Standardizer/WriteParametersViewModel.cs | 359 ++++++++++++++++++ .../Base/BaseApplication.cs | 9 +- .../Extensions/ConnectorExtensions.cs | 2 +- .../Extensions/ElementExtensions.cs | 247 ++++++++++++ .../Extensions/FamilyInstanceExtensions.cs | 37 ++ 10 files changed, 894 insertions(+), 7 deletions(-) create mode 100644 ShrlAlgoToolkit.RevitAddins/Mep/MappingSystemCmd.cs create mode 100644 ShrlAlgoToolkit.RevitAddins/Standardizer/WriteParametersCmd.cs create mode 100644 ShrlAlgoToolkit.RevitAddins/Standardizer/WriteParametersView.xaml create mode 100644 ShrlAlgoToolkit.RevitAddins/Standardizer/WriteParametersView.xaml.cs create mode 100644 ShrlAlgoToolkit.RevitAddins/Standardizer/WriteParametersViewModel.cs diff --git a/ShrlAlgoToolkit.RevitAddins/Entry/RvApp.cs b/ShrlAlgoToolkit.RevitAddins/Entry/RvApp.cs index ab3c085..a272d37 100644 --- a/ShrlAlgoToolkit.RevitAddins/Entry/RvApp.cs +++ b/ShrlAlgoToolkit.RevitAddins/Entry/RvApp.cs @@ -5,9 +5,6 @@ using ShrlAlgoToolkit.RevitAddins.FamMaster; using ShrlAlgoToolkit.RevitAddins.ModelManager; using ShrlAlgoToolkit.RevitAddins.Properties; using ShrlAlgoToolkit.RevitAddins.RvCivil; -using ShrlAlgoToolkit.RevitAddins.RvCommon; -using ShrlAlgoToolkit.RevitAddins.RvMEP; -using ShrlAlgoToolkit.RevitAddins.RvView; namespace ShrlAlgoToolkit.RevitAddins.Entry; diff --git a/ShrlAlgoToolkit.RevitAddins/Mep/MappingSystemCmd.cs b/ShrlAlgoToolkit.RevitAddins/Mep/MappingSystemCmd.cs new file mode 100644 index 0000000..1e7b364 --- /dev/null +++ b/ShrlAlgoToolkit.RevitAddins/Mep/MappingSystemCmd.cs @@ -0,0 +1,66 @@ +using System.Linq; + +using Autodesk.Revit.Attributes; +using Autodesk.Revit.DB; +using Autodesk.Revit.DB.Mechanical; +using Autodesk.Revit.DB.Plumbing; +using Autodesk.Revit.UI; +using Autodesk.Revit.UI.Selection; + +namespace Szmedi.Test +{ + /// + /// Revit执行命令 + /// + [Transaction(TransactionMode.Manual)] + [Regeneration(RegenerationOption.Manual)] + public class MappingSystemCmd : IExternalCommand + { + public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) + { + //程序UI界面 + UIApplication uiapp = commandData.Application; + //获取元素(选择) 显示元素 视图(活动视图)管理(对象) + UIDocument uidoc = uiapp.ActiveUIDocument; + //程序 + Autodesk.Revit.ApplicationServices.Application app = uiapp.Application; + //获取位置和场地 视图(多个视图)管理 获取元素(Revit 项目里的全部元素) + Document doc = uidoc.Document; + //获取所有打开文档 + DocumentSet docset = uiapp.Application.Documents; + //当前视图 + View view = doc.ActiveView; + var systems=new FilteredElementCollector(doc) + .OfClass(typeof(MEPSystem)) + .WhereElementIsNotElementType().Cast().ToList(); + using (Transaction tx = new Transaction(doc, "Mapping System Names")) + { + tx.Start(); + foreach (var sys in systems) + { + var typeId = sys.GetTypeId(); + var type = doc.GetElement(typeId) as MEPSystemType; + if (sys is MechanicalSystem mechanicalSystem) + { + var elementSet = mechanicalSystem.DuctNetwork; + foreach (Element elem in elementSet) + { + elem.LookupParameter("三级系统名称")?.Set(type.Name); + } + } + if (sys is PipingSystem pipingSystem) + { + var elementSet = pipingSystem.PipingNetwork; + foreach (Element elem in elementSet) + { + elem.LookupParameter("三级系统名称")?.Set(type.Name); + } + } + } + tx.Commit(); + } + + return Result.Succeeded; + } + } +} \ No newline at end of file diff --git a/ShrlAlgoToolkit.RevitAddins/Standardizer/WriteParametersCmd.cs b/ShrlAlgoToolkit.RevitAddins/Standardizer/WriteParametersCmd.cs new file mode 100644 index 0000000..06f4d73 --- /dev/null +++ b/ShrlAlgoToolkit.RevitAddins/Standardizer/WriteParametersCmd.cs @@ -0,0 +1,35 @@ +using Autodesk.Revit.Attributes; +using Autodesk.Revit.DB; +using Autodesk.Revit.DB.DirectContext3D; + +using Nice3point.Revit.Toolkit.External; + +using ShrlAlgoToolkit.RevitAddins.Common.Assists; +using ShrlAlgoToolkit.RevitAddins.Standardizer; + + +namespace ShrlAlgoToolkit.RevitAddins.Standardizer +{ + [Transaction(TransactionMode.Manual)] + [Regeneration(RegenerationOption.Manual)] + public class WriteParametersCmd : ExternalCommand + { + public override void Execute() + { + //System.Windows.MessageBox.Show( + // "若当前视图不是三维且所有元素可见则不会修改参数值", + // "注意", + // System.Windows.MessageBoxButton.OK, + // System.Windows.MessageBoxImage.Information + //); + //WriteParametersWin win = WpfSingletonHelper.GetInstance(out bool isNewCreate); + //if (isNewCreate) + //{ + // win.DataContext = new WriteParametersViewModel(UiDocument); + // win.ShowAhead(); + //} + //win.Activate(); + WinDialogAssist.ShowOrActivate(UiDocument); + } + } +} diff --git a/ShrlAlgoToolkit.RevitAddins/Standardizer/WriteParametersView.xaml b/ShrlAlgoToolkit.RevitAddins/Standardizer/WriteParametersView.xaml new file mode 100644 index 0000000..b4ffc4c --- /dev/null +++ b/ShrlAlgoToolkit.RevitAddins/Standardizer/WriteParametersView.xaml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +