/// <summary> /// 默认构造函数,各属性获得默认值 /// </summary> public TendonParameters() { TdName = "Unnamed"; TdStyle = "Φ15-12"; TdNum = 1; TdPipeDia = 90; TdDrawStyle = TendonDrawStyle.Both; }
/// <summary> /// 将程序中的tdsInTbl和图形数据库同步 /// </summary> /// <param name="tdsInTbl">程序中的tdsInTbl列表</param> /// <param name="idsInTbl">所选的钢束线的ObjectId所组成的List</param> public static void SyncTdsToDwg(ref ObservableCollection <Tendon> tdsInTbl, List <ObjectId> idsInTbl) { tdsInTbl = new ObservableCollection <Tendon>();//初始化tds int index = 0; foreach (ObjectId tdId in idsInTbl) { Tendon td = new Tendon(); td.TdId = tdId; Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction()) { //不含该参数则为钢束线增加默认值的Xrecord //初始化各属性值 string tdName = $"F{1 + index}"; //钢束名称 string tdStyle = "Φ15-12"; //钢束规格 int tdNum = 1; //钢束根数 double tdPipeDia = 90; //管道直径 TendonDrawStyle tdDrawStyle = TendonDrawStyle.Both; //张拉方式 if (tdId.GetXrecord("DA_Tendons") == null) { TypedValueList values = new TypedValueList(); values.Add(DxfCode.Text, tdName); values.Add(DxfCode.Text, tdStyle); values.Add(DxfCode.Int16, (Int16)(int)tdNum); values.Add(DxfCode.Real, tdPipeDia); values.Add(DxfCode.Int16, (Int16)(int)tdDrawStyle); tdId.AddXrecord("DA_Tendons", values); index++; } else//如果存在该键值,采用Xrecord中记录的信息 { tdName = (string)tdId.GetXrecord("DA_Tendons")[0].Value; tdStyle = (string)tdId.GetXrecord("DA_Tendons")[1].Value; tdNum = (int)(Int16)tdId.GetXrecord("DA_Tendons")[2].Value; tdPipeDia = (double)tdId.GetXrecord("DA_Tendons")[3].Value; tdDrawStyle = (TendonDrawStyle)(int)(Int16)tdId.GetXrecord("DA_Tendons")[4].Value; } td.TdName = tdName; td.TdStyle = tdStyle; td.TdNum = tdNum; td.TdPipeDia = tdPipeDia; td.TdDrawStyle = tdDrawStyle; trans.Commit(); } tdsInTbl.Add(td); } }