Revit 2차 개발 솔루션

2792 단어 revit 2차 개발
현재 프로그램에 따르면 다음과 같은 몇 가지 점을 개량하여 1로그가 리비트에서 생성될 때마다델이 생성되지 않고 다음에 다시 생성될 때 로그가 있으면 생성되지 않는다.로그의 이름을 시간 스탬프로 수정하여 실행할 때마다 독립된 로그 파일을 생성합니다.
예제 코드
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 ,

좋은 웹페이지 즐겨찾기