添加项目文件。
This commit is contained in:
111
Szmedi.RevitToolkit.Approval/Models/ReviewItem.cs
Normal file
111
Szmedi.RevitToolkit.Approval/Models/ReviewItem.cs
Normal file
@@ -0,0 +1,111 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
|
||||
using Autodesk.Revit.DB;
|
||||
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
|
||||
namespace Szmedi.RevitToolkit.Approval.Models
|
||||
{
|
||||
public partial class ReviewItem : ObservableObject
|
||||
{
|
||||
private readonly string SignParamName;
|
||||
|
||||
//[ObservableProperty]
|
||||
//public partial bool IsSelected { get; set; } = false;
|
||||
|
||||
[ObservableProperty]
|
||||
[NotifyPropertyChangedFor(nameof(FullName))]
|
||||
public partial string Sign { get; set; }
|
||||
[ObservableProperty]
|
||||
[NotifyPropertyChangedFor(nameof(FullName))]
|
||||
public partial string Code { get; private set; }
|
||||
public ReviewItem(Element element, string signParam = "深圳构件标识")
|
||||
{
|
||||
Element = element;
|
||||
this.SignParamName = signParam;
|
||||
Sign = GetParameterValue(element, signParam, "无标识");
|
||||
Code = GetParameterValue(element, "AM-100-EAM分类编码", "无编码");
|
||||
//Sign = element.GetParameters("深圳构件标识").FirstOrDefault()?.AsString() ?? "无标识";
|
||||
//Code = element.GetParameters("AM-100-EAM分类编码").FirstOrDefault()?.AsString() ?? "无编码";
|
||||
}
|
||||
private string GetParameterValue(Element element, string paramName, string defaultValue)
|
||||
{
|
||||
var doc = element.Document;
|
||||
var param = element.GetParameters(paramName)?.FirstOrDefault();
|
||||
var typeParam = doc.GetElement(element.GetTypeId())?.GetParameters(paramName)?.FirstOrDefault();
|
||||
string paramValue = typeParam?.AsString() ?? defaultValue;
|
||||
if (paramValue == defaultValue)
|
||||
{
|
||||
paramValue = param?.AsString() ?? defaultValue;
|
||||
}
|
||||
return paramValue;
|
||||
}
|
||||
private void SetParameterValue(Element element, string paramName, string value)
|
||||
{
|
||||
var doc = element.Document;
|
||||
var typeParam = doc.GetElement(element.GetTypeId()).GetParameters("深圳构件标识").FirstOrDefault();
|
||||
var param = element.GetParameters(paramName).FirstOrDefault();
|
||||
|
||||
var typeResult = typeParam?.SetValue(value);
|
||||
var instanceResult = param?.SetValue(value);
|
||||
if (typeResult != true && instanceResult != true)
|
||||
{
|
||||
MessageBox.Show($"修改失败,请确认是否存在参数:{paramName}");
|
||||
}
|
||||
}
|
||||
partial void OnSignChanged(string value)
|
||||
{
|
||||
if (value == "无标识")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
RvApp.Handler
|
||||
.Raise(
|
||||
uiapp =>
|
||||
{
|
||||
if (!Element.IsValidObject)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Element.Document
|
||||
.Invoke(
|
||||
_ =>
|
||||
{
|
||||
SetParameterValue(Element, "深圳构件标识", value);
|
||||
|
||||
//var param = Element.GetParameters("深圳构件标识").FirstOrDefault();
|
||||
//if (param.AsString() == value)
|
||||
//{
|
||||
// return;
|
||||
//}
|
||||
//param.SetValue(value);
|
||||
},
|
||||
$"修改标识->{value}");
|
||||
});
|
||||
}
|
||||
|
||||
public string FullName
|
||||
{
|
||||
get
|
||||
{
|
||||
//if (string.IsNullOrEmpty(Sign))
|
||||
//{
|
||||
// Sign = "无标识";
|
||||
//}
|
||||
//if (string.IsNullOrEmpty(Code))
|
||||
//{
|
||||
// Code = "无编号";
|
||||
//}
|
||||
return $"{Sign} - {Code}";
|
||||
}
|
||||
}
|
||||
|
||||
public Element Element { get; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user