Revit 2차 개발 솔루션
2792 단어 revit 2차 개발
예제 코드
string date = DateTime.Now.ToLongDateString().ToString() + DateTime.Now.ToLongTimeString();date = date.Replace(":", "_");roller.File = @"EventLogByrevit"+ date + ".txt";
이 코드는log에 있습니다.cs에서.revit 명령에서 실행합니다.이런 방법은 디버깅할 때 매우 유용하다.
2 모델 클래스에서 매번 drop 원래의 라이브러리를 추가하고 단독으로 라이브러리를 다시 생성합니다.모델 클래스의 구조 함수에 추가
Database.SetInitializer(new DropCreateDatabaseAlways());
3 DB에 시간 필드를 추가하여 저장된 데이터를 확인합니다.
4 DB에 파일 이름을 추가하는 필드입니다. 이 파일 이름은 전체 파일 이름이기 때문에 클래스에서 이 속성을 설정할 때 1000자 정도를 유지해야 합니다.그렇지 않으면 다른 것은 매우 길어서 유지할 때 잘못 보고할 수 있다.
5 유지할 때 구축이 많기 때문에 사이트에서 Negut의 컨트롤러에 구축된 것을 다운로드하고 다음 명령을 실행하면 Install-Package Z.entity Framework이다.Extensions - Version 3.22.6은 대량 유지를 지원하는 Extension을 설치합니다.
6 만약 데이터의 양이 여전히 크다면 데이터를 10000개로 나누어 하나의 단위로 나누는 방법은 참고할 수 있다
List templist = new List();
int separate = 10000;
int mod = count / separate;
int mod = count % separate;
for (int j = 1; j <= mod ; j++)
{
templist.AddRange(l .Skip((j-1) * separate).Take(separate));
m.d .AddRange(templist);
m.BatchSaveChanges();
templist.Clear();
}
if (mod != 0)
{
templist.AddRange(l .Skip(mod * separate).Take(mod ));
m.d .AddRange(templist);
m.BatchSaveChanges();
templist.Clear();
}
Common.utility.WriteDebugLog(" , batchsavechange 。");
10000개로 나누어 한 단위로 유지하다.
7 문제를 쉽게 발견할 수 있도록 시스템에 로그의 기록을 추가하기 위해 Common을 사용합니다.utility.WriteDebugLog(string.Format("{0} 개의 파일을 처리하고 있습니다. 파일 이름은 {1}이고 모두 {2} 개의 파일\r", i, filename, filenameList.Count()))이런 격식은 비교적 좋다.
8 Revit에서 디렉토리에 있는 모든 revit 파일을 실행합니다.이 플러그인을 실행하려면revit 파일을 엽니다.이 플러그인은 처음에 다음 코드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(" , {0}\r
",x));
}
int i = 1;
foreach (var filename in filenameList)
{
Common.utility.WriteDebugLog(string.Format(" {0} , {1}, {2} \r
",i,filename, filenameList.Count()));
i++;
9 ui ,