根據(jù)當(dāng)前的程序,有以下幾個(gè)點(diǎn)進(jìn)行改良
1 日志每次revit生成的之后,就不會(huì)del,下次再次生成的時(shí)候,發(fā)現(xiàn)有日志,就不會(huì)在生成。采用將日志的名字修改為時(shí)間戳,每次運(yùn)行的時(shí)候,產(chǎn)生獨(dú)立的日志文件。
示例代碼
string date = DateTime.Now.ToLongDateString().ToString() + DateTime.Now.ToLongTimeString();
date = date.Replace(":", "_");
roller.File = @"EventLogByrevit" + date + ".txt";
這個(gè)代碼放在log.cs中。在revit的命令中執(zhí)行。這種方法調(diào)試的時(shí)候很有用。
2 在Model類中,增加一個(gè)每次都drop原來的庫,單獨(dú)重新生成一個(gè)庫。
在Model類中的構(gòu)造函數(shù)中增加
Database.SetInitializer
3 DB中增加一個(gè)時(shí)間字段,看是什么時(shí)間保存的數(shù)據(jù)。
4 DB中增加一個(gè)文件名的字段,這個(gè)文件名是全文件名,所以在類中設(shè)置這個(gè)屬性的時(shí)候,要保持1000個(gè)字符左右。不然個(gè)別的會(huì)很長,在保持的時(shí)候會(huì)報(bào)錯(cuò)。
5 在保持的時(shí)候,因?yàn)闃?gòu)建比較多,從網(wǎng)站上下載構(gòu)建
在Negut的控制臺(tái)上,執(zhí)行以下命令
Install-Package Z.EntityFramework.Extensions -Version 3.22.6
就會(huì)安裝一個(gè)Extension,它支持批量保持。
6 如果數(shù)據(jù)量還是很大,那么就將數(shù)據(jù)分為10000個(gè)為一個(gè)單位,分的方法可參考
List templist = new List();
int separate = 10000;
int mod整數(shù) = count / separate;
int mod余數(shù) = count % separate;
for (int j = 1; j <= mod整數(shù); j++)
{
templist.AddRange(l構(gòu)件實(shí)體列表.Skip((j-1) * separate).Take(separate));
m.d構(gòu)件實(shí)體數(shù)據(jù)處理.AddRange(templist);
m.BatchSaveChanges();
templist.Clear();
}
if (mod余數(shù) != 0)
{
templist.AddRange(l構(gòu)件實(shí)體列表.Skip(mod整數(shù) * separate).Take(mod余數(shù)));
m.d構(gòu)件實(shí)體數(shù)據(jù)處理.AddRange(templist);
m.BatchSaveChanges();
templist.Clear();
}
Common.utility.WriteDebugLog("數(shù)據(jù)庫存儲(chǔ)結(jié)束,采用了batchsavechange的方法。");
分為10000個(gè)為一個(gè)單位進(jìn)行保持。
7 為了便于發(fā)現(xiàn)問題,在系統(tǒng)中增加日志的記錄地方,采用
Common.utility.WriteDebugLog(string.Format("正在處理第{0}個(gè)文件,文件名是{1},一共有{2}個(gè)文件\r\n",i,filename, filenameList.Count()));
這種格式,比較好。
8 在Revit中執(zhí)行一個(gè)目錄下所有的revit文件。
打開一個(gè)revit文件,運(yùn)行這個(gè)插件。
這個(gè)插件一開始采用以下的代碼
string path = @"d:\1";
string[] filenameList = Directory.GetFiles(path, "*.rvt", SearchOption.AllDirectories);
app = commandData.Application.Application;
Document doc;
foreach (var x in filenameList)
{
Common.utility.WriteDebugLog(string.Format("個(gè)文件,文件名是{0}\r\n",x));
}
int i = 1;
foreach (var filename in filenameList)
{
Common.utility.WriteDebugLog(string.Format("正在處理第{0}個(gè)文件,文件名是{1},一共有{2}個(gè)文件\r\n",i,filename, filenameList.Count()));
i++;
9 ui的地方抽象一個(gè)類出來,將每個(gè)文檔的處理邏輯放入到單獨(dú)的一個(gè)類中
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。