123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /* ==============================================================================
- * 功能描述:修正岗位从模型中读取的数据
- * 创 建 者:Garrett
- * 创建日期:2018/7/12 14:25:17
- * ==============================================================================*/
- using Autodesk.Revit.DB;
- using SAGA.DotNetUtils;
- using SAGA.DotNetUtils.Logger;
- using SAGA.DotNetUtils.Others;
- using SAGA.MBI.Calc;
- using SAGA.MBI.DataArrange;
- using SAGA.MBI.Model;
- using SAGA.MBI.Tools;
- using SAGA.MBI.WinView.Upload;
- using SAGA.RevitUtils.Extends;
- using System;
- using System.Collections.Generic;
- using SAGA.MBI.Common;
- namespace SAGA.MBI.ToolsData
- {
- /// <summary>
- /// CheckEquipCategory
- /// </summary>
- public class CorrectPropertyReadFromRevitHandler
- {
- /// <summary>
- /// 检查并处理所有楼层
- /// </summary>
- public static void OperateAll()
- {
- var floors = DalUploadFloor.GetHasFileFloors();
- foreach (UploadFloor floor in floors)
- {
- Operate(floor.MFloor);
- }
- }
- /// <summary>
- /// 只处理当前楼层
- /// </summary>
- public static void OperateCurFloor()
- {
- MFloor floor = ExternalDataWrapper.Current.Doc.GetCurMFloor();
- if (floor != null)
- Operate(floor);
- }
- /// <summary>
- /// 检查并处理
- /// </summary>
- /// <param name="floor"></param>
- /// <returns></returns>
- private static void Operate(MFloor floor)
- {
- try
- {
- var context = Check(floor);
- RebuildCloudData(context);
- }
- catch (Exception e)
- {
- MessageShowBase.Show(e);
- }
- }
- /// <summary>
- /// 检查设备,部件
- /// </summary>
- /// <param name="baseContext"></param>
- /// <param name="delcontext"></param>
- /// <param name="addContext"></param>
- private static CalcContext Check(MFloor floor)
- {
- var context = new CalcContext(floor);
- context.OpenDocument();
- var doc = context.RevitDoc;
- try
- {
- var modes = DalCommon.DownLoadCouldData(floor.Id);
- foreach (MRevitEquipBase mode in modes)
- {
- string cBimId = mode.BimID;
- if (cBimId.IsNullOrEmpty()) continue;
- int bimid = cBimId.GetBIMID();
- Element elem = doc.GetElement(bimid);
- if (elem == null) continue;
- mode.Operator = DocumentChangedOperator.Modified;
- mode.ReadRevitParamter(elem);
- context.Add(mode);
- }
- }
- catch (Exception v)
- {
- throw;
- }
- finally
- {
- doc.CloseDoc();
- }
- return context;
- }
- /// <summary>
- /// 重建物理世界有问题的数据
- /// </summary>
- private static void RebuildCloudData(CalcContext context)
- {
- context.Upload();
- }
- }
- }
|