添加项目文件。
This commit is contained in:
75
RevitKits/WBSCoder/ProjectCodeAddedCheckerViewModel.cs
Normal file
75
RevitKits/WBSCoder/ProjectCodeAddedCheckerViewModel.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI;
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
|
||||
namespace Sai.Common.Shared.WBSCoder
|
||||
{
|
||||
public partial class ProjectCodeAddedCheckerViewModel : ObservableObject
|
||||
{
|
||||
public ProjectCodeAddedCheckerViewModel(CheckCodeViewModel viewModel)
|
||||
{
|
||||
allElements = viewModel.AllElements;
|
||||
LastTaskItems = viewModel.LastTaskItems;
|
||||
handler = new CodingEventHandler();
|
||||
codingEvent = ExternalEvent.Create(handler);
|
||||
}
|
||||
|
||||
private readonly IList<Element> allElements;
|
||||
private readonly ExternalEvent codingEvent;
|
||||
private readonly CodingEventHandler handler;
|
||||
|
||||
public ObservableCollection<TaskItem> LastTaskItems { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 添加WBS编码
|
||||
/// </summary>
|
||||
/// <param name="obj"></param>
|
||||
[RelayCommand]
|
||||
private void AddWbsCode(object obj)
|
||||
{
|
||||
try
|
||||
{
|
||||
handler.TaskItem = obj as TaskItem;
|
||||
|
||||
codingEvent.Raise();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
TaskDialog.Show("添加失败", $"{ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查mpp文件是否都赋予到模型
|
||||
/// </summary>
|
||||
[RelayCommand]
|
||||
private void CheckCode()
|
||||
{
|
||||
foreach (var ele in allElements)
|
||||
{
|
||||
var temp = ele.get_Parameter(BuiltInParameter.ALL_MODEL_MARK)?.AsString();
|
||||
if (temp == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
string code = WbsCoderUtils.FormatWbsCode(temp);
|
||||
|
||||
foreach (var task in LastTaskItems)
|
||||
{
|
||||
if (task.WBSCode == code)
|
||||
{
|
||||
task.HasCoded = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TaskDialog.Show("提示", "校验完成");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user