KR20180121193A - 엑셀 기반 건축 설계 파일의 버전 제어 방법 - Google Patents
엑셀 기반 건축 설계 파일의 버전 제어 방법 Download PDFInfo
- Publication number
- KR20180121193A KR20180121193A KR1020170055598A KR20170055598A KR20180121193A KR 20180121193 A KR20180121193 A KR 20180121193A KR 1020170055598 A KR1020170055598 A KR 1020170055598A KR 20170055598 A KR20170055598 A KR 20170055598A KR 20180121193 A KR20180121193 A KR 20180121193A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- excel
- files
- server computer
- program
- Prior art date
Links
Images
Classifications
-
- G06F17/30569—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G06F17/5004—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- Structural Engineering (AREA)
- Civil Engineering (AREA)
- Architecture (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 건축 BIM 설계에서 Revit 프로그램을 통하여 설계된 패밀리나 프로젝트 등의 다양한 내용들을 엑셀 파일 형태로 변환하여 출력하고, 출력된 엑셀 파일을 여러 사용자들이 공유하여 수정하는 경우 수정된 내용을 추적하여 표시할 수 있도록 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법에 관한 것이다.
본 발명에 따른 엑셀 기반 건축 설계 파일의 버전 제어 방법은 BIM(Building Information Modeling)을 위해 설계된 도면 파일이 엑셀 파일이 전환된 후, 전환된 도면 엑셀 파일을 복수의 사용자가 사용하여 수정하는 경우 수정된 부분을 검색하여 파악할 수 있도록 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법으로서, 클라이언트 컴퓨터에서 클라이언트 프로그램을 실행하여 도면 엑셀 파일이 등록된 서버 컴퓨터에 접속하는 단계와; 상기 서버 컴퓨터에 접속하는 클라이언트 컴퓨터에서 클라이언트 프로그램을 통하여 서버 컴퓨터에 등록된 도면 엑셀 파일을 다운로드 하여 수정하거나, 서버에 도면 엑셀 파일을 업로드 하여 등록하는 단계와; 상기 클라이언트 컴퓨터의 클라이언트 프로그램을 통하여 서버에 등록된 도면 엑셀 파일 중 2개의 도면 엑셀 파일을 선택하여, 선택된 도면 엑셀 파일 간의 상이점을 문자열 검색을 통해 비교하여 수정된 부분을 표시하는 단계;를 포함하여 이루어지는 것을 특징으로 한다.
본 발명에 따른 엑셀 기반 건축 설계 파일의 버전 제어 방법은 BIM(Building Information Modeling)을 위해 설계된 도면 파일이 엑셀 파일이 전환된 후, 전환된 도면 엑셀 파일을 복수의 사용자가 사용하여 수정하는 경우 수정된 부분을 검색하여 파악할 수 있도록 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법으로서, 클라이언트 컴퓨터에서 클라이언트 프로그램을 실행하여 도면 엑셀 파일이 등록된 서버 컴퓨터에 접속하는 단계와; 상기 서버 컴퓨터에 접속하는 클라이언트 컴퓨터에서 클라이언트 프로그램을 통하여 서버 컴퓨터에 등록된 도면 엑셀 파일을 다운로드 하여 수정하거나, 서버에 도면 엑셀 파일을 업로드 하여 등록하는 단계와; 상기 클라이언트 컴퓨터의 클라이언트 프로그램을 통하여 서버에 등록된 도면 엑셀 파일 중 2개의 도면 엑셀 파일을 선택하여, 선택된 도면 엑셀 파일 간의 상이점을 문자열 검색을 통해 비교하여 수정된 부분을 표시하는 단계;를 포함하여 이루어지는 것을 특징으로 한다.
Description
본 발명은 엑셀 기반 건축 설계 파일의 버전 제어 방법에 관한 것으로, 더욱 상세하게는 건축 BIM 설계에서 Revit 프로그램을 통하여 설계된 패밀리나 프로젝트 등의 다양한 내용들을 엑셀 파일 형태로 변환하여 출력하고, 출력된 엑셀 파일을 여러 사용자들이 공유하여 수정하는 경우 수정된 내용을 추적하여 표시할 수 있도록 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법에 관한 것이다.
최근 건축분야에서 BIM(Building Information Modeling)이 차세대 설계 환경 대응 건축설계 도구로 각광받고 있다. 일반적으로 건축분야의 각 설계 단계는 계획 설계, 기본설계, 실시설계 등으로 이루어지며, 설계의 각 단계를 거칠 때마다 구성요소에 대한 정보 입력이 필수적으로 요구된다.
이런 구성 요소에 대한 정보 입력이 필수적인 이유는 건축설계는 기본적으로 건축뿐만 아니라 구조, 기계, 전기, 통신 등의 여러 분야가 협업하는 분야이기 때문이다. 예를 들면, 여러 사람이 함께 작업하는 도면의 경우에 한 도면에 자신들이 수정해야 하는 부분이 존재할 때, 정확하게 어느 부분이 수정이 됐는지, 예전 프로젝트 파일의 값들은 어떠한 값을 가지고 있었는지 등을 알아야 건축 설계의 시간이 줄어들게 된다.
BIM 기술의 강점은 바로 협업 작업이 가능하고 그것이 실시간으로 공유가 된다는 점이다. 각기 다른 분야에서 같은 도면을 가지고 자기가 하는 작업이 다른 사람들과 실시간으로 공유된다는 점에서, 기존에 하나의 작업을 완료하고 다음 프로세스로 전개하는 과정이 줄어들며, 설계 기간의 단축으로 이어진다. 이는 전체적인 경비의 절감으로 이어질 수 있다.
위와 같은 BIM 기술을 위한 건축 설계 프로그램으로 Revit이 있는데, Revit은 Autodesk사에서 개발한 BIM 구현을 위해 제작된 BIM 소프트웨어 중 대표적인 소프트웨어로서, 건축 프로젝트에 필요한 설계, 문서화, 그리고 시공까지 지원하는 건물 설계, 문서, 시스템이다. 이러한 Revit은 단일 소프트웨어 응용프로그램으로, 개념설계에서 Revit을 사용하여 설계를 정밀하게 모델링하고, 성능을 최적화하고, 효과적으로 공동 작업을 수행할 수 있다. 또한 Revit에서 패밀리(Family)는 다양한 건축 설계에 들어가는 구성 요소(예를 들어 창, 벽체, 가구 등)들을 심벌화한 데이터(또는 라이브러리)로서, Revit 프로그램에서 GUI를 통하여 건축의 구성 요소들에 대하여 설계자가 정의하면 이는 rft라는 확장자명의 파일로 Revit 내에 저장된다.
Revit에서 패밀리는 단순한 심벌이 아니며 그 심벌의 크기와 내용이 변하며 파생되는 모든 것을 포함한다. 예를 들어 "문" 심벌이라고 하면 실생활에서 고유한 형태와 크기를 갖는 단 하나의 심벌이지만, Revit 에서의 "문" 패밀리는 하나의 형태에서 가질 수 있는 여러 가지 크기나 재질까지 포함한다. 따라서 "유형 선택기"에서 패밀리를 선택할 때 "문: 800×2400"이라고 표기된 것을 선택하게 된다. 따라서 사실상 패밀리가 없다면 Revit 사용할 수 없다.
그러나 이렇게 중요한 패밀리의 사용에 있어서 한 설계자에 의하여 만들어진 패밀리를 다른 설계자와의 공유나 재사용이 불가능하다는 것이다. 이것이 Revit BIM이 차세대 건축설계 도구로서 각광을 받고 있으면서도 국내의 현업에서 많이 사용되지 않는 이유 중 하나이다. 따라서 각 설계자는 자신의 패밀리를 만들어야 하며 공유가 어렵고 재활용이 어렵기 때문에 비슷한 건축물에 대한 패밀리 작업 또한 설계자가 다르다면 새롭게 재작성해야 하는 업무의 중복성과 번거로움, 비효율성이 존재한다.
이와 같이 설계를 진행할 때 정밀하게 모델링한 값들(패밀리)의 재사용이 용이하지 않고, 재사용을 하고 싶더라도 파일들의 용량이 크기 때문에 다른 프로젝트에 사용할 때 설계 프로그램의 속도가 저하되고, 불러온 값들과 기존의 값 중에 같은 이름이 존재한다면 중복성 에러 때문에 재사용이 어렵게 되는 문제가 존재하게 된다. 따라서, Revit에서 패밀리를 좀 더 편리하게 다른 설계 도면에 공유/접목/가공시킬 수 있고, 패밀리/프로젝트의 속성 값들을 가공/수정함으로써 패밀리의 재사용이 가능하도록 변환하는 프로그램이 요구되고 있다.
또한, 건축 설계 파일을 여러 사용자들이 공유하여 사용할 수 있도록 변환하는 경우, 변환된 파일을 다른 사용자가 수정하는 경우 수정된 부분을 모두 사용자가 공유할 수 있도록 파일의 수정 사항을 추적하여 비교 분석할 수 있는 버전 관리 방법이 요구된다.
본 발명은 상기 종래 Revit 패밀리의 재사용이 불가능한 문제점을 해결하기 위하여 제안된 것으로서, 본 발명의 목적은 BIM 설계에서 Revit 프로그램을 통하여 설계된 패밀리나 프로젝트 등의 다양한 내용을 엑셀 파일로 정리된 데이터 형태로 변환하여 출력하고, 변환된 엑셀 파일을 여러 사용자들이 공유하여 사용하는 과정에서 수정이 이루어지는 경우 수정된 내용을 추적하여 표시할 수 있도록 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 엑셀 기반 건축 설계 파일의 버전 제어 방법은 BIM(Building Information Modeling)을 위해 설계된 도면 파일이 엑셀 파일이 전환된 후, 전환된 도면 엑셀 파일을 복수의 사용자가 사용하여 수정하는 경우 수정된 부분을 검색하여 파악할 수 있도록 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법으로서, 클라이언트 컴퓨터에서 클라이언트 프로그램을 실행하여 도면 엑셀 파일이 등록된 서버 컴퓨터에 접속하는 단계와; 상기 서버 컴퓨터에 접속하는 클라이언트 컴퓨터에서 클라이언트 프로그램을 통하여 서버 컴퓨터에 등록된 도면 엑셀 파일을 다운로드 하여 수정하거나, 서버에 도면 엑셀 파일을 업로드 하여 등록하는 단계와; 상기 클라이언트 컴퓨터의 클라이언트 프로그램을 통하여 서버에 등록된 도면 엑셀 파일 중 2개의 도면 엑셀 파일을 선택하여, 선택된 도면 엑셀 파일 간의 상이점을 문자열 검색을 통해 비교하여 수정된 부분을 표시하는 단계;를 포함한다.
여기에서, 상기 클라이언트 컴퓨터의 서버 컴퓨터 접속은, 클라이언트 프로그램을 통하여 접속할 서버 컴퓨터 주소(도메인)와, 사용자 ID 및 패스워드를 포함하는 사용자 정보를 입력하여, 서버 컴퓨터에 로그인하여 이루어진다.
또한, 상기 클라이언트 컴퓨터의 클라이언트 프로그램을 통하여 서버 컴퓨터에 업로드는 도면 엑셀 파일은, 수정되기 전 최초로 업로드 된 도면 엑셀 파일은 "파일이름, 사용자 ID, 엑셀 파일 확장자"를 포함하는 파일 이름 포맷으로 서버 컴퓨터에 등록되고, 사용자의 의해 수정되어 업로드 된 도면 엑셀 파일은 "파일이름. 사용자 ID, 업로드한 시간, 엑셀 파일 확장자"를 포함하여 파일 이름 포맷으로 서버 컴퓨터에 시간 순서대로 등록되어, 사용자에 의해 수정된 도면 엑셀 파일이 어느 사용자(ID)에 의해 어느 시점에서 수정되어 업로드 되었는지를 파일 이름 포맷을 통해 파악할 수 있도록 하는 것이 바람직하다.
상기 도면 엑셀 파일의 비교를 위해 문자열 검색을 수행하는 클라이언트 프로그램은, 비교 대상이 되는 2개의 파일이 원본이 같은 파일인지 검사하여, 같은 파일인 경우 문자열 검색을 통해 비교를 수행하고, 다른 파일인 경우 비교를 종료하게 된다.
여기에서, 상기 비교 대상이 되는 2개의 파일의 원본이 같은 파일인지의 검사는, 비교대상 엑셀 파일 시트(Sheet)의 인덱스(Index)와 아이디(ID)를 체크하여 동일 여부를 파악함으로써 이루어지게 된다.
한편, 상기 선택된 2개의 도면 엑셀 파일 간의 상이점 비교는, 2개의 도면 엑셀 파일을 셀 단위로 비교하여, 셀의 첫 번째 단어가 동일하면 동일 셀의 다음 단어에 대해 순차적으로 비교를 수행하고, 셀의 첫 번째 단어가 동일하지 않으면 해당 셀에 대한 비교를 건너뛰고 다음 셀에 대한 비교를 진행하여, 비교 시간을 단축하게 된다.
즉, 상기 선택된 2개의 도면 엑셀 파일 간의 비교는, 패턴의 길이를 저장하는 필드와 문서 데이터를 저장하는 필드를 설정하는 단계와; 비교하고자 하는 데이터의 Index와 ID 값을 비교하는 단계와; 상기 Index와 ID가 동일하지 않으면 해당 데이터에 대한 비교를 하지 않고, 동일한 경우 데이터가 Null 값을 갖는지 검사하여, Null 값을 갖는 경우 Null 값을 반환하고 검색을 종료하는 단계와, 데이터가 Null 값을 갖지 않는 경우, KMP 알고리즘에 따라 데이터의 bit를 하나씩 움직여가며 패턴을 찾아 문자열 검색을 수행하는 단계;를 포함한다.
상기 2개의 도면 엑셀 파일 간의 비교 결과, 수정된 부분이 발견되면 수정된 셀(Cell)의 색상을 다르게 표시하는 것이 바람직하다.
본 발명에 따르면, BIM 설계에서 Revit 프로그램으로 설계된 패밀리/프로젝트 파일을 엑셀 파일로 출력하여 도면 설계 파일의 데이터 수정을 용이하게 하고, 엑셀 파일 간의 공유를 가능하게 함으로써 협업적으로 작업을 수행할 수 있도록 하며, 엑셀 파일의 공유 및 사용을 통하여 내용이 수정되는 경우 수정 내용을 추적하여 간편하게 파악하고 논의할 수 있는 효과가 있다.
또한, 여러 사용자가 협업을 하는 경우 서버에서 파일을 관리해주기 때문에 자신의 PC 자원을 사용하지 않더라도 쉽게 이전 파일을 다시 열람하거나 참고 할 수 있으며, 이에 따라 여러 사용자가 하나의 설계도면 엑셀 파일을 수정하더라도 누가 언제 어느 데이터를 수정하였는지 쉽게 알 수 있으므로 다수의 사용자의 협업 시스템에 비효율성 문제를 해결할 수 있는 효과가 있다.
도 1은 본 발명에 따른 건축 BIM 설계 파일의 엑셀 파일 전환 방법의 개념도,
도 2는 본 발명에 따라 도면 파일의 패밀리 속성 정보를 Revit SDK(Software Develop Kit)을 사용하여 가져오는 동작 과정을 나타낸 흐름도,
도 3은 본 발명에 따라 패밀리 정보의 속성 정보를 엑셀 파일로 만들 때의 동작 과정을 나타낸 흐름도,
도 4는 본 발명에 따라 Revit을 통해 설계된 패밀리 엑셀 데이터 내용을 엑셀 파일로 전환한 화면 일례,
도 5는 본 발명에 따른 Revit에서의 도면상의 패밀리 정보 값 일례,
도 6은 본 발명에 따른 Revit API의 클래스 다이어그램,
도 7은 본 발명에 따른 Revit에서 정리된 데이터를 엑셀로 변환하는 코드의 일례,
도 8은 본 발명에 따른 Revit Add-in 버튼을 활성화 시켜주는 파일의 일례,
도 9는 본 발명에 따른 애드인 외부도구 활성화 창의 일례,
도 10은 본 발명에 따른 Revit Add-in 프로그램이 Revit Tool 안에 생성된 화면 일례,
도 11은 본 발명에 따른 Export Excel의 실행 인터페이스 일례,
도 12는 본 발명에 따른 엑셀 전환 프로그램을 통하여 추출한 도면의 엑셀 파일 일례,
도 13은 본 발명에 따른 엑셀 파일과 패밀리 정보를 비교한 화면 일례이다.
도 14는 본 발명에 따른 엑셀 기반 건축 설계 파일의 버전 제어 시스템의 개념도,
도 15는 본 발명에 따라 클라이언트 컴퓨터에서 엑셀 파일을 서버에 업로드하거나 다운로드 하는 과정을 나타낸 흐름도,
도 16은 본 발명에 따른 클라이언트 프로그램의 실행 화면 일례,
도 17은 본 발명에 따라 서버와의 연결을 통해 활성화되는 클라이언트 프로그램의 GUI 화면 일례,
도 18은 본 발명에 따라 클라이언트 컴퓨터에서 엑셀 파일의 변경 내용을 이전 파일과 비교 분석하는 과정을 나타낸 흐름도,
도 19는 본 발명에 따른 엑셀 파일의 변경 내용 비교 화면 일례,
도 20은 본 발명에 따른 E-KMP 알고리즘 코드 일례,
도 21은 본 발명에 따른 E-KMP 알고리즘에 따라 파일을 비교 분석하는 과정을 나타낸 흐름도이다.
도 2는 본 발명에 따라 도면 파일의 패밀리 속성 정보를 Revit SDK(Software Develop Kit)을 사용하여 가져오는 동작 과정을 나타낸 흐름도,
도 3은 본 발명에 따라 패밀리 정보의 속성 정보를 엑셀 파일로 만들 때의 동작 과정을 나타낸 흐름도,
도 4는 본 발명에 따라 Revit을 통해 설계된 패밀리 엑셀 데이터 내용을 엑셀 파일로 전환한 화면 일례,
도 5는 본 발명에 따른 Revit에서의 도면상의 패밀리 정보 값 일례,
도 6은 본 발명에 따른 Revit API의 클래스 다이어그램,
도 7은 본 발명에 따른 Revit에서 정리된 데이터를 엑셀로 변환하는 코드의 일례,
도 8은 본 발명에 따른 Revit Add-in 버튼을 활성화 시켜주는 파일의 일례,
도 9는 본 발명에 따른 애드인 외부도구 활성화 창의 일례,
도 10은 본 발명에 따른 Revit Add-in 프로그램이 Revit Tool 안에 생성된 화면 일례,
도 11은 본 발명에 따른 Export Excel의 실행 인터페이스 일례,
도 12는 본 발명에 따른 엑셀 전환 프로그램을 통하여 추출한 도면의 엑셀 파일 일례,
도 13은 본 발명에 따른 엑셀 파일과 패밀리 정보를 비교한 화면 일례이다.
도 14는 본 발명에 따른 엑셀 기반 건축 설계 파일의 버전 제어 시스템의 개념도,
도 15는 본 발명에 따라 클라이언트 컴퓨터에서 엑셀 파일을 서버에 업로드하거나 다운로드 하는 과정을 나타낸 흐름도,
도 16은 본 발명에 따른 클라이언트 프로그램의 실행 화면 일례,
도 17은 본 발명에 따라 서버와의 연결을 통해 활성화되는 클라이언트 프로그램의 GUI 화면 일례,
도 18은 본 발명에 따라 클라이언트 컴퓨터에서 엑셀 파일의 변경 내용을 이전 파일과 비교 분석하는 과정을 나타낸 흐름도,
도 19는 본 발명에 따른 엑셀 파일의 변경 내용 비교 화면 일례,
도 20은 본 발명에 따른 E-KMP 알고리즘 코드 일례,
도 21은 본 발명에 따른 E-KMP 알고리즘에 따라 파일을 비교 분석하는 과정을 나타낸 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
먼저, 건출 BIM 설계 도면 파일을 엑셀 파일로 전환하는 방법에 대하여 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 건축 BIM 설계 파일의 엑셀 파일 전환 방법의 개념을 나타낸 것이다.
도 1에 도시된 바와 같이, 본 발명에서는 Revit에서 패밀리를 좀 더 편리하게 다른 설계 도면에 공유/접목/가공시킬 수 있고, 패밀리/프로젝트의 속성 값들을 가공/수정함으로써 패밀리의 재사용을 용이하게 할 수 있도록 건축 BIM 설계 파일의 엑셀 파일 전환 방법을 제공한다. 즉, 본 발명의 실시 예에서는 미리 작성된 Revit 설계 파일을 Revit 프로그램으로 편집을 할 때, Revit Add-in 프로그램을 통하여 작성된 설계 파일의 패밀리 정보들을 포함하여 층간 정보 등 모든 정보를 엑셀(Excel) 파일로 전환할 수 있도록 하고 있다.
이를 위한 본 발명에 따른 건축 BIM 설계 파일의 엑셀 파일 전환 방법은, 먼저 Revit에서 도면 파일의 패밀리 속성 정보를 꺼낸 후, 패밀리 속성 정보를 이용하여 도면 파일을 엑셀 파일로 전환하게 된다.
도 2는 본 발명의 실시예에 따라 도면 파일의 패밀리 속성 정보를 Revit SDK(Software Develop Kit)을 사용하여 가져오는 동작 과정을 나타낸 흐름도이다.
단계 S100, S110 : 먼저, 설계 도면 파일을 열어(S100), Revit DB(Data Base)에서 도면의 정보를 가져온다(S110). 작성된 기존 도면의 정보는 DB 내에 패밀리 별로 ID와 속성 정보의 Pair 값으로 존재한다. 이때 ID 값은 도면에서 패밀리 정보를 생성할 때 부여되는 ID 값으로 중복되지 않는 값을 의미한다.
단계 S120, S140 : ID 값을 가져온다면, ID 값과 관련된 속성 정보를 볼 수 있는 권한을 얻게 된다. 이때 패밀리 정보에 따른 ID 값에 따라 속성 정보가 모두 다르다. 만약 ID 값이 없다면 패밀리 속성정보를 가져오는 동작이 종료된다(S140).
단계 S130 : 속성 정보를 볼 수 있는 권한을 얻게 된다면, 속성 정보 Index(Properties Index)를 받아오고, 그 후에 속성 정보의 Index에 따른 값들을 제공받아 사용한다.
도 3은 본 발명의 실시예에 따라 패밀리 정보의 속성 정보를 엑셀 파일로 만들 때의 동작 과정을 나타낸 흐름도이다.
단계 S200, S210, S211 : 먼저, ID 값에 따른 속성 정보를 가져왔다면(S200), ID 별로 같은 패밀리 끼리 분류하게 된다(S210). 만약, ID 별로 같은 패밀리가 없다면 패밀리 정보는 없게 된다(S211).
단계 S220, S230 : 이때, ID 값에서 Revit DB에서 받아온 패밀리 정보를 각 ID 별로 나누게 되는데, 처음 두 자리의 ID 값이 같다면(S220), 같은 재질(종류)의 패밀리임을 알 수 있고(S230). 처음 두 자리의 ID 값이 다르다면 다른 재질의 패밀리임을 알 수 있다(S240). 또한, 패밀리 정보를 생성할 때 Revit 프로그램 상에서 분류를 미리 지정하기 때문에, ID 값을 통해 Revit DB를 검색하여 가장 초기 분류군을 지정할 수 있다.
이렇게 초기 분류군을 지정하고, ID 처음 두 자리의 값을 이용하여 재질의 분류까지 이뤄진다면, 속성 정보의 Index에 따라 속성 정보 값을 차례대로 엑셀 도구를 통하여 내보내기(Export) 하게 되면 동작이 완료된다.
이하에서는 Revit 설계 도면을 엑셀 전환하는 방법에 대하여 보다 상세히 설명하기로 한다.
본 발명은 BIM의 Revit에서 건축물의 설계 시에 발생하는 패밀리, 즉 요소들(문, 창문, 가구 등)을 좀 더 편리하게 새로운 다른 설계 도면에 공유/접목/가공시키기 위한 건축 BIM 설계 파일의 엑셀 파일 전환 방법에 관한 것으로, 본 발명을 통하여 생성된 엑셀 파일 내에서 패밀리/프로젝트의 속성 값들을 가공/수정함으로써 Revit 프로그램을 통하여 설계 도면을 보지 않더라도 간단한 오류들을 수정할 수 있으며, 이전의 수정한 부분들에 대해서 값을 저장함으로 같은 설계 도면의 진행 사항을 파악하고, 이전 버전으로 복귀를 편리하게 진행할 수 있도록 하고 있다.
도 4는 Revit을 통해 설계된 패밀리 엑셀 데이터 내용을 엑셀 파일로 전환한 화면 일례를 나타낸 것이다.
도 4의 좌측에서 보이는 바와 같이, 설계자가 패밀리/프로젝트 설계시에 Revit 프로그램에서 생성되는 방대한 양의 엑셀파일의 데이터 내용은 설계자가 알아볼 수 없는 형태로 존재하며, 엑셀 파일의 형태로 추출할 수 없고, Revit 프로그램 내에서만 엑셀 형태로 보이게 되어 있다. 하지만, 본 발명에서 이러한 데이터를 도 4의 우측에서 보이는 형태로 생성하고 엑셀의 독립된 파일로 추출할 수 있게 함으로, Revit이 없어도 내용의 수정이 가능하고 타 설계자와 전체 또는 일부 데이터의 공유가 가능하게 한다.
본 발명에서는 일반적으로 건축 실무에서 많이 활용되고 있는 BIM 제작도구 Revit 2016(이후로는 Revit)을 이용하여 BIM 설계 파일의 엑셀 파일 전환 프로그램을 개발하였는데, 이는 일종의 Add-in 프로그램으로서 기존의 Revit 프로그램에 DLL 형태로 연동되며 개발된 모듈을 Revit 인터페이스에서 호출하는 형식으로 운영된다. 이를 위해서 Revit 배급사인 Autodesk 측에서 제공하는 SDK(Software Development Kit)를 이용하여 개발을 진행하였다.
본 발명에 따른 BIM 설계 파일의 엑셀 파일 전환 프로그램은 Revit에서 제작된 BIM 데이터를 읽어들여 데이터를 엑셀 시트 환경으로 재구성하여 프로그래밍 한다. 엑셀 데이터를 생성하는 부분은 Revit SDK를 이용하여 C#으로 개발이 진행되었으며, Revit에서 제작된 건축물 모델의 각 구성 객체(패밀리)를 읽어들여 엑셀 데이터의 형식으로 추출하게 된다.
도 5는 Revit에서의 도면상의 패밀리 정보 값 일례를 나타낸 것이다.
도 5에서 보이는 바와 같이, Revit을 통하여 설계된 엑셀 데이터들(예를 들면, 벽, 가구, 지붕 등)은 모두 숫자 값으로 되어 있고, Revit에서 제공하는 기본적인 면이나 재료들을 매핑(Mapping)해서 사용하는 형태를 취하고 있으며, 이러한 엑셀의 데이터는 Revit 프로그램을 통하여만 확인이 되게 되어 있어서 타인에게 전달이 불가능하다.
이에 본 발명에 따른 엑셀 파일 전환 프로그램에서는 이러한 숫자 값들을 추출해서 문의 데이터 값인지, 지붕의 데이터 값인지를 먼저 구별해 준다. 또한, 각 패밀리 상에서 문의 가로 값이나 세로 값 등 수정할 수 있는 데이터들이 존재하는데, 수정할 수 있는 데이터 값들에 대해서 엑셀 파일로 수정할 수 있도록 도와주게 된다.
본 발명에서는 Revit SDK에서 제공하는 Revit API(Application Programming Interface)를 통하여 Revit 안에 있는 도면의 정보를 가져 올 수 있는데, 도 6은 Revit API의 클래스 다이어그램을 나타낸 것이다. Revit API 클래스에서 도면의 모든 정보를 가져올 수 있는 함수는 ParameterElement() 안에 존재한다. 도면의 정보가 적은 양이 아니기 때문에 원하는 정보를 가져오기 위해서는 get 함수를 통하여 도면 안에 존재하는 Parameter를 전부 확인하여 정보를 가져오는 것이 중요하다. 이때 Parameter의 값들을 정렬하여 Interface안의 ListBox() 안에 정보를 나타낼 수 있도록 한다. 정렬방식은 기호, 숫자, 영어, 한글 순으로 정렬을 하게 된다.
또한, 정보를 Interface 상으로 불러오게 되면, 이 정보들을 엑셀 파일로 만드는 것이 중요한데, 이때는 MS에서 제공하는 Excel.Interop 함수를 사용하게 된다. Worksheet에 데이터를 Parameter의 이름을 넣고, ID와 각 속성 값 별로 정리해서 넣게 된다.
도 7은 Revit에서 정리된 데이터를 엑셀로 변환하는 코드의 일례를 나타낸 것이다. 도 7에서는 Revit 에서 가져온 데이터를 사용자가 알기 쉽게 정리하고, 그 데이터를 엑셀에 넣는 부분을 보여주고 있다. Revit에서 도면을 그리면 객체 Base로 도면을 그리기 때문에 기존 건축 설계를 할 때 사용하는 CAD 프로그램에서 생성되는 데이터 양보다 많아져서 Revit의 데이터를 사용자가 알기 쉽게 정리하는 것이 중요한데, 이때의 패밀리 카테고리 제목과 카테고리에 연결된 값들을 전부 분석하여 엑셀로 내보내는 과정을 도 7에서 보여주고 있다. String Format을 통해 내가 원하는 카테고리, 거기에 속해있는 속성들, 속성에 대한 값들 순서로 엑셀에 기입되도록 설정이 되어 있는 것을 볼 수 있다.
이하에서는 본 발명에서 개발된 BIM 설계 파일의 엑셀 파일 전환 프로그램을 상용 Revit 프로그램 안에 Add-In 시키는 과정에 대해 설명하기로 한다.
본 발명에서 제안하는 엑셀 파일 전환 프로그램을 실행시키면, Revit 2016이 설치되어 있는 컴퓨터의 경우 자동으로 Revit 프로그램으로 디버그를 진행하게 된다. 디버그를 진행하였으면 Revit 프로그램이 설치되어있는 폴더 안에 도 8과 같은 코드를 작성하여 넣어주는데, 도 8은 Revit Add-in 버튼을 활성화 시켜주는 파일의 일례이다.
그 이후, 원하는 설계 도면을 선택하여 편집 모드로 들어가게 된다. 도 9는 애드인 외부도구 활성화 창의 일례를 나타낸 것으로, 도 10과 같이 애드인 탭에 외부 도구 버튼이 활성화 되어 표시되게 된다.
이후에, 도 10에서와 같은 Revit Add-in 프로그램이 Revit Tool 안에 생성된다. 기본적으로 Revit은 Add-in 시스템을 허용하는데, Revit을 이용하는 것에 있어서 좀 더 편리하게 이용할 수 있도록 사용자들이 직접 프로그램을 구성하고 Revit 안에 프로그램을 넣을 수 있는 구조를 띄고 있다. 본 발명에서는 따른 엑셀 파일 전환 프로그램이 Revit의 도면 파일을 읽어와야 하기 때문에 독립적인 프로그램보다 Add-in 방식 프로그램의 형태를 취하게 된다.
상기 도 10의 Add-in 프로그램 중에 Export Excel을 누르게 되면, 도 11의 창이 뜨게 된다. 도 11은 Export Excel의 실행 인터페이스 일례로서, 도 11에서 Accept 버튼을 누르게 되면 도면의 데이터를 불러오게 되고, 잠깐 동안 기다리면 체크 리스트 박스 안에 패밀리 목록들이 전부 나오게 된다. 그때 패밀리 목록을 전부 클릭하여 파일의 저장 위치를 선택하면, 도면의 모든 정보가 엑셀로 나오게 된다. 모든 패밀리 내용이 필요 없다면 필요한 항목만 클릭하여 엑셀로 추출할 수도 있다.
이하에서는 본 발명에 따른 BIM 설계 파일의 엑셀 파일 전환 프로그램에 대한 검증을 해보기로 한다.
프로그램의 검증은 도 5에 표시된 패밀리의 정보들을 엑셀 파일 형태로 전부 추출할 수 있는지에 대해 검증하기로 하는데, 이는 패밀리 정보 즉, 벽의 가로, 세로 길이나 계단의 종류 등 각각의 속성을 전부 엑셀로 바꿔서 볼 수 있게 된다면 도면의 수정도 가능하기 때문이다. 도 12는 본 발명에 따른 엑셀 전환 프로그램을 통하여 추출한 도면의 엑셀 파일 일례를 나타낸 것이다.
또한, 도면 파일과 Add-in 형태의 엑셀 전환 프로그램에서 나온 엑셀 파일의 정확도를 검증하기 위하여, Revit 상에서 볼 수 있는 패밀리의 정보들과 엑셀 파일로 추출한 정보를 대조하여 검증하였다. 도 13은 특정 도면의 본 발명을 통해 생성된 엑셀 파일에서 같은 속성의 패밀리끼리 분류화 시켜놓은 Index와 Revit 프로그램상에서 나타나는 도면의 패밀리 정보를 비교한 화면의 일례로서, 엑셀 파일과 패밀리의 정보들을 대조해보면 100% 일치하는 것을 볼 수 있다. 100% 일치한다는 것은 도면 정보를 엑셀 파일로 전환 시켰을 때에 모든 정보를 엑셀 파일로 전환(Export) 시킬 수 있는 것을 의미하기 때문에, 도면의 수정이나 도면을 한눈에 보기 위한 자료로써 오류 없이 사용자가 데이터를 직관적으로 불 수 있게 된다.
이러한 엑셀 전환 프로그램이 필요한 이유는 Revit이 기본적으로 그래픽으로 표현하기 때문에 간단히 실행하기에는 무거운 툴이고, 요즘 많이 사용되고 있는 일반적인 태블릿 PC에서 실행할 수 없다는 치명적인 단점이 존재하기 때문이다. 이러한 엑셀 전환 프로그램은 엑셀 파일 형태이기 때문에 전체적인 큰 그림을 많은 부분 수정할 수는 없겠지만, 간단하게 도면을 수정할 일이 있다면 엑셀 파일로 가지고 다니다가 일정 부분만 수정하여 활용할 수 있 수 있는 프로그램이 될 수 있다.
또한, Revit 안에서는 작성된 도면의 일람표를 만든 그대로 똑같이 출력해낼 수 없기 때문에 일람표 만드는 일을 두 번이나 반복하게 되는 이중 작업 현상이 일어나게 된다. 반면, 본 발명에 따른 엑셀 전환 프로그램을 이용하면 Revit 안에서 일람표를 만들게 되면 그 일람표를 엑셀 파일 형태로 출력할 수 있기 때문에 다시 이중 작업을 하지 않아도 다른 곳에서 사용할 수 있게 된다.
이와 같이, 본 발명에서는 Revit 설계 도면 파일의 패밀리를 엑셀 파일 전환 프로그램을 이용하여 엑셀 파일 형태로 전환함으로써 사용자 간의 파일 공유에 있어 편리한 점과 도면의 모든 정보를 데이터화 하여 볼 수 있기 때문에 설계자들의 정보 공유에 있어서 직관성을 가질 수 있게 된다.
상기 과정을 통하여 Revit의 설계 도면 파일이 엑셀 파일로 전환되면 Revit 프로그램을 수행하지 않아도 엑셀 프로그램을 통하여 설계 도면상의 요소들에 대한 정보를 쉽게 공유할 수 있으며 수정/가공 또한 가능하게 된다.
한편, 다수의 사용자가 병행적으로 같은 도면에 대한 수정 및 가공 그리고 그러한 도면의 공유를 효율적으로 혼동없이 운용하기 위해서는 수정된 내용과 파일에 대한 제어 및 추적이 필요하다. 본 발명에서는 Revit 설계 도면의 엑셀 출력 파일을 효과적으로 제어 및 추적하기 위해 기존 문서와 수정 문서의 내용을 비교하여 표시해줌으로써, 다수의 사용자에 의한 엑셀 파일 수정 사항을 쉽게 확인할 수 있도록 하여 다수 사용자의 협업 효율성을 높일 수 있도록 제공한다.
도 14는 본 발명의 실시예에 따른 엑셀 기반 건축 설계 파일의 버전 제어 시스템의 개념도를 나타낸 것이다.
본 발명에 따른 엑셀 기반 건축 설계 파일의 버전 제어 시스템은 상기 도 1 내지 도 13에서 설명한 엑셀 파일 전환 프로그램을 이용하여 전환된 엑셀 기반의 패밀리 설계 파일들에 대한 버전을 관리하는 시스템으로, 일반적인 건축 설계의 공동작업시에는 설계반장이 존재하기 때문에 서버 컴퓨터 하나를 두고 파일을 교환하는 도 14와 같은 서버형 버전 제어 시스템이 적용된다. 즉, 서버 컴퓨터(Server Computer)에 모든 파일을 업로드 하고, 사용자들이 자신의 클라이언트 컴퓨터(Computer A, Computer B)를 이용하여 이 서버 컴퓨터에 접근하여 사용할 수 있게 된다.
상기 서버 컴퓨터에는 엑셀 파일을 데이터베이스에 등록하고 관리하기 위한 서버 프로그램이 설치되고, 클라이언트 컴퓨터에는 서버 컴퓨터에 엑셀 파일을 업로드 하거나 다운로드 하여 이용하는 클라이언트 프로그램이 설치된다.
상기 서버 컴퓨터에 설치되는 서버 프로그램은 클라이언트 컴퓨터로부터 전송되는 엑셀 파일을 데이터베이스에 등록하여 관리하는 프로그램으로써, 이 서버 프로그램은 클라이언트 컴퓨터의 요청시 데이터베이스에 등록된 엑셀 파일을 클라이언트 컴퓨터에 제공하여, 데이터베이스에 등록된 엑셀 파일을 다수의 클라이언트 컴퓨터에서 공유하여 사용할 수 있도록 관리하게 된다.
상기 클라이언트 컴퓨터에 설치되는 클라이언트 프로그램은 서버 컴퓨터에 저장된 엑셀 파일을 다운로드 하여 확인, 편집, 수정 등 다양한 문서 작업을 수행할 수 있도록 제공하는 프로그램으로써, 이 클라이언트 프로그램은 사용자의 선택에 따라 엑셀 파일 문서를 이전 또는 이후 파일과 비교하여 수정된 부분을 표시해 줌으로써 엑셀 파일 내용의 어떠한 부분이 얼마나 수정되었는지 사용자가 손쉽게 파악할 수 있도록 제공한다. 또한, 클라이언트 프로그램은 사용자의 작업에 의해 수정된 엑셀 파일을 서버 컴퓨터에 업로드 하여, 다른 사용자가 수정된 엑셀 파일을 이용할 수 있도록 제공하게 된다.
도 15는 본 발명의 실시예에 따라 클라이언트 컴퓨터에서 엑셀 파일을 서버에 업로드하거나 다운로드 하는 과정을 나타낸 흐름도이다.
단계 S300, S310, S320 : 먼저, 클라이언트 컴퓨터에서 클라이언트 프로그램이 시작되면(S300), 클라이언트 프로그램은 접속하고자 하는 서버 컴퓨터 정보의 입력을 기다리게 된다(S310). 사용자가 서버 정보를 입력하여 서버 컴퓨터와의 연결이 이루어지게 되면, 클라이언트 프로그램 상의 모든 기능 버튼이 활성화 되게 된다(S320). 도 16은 클라이언트 프로그램의 로그인 실행 화면 일례를 나타낸 것으로, 프로그램을 실행하여 "Server Connect" 창에 서버 정보(도메인, 아이디, 비밀번호, 사용자 이름 등)를 입력함으로써 서버 컴퓨터와의 연결이 이루어지게 된다.
도 17은 서버 컴퓨터와의 연결을 통해 활성화되는 클라이언트 프로그램의 GUI 화면 일례를 나타낸 것으로, GUI 화면의 상단에는 서버 컴퓨터에 저장된 파일 목록(File List)과, 중단의 Server File에 로딩된 파일의 Label(엑셀 파일 시트) 목록(Server Label)과, 하단의 Working File에 로딩된 파일의 Label(엑셀 파일 시트) 목록(Working Label)이 표시되는 창이 구비된다. 또한, 중단에는 상단의 File List에서 선택된 파일에서 Server Label에서 선택된 Label 정보(Server File)가 표시되는 창(Server File)이 구비되고, 하단에는 엑셀 파일을 수정하기 위해 Upload 버튼을 사용하여 서버에 올릴 시에 올려지는 파일의 정보가 표시되는 창(Working File)이 구비된다. 또한, 맨 아래 메뉴 버튼으로 서버 로그인을 위한 버튼(Login), 서버의 파일 중 선택한 파일을 자신의 PC로 다운로드 하기 위한 버튼(Download), 작업 파일을 Working File에 표시하기 위한 버튼(Upload Check), 작업한 파일을 서버로 업로드 하기 위한 버튼(Upload), Server File의 파일과 작업한 Working File의 파일 간의 비교를 위한 버튼(Compare), Server File 또는 Working File의 파일을 삭제하기 위한 버튼(Clear File) 등이 구비된다.
단계 S330, S331, S332, S350 : 사용자는 도 17과 같이 활성화된 버튼을 이용하여 서버에 엑셀 파일을 업로드(Upload) 하거나 서버로부터 엑셀 파일을 다운로드(Download) 할 수 있게 되는데, 업로드를 선택하게 되면(S330), 업로드 할 엑셀 파일을 선택하게 된다(S331). 이때, 업로드 할 엑셀 파일은 확장자가 .xls나 .xlsx인 경우에만 파일 등록이 가능하며, 서버에 미리 정한 파일 이름만 업로드가 가능하다. 정확한 파일을 선택하였다면, 서버에 해당 엑셀 파일이 업로드 된다(S332). 업로드 된 파일은 서버에 등록된 파일을 검사하는 Check Server File을 통하여 서버에 정상적으로 등록되었는지 확인할 수 있다(S350).
본 발명의 실시예에서 클라이언트 프로그램을 통하여 서버 컴퓨터에 업로드 되는 엑셀 파일은 파일 이름 포맷이 자동으로 설정된다. 즉, 여러 사용자들에 의해 수정되기 전 최초로 서버 컴퓨터에 업로드 되는 도면 엑셀 파일은 "파일이름 + 사용자 ID + 엑셀 파일 확장자"를 포함하는 파일 형식으로 서버 컴퓨터에 저장되는데, 예를 들면 excel(pi).xlsx 등으로 등록될 수 있다. 또한, 사용자의 의해 수정되어 업로드 된 도면 엑셀 파일은 "파일이름 + 사용자 ID + 업로드한 시간 + 엑셀 파일 확장자"를 포함하여 파일 이름 포맷으로 서버 컴퓨터에 저장되는데, 예를 들면 excle(pi)10--6-14-41.xlsx 등으로 등록될 수 있다. 이러한 포맷의 도면 엑셀 파일은 등록 시간 순서에 따라 순차적으로 등록됨으로써, 어느 사용자(ID)에 의해 어느 시점에서 수정되어 업로드 되었는지를 파일 이름을 통해 파악할 수 있게 된다.
단계 S340, S341 : 만약, 파일 업로드를 선택하지 않았다면 Check Server File을 선택하여 서버에 등록되어 있는 엑셀 파일을 확인할 수 있는데(S340), 서버에 있는 파일을 확인하고자 하는 경우 해당 파일을 선택하여 선택한 엑셀 파일의 Sheet가 창에 표시되게 된다. 이에 따라 확인하고자 하는 Sheet를 선택하게 되면 DataGridView에 선택한 시트가 출력되어 간단하게 데이터를 확인할 수 있다(S341). 만약, 파일을 다운로드 받고자 하는 경우에는 해당 파일을 선택하여 'Download' 버튼을 클릭함으로써 자신의 클라이언트 컴퓨터에 저장하게 된다.
도 18은 본 발명의 실시예에 따라 클라이언트 컴퓨터에서 엑셀 파일의 변경 내용을 이전 파일과 비교 분석하는 과정을 나타낸 흐름도이다.
단계 S400, S410 : 엑셀 파일의 변경 내용 분석 과정은 클라이언트 프로그램을 통하여 활성화된 파일 비교 버튼(Compare)을 통하여 수행되는데, 사용자는 클라이언트 프로그램을 통하여 화면에 표시되는 창 1(Server File)과 창 2(Working File)에 비교 대상 엑셀 파일을 선택하여 각각 입력한 후 파일 비교 버튼(Compare)을 클릭하게 된다(S400).
단계 S420, S430 : 파일 비교 버튼(Compare)이 선택되면, 비교 대상으로 입력된 2개의 엑셀 파일이 같은 파일인지 먼저 비교하게 되는데, 이는 같은 파일이나 같은 Sheet가 아닌 경우 비교하는 것이 무의미하기 때문으로 2개의 파일이 같은지 아닌지 먼저 비교하게 된다(S420). 이때, 같은 파일인지 구분하는 방법은 파일 Sheet의 인덱스(Index)와 아이디(ID)를 체크하여, 같은 인덱스와 아이디를 가지고 있다면 같은 Sheet인 것으로 판단하여 비교 분석을 수행하게 된다(S430).
단계 S440, S450 : 이때, 엑셀 파일의 내용을 비교하여 내용이 같다면 셀에 아무런 표기를 하지 않지만(S440), 내용에 대해 변경 점이 존재하면 셀의 색상을 바꾸어 변경 점에 대해서 사용자가 알 수 있도록 표시하게 된다(S450). 도 19는 이러한 파일 비교 화면의 일례를 나타낸 것으로, Server File 창에 표시된 파일과 Working File 창에 표시된 파일이 비교되어, 변경된 부분의 Working File 창에 셀 색상이 노란색으로 표시된 것을 확인할 수 있다.
단계 S460, S470 : 상기 과정은 엑셀 파일의 처음부터 끝까지 순차적으로 수행되며(S460), 파일 끝까지 수행되면 비교 검색 과정을 종료하게 된다(S470).
본 발명에 따른 엑셀 기반 건축 설계 파일의 버전 제어에서 가장 중요한 기능 중 하나는 이전 파일과 어느 부분이 수정되어 졌는지 비교하는 기능이다. 이러한 비교 기능을 위해 본 발명에서는 문자열 검색 알고리즘을 사용하여 수정된 부분을 검색할 수 있도록 하였다.
문자열 검색 알고리즘이란 문자열 중에서 패턴을 찾아내어 같은 문자열을 찾는 알고리즘으로, 대표적으로 Native String Search, Finite-state automaton based search, Knuth-Morris-Pratt(KMP) Algorithm, Rabin-Karp string search algorithm 등이 존재한다. 이 중, KMP 알고리즘은 접두사 함수(prefix function)를 사용하여 문자열이 존재하는 범위를 검색함으로써, Native 알고리즘에서 필요 없는 비교 연산을 줄이도록 한 알고리즘이다. 이 KMP 알고리즘은 Kunth, Morris, Pratt 3명의 이름을 따서 KMP 알고리즘이라 불린다. 문자열 패턴 매칭은 입력으로서 기존의 파일인 텍스트 T와 입력받은 패턴 P가 주어지며, 둘은 문자열이고, 프로그램에서는 문자의 배열로 표현되어 검색을 하게 된다. 즉, 기존파일인 텍스트에서 패턴이 나타나는 모든 위치를 찾아내게 되는 것이다. 예를 들어 텍스트 abcdef 라고 가정한다고, 패턴이 def라고 한다면 패턴이 네 번째와 여섯 번째로 나타남을 알 수 있게 된다.
하지만, 기존의 KMP 알고리즘에서는 모든 문자열 또는 문장들에 대하여 특정 패턴을 비교 검토해야 하기에, 설계 패밀리의 엑셀 파일과 같이 방대한 설계 데이터를 포함하고 있는 경우에는 다소 비교시간이 오래 걸리는 문제가 있다. 그러나 일반적인 텍스트 형태의 데이터와는 달리 본 발명에서 다루고자 하는 설계 패밀리 파일은 엑셀 파일의 형태를 이루고 있고 엑셀 파일과 같은 포맷은 셀 단위로 단어를 포함하고 있으며, 설계파일을 엑셀로 만들 때 문장 단위로 출력이 되지 않아 모든 패턴을 찾을 필요가 없다. 즉, 셀 단위로 첫 번째 단어를 비교함으로써 그 셀에 대하여 다음 문자를 비교할 필요가 있는지 없는지를 파악할 수 있으며, 불필요 시에는 다음 셀로 진행을 이어 나아감으로써 파일 비교 수행에서 좀 더 신속성을 추구할 수 있다. 이에 따라 본 발명에서는 KMP 알고리즘을 수정하여 셀 단위로 검색을 진행하고 불필요한 문자열을 사전에 파악하여 검색하지 않도록 조정하였다. 기존 KMP 알고리즘에서 가장 최악의 문자열 패턴 검색은 TxP번 진행되는 과정인데, 이때 T는 문자열 P는 패턴이므로 이 중 T번의 과정 중에서 찾지 않아도 되는 많은 부분을 제거해 줄 수 있다면 좀 더 빠르게 데이터를 찾을 수 있게 된다.
이러한 점을 고려하여, 본 발명에서는 기존의 KMP 알고리즘을 변형한 E-KMP 알고리즘을 개발하여 시스템에 반영하였다. 즉, 본 발명에서는 엑셀 파일의 셀 기반 데이터 표현 방식을 활용하여 좀 더 효율적으로 비교가 가능하도록 수정된 E-KMP 알고리즘을 사용하여 원하는 문자열의 정보를 찾도록 하고 있는데, 도 20은 이러한 본 발명에 따른 E-KMP 알고리즘 코드 일례를 나타낸 것이다. 도 20과 같이, 본 발명에 따른 E-KMP 알고리즘은 파일을 비교할 때 기존의 모든 파일을 검색하는 대신 특정 행과 특정 열로 제안해서 찾을 수 있도록 하고, 패턴을 찾을 때에 처음 패턴이 맞는 부분만을 검색하여 검색을 최대한 줄일 수 있도록 하였다. 여기에서 처음 패턴이 맞는 부분만 찾는 이유는 Revit에서 엑셀 파일을 꺼낼 때에 정보가 앞의 패턴이 맞지 않으면 데이터의 종류가 다른 점을 이용한 것이다.
도 21은 본 발명에 따른 E-KMP 알고리즘에 따라 파일을 비교 분석하는 과정을 나타낸 흐름도이다.
단계 S500, S510 : 먼저, 엑셀 파일에 대한 비교 분석이 시작되면(S500), 패턴의 길이와 문서를 저장하는 필드를 설정하기 위해 변수 I, M을 지정하게 된다(S510). 여기에서, I=0은 변수를 초기화하여 이 변수 값을 사용할 수 있도록 만들고, M = length of pattern 은 찾고자 하는 패턴의 값을 입력하여 비교 분석하기 위한 변수이다.
단계 S520 : 다음으로 Index와 ID 값을 비교하게 되는데, 엑셀 문서는 Index와 ID가 존재하기 때문에 비교 범주를 줄여줄 수 있게 된다. 즉, 패턴을 찾기 전에 찾고자 하는 데이터의 Index 즉, 범주를 비교하여 같은 패턴을 띄고 있는 데이터를 찾기 위해 모든 데이터를 검색하는 것이 아니라 일정 부분의 데이터만 비교 분석하게 된다. 여기에서, Index[i]는 i 가 가지고 있는 범주(길이, 높이, 면적 등)를 의미하고, ID[i]는 i의 ID 값(Revit에서 사용되는 고유한 ID값)을 비교함으로써 패턴을 검색하는 부분을 상당량 줄여 줄 수 있게 된다.
단계 S530, S531 : 데이터 자체가 Null 값을 가지고 있다면(S530), null 값을 반환하고 알고리즘을 종료하게 된다(S531). 여기에서, Text[i]는 패턴을 찾고자 하는 데이터를 의미하는데, 이때 데이터가 null 값을 가지고 있다면, 알고리즘은 그대로 종료가 되고 찾고자 하는 패턴이 없음을 표시하는 null 값을 반환하게 된다.
단계 S540, S550, S560, S570 : 데이터가 Null 값을 가지고 있지 않다면 기존의 KMP 알고리즘에 따라 데이터의 bit를 하나씩 움직여가며 패턴을 찾고, 패턴이 존재한다면 같은 내용이므로 종료하게 되는데, 마지막까지 모든 문서 데이터의 bit를 검색하고 같은 패턴이 없다면 그대로 알고리즘이 종료되게 된다.
즉, 단계 S540에서 Move bit[]는 bit 연산자를 나타내는 것으로, Text[i]만큼 bit 연산자를 통해 더하게 되면 Move bit 이 같은 단어와 bit 연산자를 통해 두 번 더해지면 0 값이 나오는 성질을 사용하여 판단하게 된다. 단계 S550에서는 Move bit에 1을 더하여 데이터를 다시 받을 수 있도록 공간을 확보하는데, 이때 다른 데이터를 검색하기 위해 i변수에 ++ 즉, 1을 더해 다음 데이터를 검색할 수 있도록 한다. 또한, 단계 S560에서 마지막으로 Move bit 이 0이 나오게 되면 같은 데이터가 존재한다는 의미이므로 0과 1UL 즉, 더 이상 찾는 데이터가 존재하지 않는 경우 알고리즘을 종료하게 된다. 만약, 1UL이 0이 아닌 경우에는 데이터가 더 존재한다는 의미이므로 계속해서 상기 단계 S540으로 돌아가 데이터를 검색하게 된다. 단계 S570에서 같은 데이터가 존재한다면 Return 값을 찾은 데이터 값으로 주기 위해 해당 위치의 주소 값을 Text 값으로 정한 후, 알고리즘을 종료하게 된다.
이와 같이, 도면 파일들을 검색할 때 종래 KMP 알고리즘의 경우 모든 데이터를 검색하고 패턴을 전부 찾아야 끝나는 것과 달리, 본 발명에 따른 E-KMP 알고리즘은 앞에서 일치하지 않는 부분에 대해서는 끝까지 패턴을 검색하지 않기 때문에 검색 시간이 단축될 수 있다. 도 22는 검색 파일 크기에 따른 KMP 알고리즘과 본 발명의 E-KMP 알고리즘의 검색시간을 비교한 일례를 나타낸 것으로, 파일의 크기가 커질수록 시간 차이가 점점 증가하여 효율성에서 많은 차이가 나는 것을 확인할 수 있다.
상술한 바와 같이, 본 발명은 BIM을 위해 설계된 도면 파일을 엑셀 파일로 전환함으로써 엑셀 파일을 통해 도면 설계 파일의 데이터 수정이 용이하게 이루어질 수 있도록 제공한다. 또한, 여러 사용자가 엑셀 파일을 공유하여 사용할 수 있으므로 협업적으로 작업을 수행할 수 있으며, 엑셀 파일의 공유 및 사용을 통하여 내용이 수정되는 경우 수정 내용을 추적하여 간편하게 파악할 수 있도록 제공한다.
이러한 본 발명은 상술한 실시예에 한정되는 것은 아니며 본 발명이 속하는 기술 분야에서 통상의 지식을 갖는 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구 범위의 균등범위 내에서 다양한 수정 및 변형이 이루어질 수 있음은 물론이다.
Claims (8)
- BIM(Building Information Modeling)을 위해 설계된 도면 파일이 엑셀 파일이 전환된 후, 전환된 도면 엑셀 파일을 복수의 사용자가 사용하여 수정하는 경우 수정된 부분을 검색하여 파악할 수 있도록 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법으로서,
(a) 클라이언트 컴퓨터에서 클라이언트 프로그램을 실행하여 도면 엑셀 파일이 등록된 서버 컴퓨터에 접속하는 단계와;
(b) 상기 서버 컴퓨터에 접속하는 클라이언트 컴퓨터에서 클라이언트 프로그램을 통하여 서버 컴퓨터에 등록된 도면 엑셀 파일을 다운로드 하여 수정하거나, 서버에 도면 엑셀 파일을 업로드 하여 등록하는 단계와;
(c) 상기 클라이언트 컴퓨터의 클라이언트 프로그램을 통하여 서버 컴퓨터에 등록된 도면 엑셀 파일 중 2개의 도면 엑셀 파일을 선택하여, 선택된 도면 엑셀 파일 간의 상이점을 문자열 검색을 통해 비교하여 수정된 부분을 표시하는 단계;를 포함하는 것을 특징으로 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법.
- 제 1항에 있어서,
상기 클라이언트 컴퓨터의 서버 컴퓨터 접속은, 클라이언트 프로그램을 통하여 접속할 서버 컴퓨터 주소(도메인)와, 사용자 ID 및 패스워드를 포함하는 사용자 정보를 입력하여, 서버 컴퓨터에 로그인하여 이루어지는 것을 특징으로 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법.
- 제 1항에 있어서,
상기 클라이언트 컴퓨터의 클라이언트 프로그램을 통하여 서버 컴퓨터에 업로드는 도면 엑셀 파일은,
수정되기 전 최초로 업로드 된 도면 엑셀 파일은 "파일이름, 사용자 ID, 엑셀 파일 확장자"를 포함하는 파일 이름 포맷으로 서버 컴퓨터에 등록되고,
사용자의 의해 수정되어 업로드 된 도면 엑셀 파일은 "파일이름. 사용자 ID, 업로드한 시간, 엑셀 파일 확장자"를 포함하여 파일 이름 포맷으로 서버 컴퓨터에 시간 순서대로 등록되어,
사용자에 의해 수정된 도면 엑셀 파일이 어느 사용자(ID)에 의해 어느 시점에서 수정되어 업로드 되었는지를 파일 이름 포맷을 통해 파악할 수 있도록 하는 것을 특징으로 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법.
- 제 3항에 있어서,
상기 도면 엑셀 파일의 비교를 위해 문자열 검색을 수행하는 클라이언트 프로그램은, 비교 대상이 되는 2개의 파일이 원본이 같은 파일인지 검사하여, 같은 파일인 경우 문자열 검색을 통해 비교를 수행하고, 다른 파일인 경우 비교를 종료하는 것을 특징으로 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법.
- 제 4항에 있어서,
상기 비교 대상이 되는 2개의 파일의 원본이 같은 파일인지의 검사는, 비교대상 엑셀 파일 시트(Sheet)의 인덱스(Index)와 아이디(ID)를 체크하여 동일 여부를 파악함으로써 이루어지는 것을 특징으로 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법.
- 제 1항에 있어서,
상기 선택된 2개의 도면 엑셀 파일 간의 상이점 비교는,
2개의 도면 엑셀 파일을 셀 단위로 비교하여, 셀의 첫 번째 단어가 동일하면 동일 셀의 다음 단어에 대해 순차적으로 비교를 수행하고, 셀의 첫 번째 단어가 동일하지 않으면 해당 셀에 대한 비교를 건너뛰고 다음 셀에 대한 비교를 진행하여, 비교 시간을 단축하는 것을 특징으로 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법.
- 제 1항에 있어서,
상기 선택된 2개의 도면 엑셀 파일 간의 비교는,
(c-1) 패턴의 길이를 저장하는 필드와 문서 데이터를 저장하는 필드를 설정하는 단계와;
(c-2) 비교하고자 하는 데이터의 Index와 ID 값을 비교하는 단계와;
(c-3) 상기 Index와 ID가 동일하지 않으면 해당 데이터에 대한 비교를 하지 않고, 동일한 경우 데이터가 Null 값을 갖는지 검사하여, Null 값을 갖는 경우 Null 값을 반환하고 검색을 종료하는 단계와,
(c-4) 데이터가 Null 값을 갖지 않는 경우, KMP 알고리즘에 따라 데이터의 bit를 하나씩 움직여가며 패턴을 찾아 문자열 검색을 수행하는 단계;를 포함하여 이루어지는 것을 특징으로 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법.
- 제 1항 또는 제 7항에 있어서,
상기 2개의 도면 엑셀 파일 간의 비교 결과, 수정된 부분이 발견되면 수정된 셀(Cell)의 색상을 다르게 표시하는 것을 특징으로 하는 엑셀 기반 건축 설계 파일의 버전 제어 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170055598A KR101966518B1 (ko) | 2017-04-28 | 2017-04-28 | 엑셀 기반 건축 설계 파일의 버전 제어 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170055598A KR101966518B1 (ko) | 2017-04-28 | 2017-04-28 | 엑셀 기반 건축 설계 파일의 버전 제어 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180121193A true KR20180121193A (ko) | 2018-11-07 |
KR101966518B1 KR101966518B1 (ko) | 2019-04-05 |
Family
ID=64362790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170055598A KR101966518B1 (ko) | 2017-04-28 | 2017-04-28 | 엑셀 기반 건축 설계 파일의 버전 제어 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101966518B1 (ko) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109858138A (zh) * | 2019-01-28 | 2019-06-07 | 厦门海迈科技股份有限公司 | 基于bim的房间装修构件处理方法、装置、终端及介质 |
KR102040772B1 (ko) * | 2018-11-09 | 2019-11-05 | 주식회사 커넥트스토리 | 조달물품등록 관련 컨설팅 프로젝트에 필요한 데이터의 관리 방법 |
CN110866304A (zh) * | 2019-12-25 | 2020-03-06 | 中铁建设集团有限公司 | 一种基于钢筋模板一体化直墙构件模型的创建方法 |
CN111736805A (zh) * | 2019-03-25 | 2020-10-02 | 北京沃东天骏信息技术有限公司 | 一种处理Excel表格的方法和装置 |
CN114692269A (zh) * | 2022-03-21 | 2022-07-01 | 中建交通建设集团有限公司 | 基于Revit平台的结构建模的视图标准化控制方法和系统 |
CN114722030A (zh) * | 2022-05-19 | 2022-07-08 | 江铃汽车股份有限公司 | 一种基于Excel VBA的ECU标定数据库的建立方法 |
CN115115787A (zh) * | 2022-07-22 | 2022-09-27 | 重庆筑信云智建筑科技有限公司 | 一种基于DirectVR的二维图纸转3D模型方法 |
KR20220154888A (ko) * | 2021-05-14 | 2022-11-22 | 주식회사 이안 | 설계 변경점 관리 방법 |
KR102507637B1 (ko) * | 2022-03-28 | 2023-03-07 | 김영홍 | 스프레드시트 데이터 처리 서비스를 제공하는 방법 및 그 전자장치 |
US11663375B2 (en) * | 2019-05-03 | 2023-05-30 | Willow Technology Corporation Pty Ltd | Configuration of a digital twin for a building or other facility via BIM data extraction and asset register mapping |
CN117556519A (zh) * | 2023-12-11 | 2024-02-13 | 深圳大学 | 面向数字孪生的Revit模型数据的转换方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150066692A (ko) | 2013-12-09 | 2015-06-17 | 주식회사 위메이드아이앤씨 | Bim 모델의 변환 장치와 방법 |
JP2016021101A (ja) * | 2014-07-14 | 2016-02-04 | 株式会社日立製作所 | 設計変更管理支援装置、及び方法 |
KR20170042464A (ko) * | 2015-10-08 | 2017-04-19 | 주식회사비아이엠에스 | Bim 라이브러리 속성 일괄 처리 시스템 |
-
2017
- 2017-04-28 KR KR1020170055598A patent/KR101966518B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150066692A (ko) | 2013-12-09 | 2015-06-17 | 주식회사 위메이드아이앤씨 | Bim 모델의 변환 장치와 방법 |
JP2016021101A (ja) * | 2014-07-14 | 2016-02-04 | 株式会社日立製作所 | 設計変更管理支援装置、及び方法 |
KR20170042464A (ko) * | 2015-10-08 | 2017-04-19 | 주식회사비아이엠에스 | Bim 라이브러리 속성 일괄 처리 시스템 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102040772B1 (ko) * | 2018-11-09 | 2019-11-05 | 주식회사 커넥트스토리 | 조달물품등록 관련 컨설팅 프로젝트에 필요한 데이터의 관리 방법 |
CN109858138A (zh) * | 2019-01-28 | 2019-06-07 | 厦门海迈科技股份有限公司 | 基于bim的房间装修构件处理方法、装置、终端及介质 |
CN111736805B (zh) * | 2019-03-25 | 2024-04-05 | 北京沃东天骏信息技术有限公司 | 一种处理Excel表格的方法和装置 |
CN111736805A (zh) * | 2019-03-25 | 2020-10-02 | 北京沃东天骏信息技术有限公司 | 一种处理Excel表格的方法和装置 |
US11663375B2 (en) * | 2019-05-03 | 2023-05-30 | Willow Technology Corporation Pty Ltd | Configuration of a digital twin for a building or other facility via BIM data extraction and asset register mapping |
CN110866304B (zh) * | 2019-12-25 | 2024-02-02 | 中铁建设集团有限公司 | 一种基于钢筋模板一体化直墙构件模型的创建方法 |
CN110866304A (zh) * | 2019-12-25 | 2020-03-06 | 中铁建设集团有限公司 | 一种基于钢筋模板一体化直墙构件模型的创建方法 |
KR20220154888A (ko) * | 2021-05-14 | 2022-11-22 | 주식회사 이안 | 설계 변경점 관리 방법 |
CN114692269A (zh) * | 2022-03-21 | 2022-07-01 | 中建交通建设集团有限公司 | 基于Revit平台的结构建模的视图标准化控制方法和系统 |
KR102507637B1 (ko) * | 2022-03-28 | 2023-03-07 | 김영홍 | 스프레드시트 데이터 처리 서비스를 제공하는 방법 및 그 전자장치 |
CN114722030A (zh) * | 2022-05-19 | 2022-07-08 | 江铃汽车股份有限公司 | 一种基于Excel VBA的ECU标定数据库的建立方法 |
CN115115787A (zh) * | 2022-07-22 | 2022-09-27 | 重庆筑信云智建筑科技有限公司 | 一种基于DirectVR的二维图纸转3D模型方法 |
CN115115787B (zh) * | 2022-07-22 | 2024-04-16 | 重庆筑信云智建筑科技有限公司 | 一种基于DirectVR的二维图纸转3D模型方法 |
CN117556519A (zh) * | 2023-12-11 | 2024-02-13 | 深圳大学 | 面向数字孪生的Revit模型数据的转换方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
KR101966518B1 (ko) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101966518B1 (ko) | 엑셀 기반 건축 설계 파일의 버전 제어 방법 | |
KR101885089B1 (ko) | 건축 bim 설계 파일의 엑셀 파일 전환 방법 | |
US9361069B2 (en) | Systems and methods for defining a simulated interactive web page | |
US7269580B2 (en) | Application integration system and method using intelligent agents for integrating information access over extended networks | |
US7496890B2 (en) | Generation of configuration instructions using an abstraction technique | |
CN102667696B (zh) | 用于用户界面中的对象标识的系统与方法 | |
CN111886579A (zh) | 用于在集成开发环境内提供即时通信信道的系统和方法 | |
US20130152038A1 (en) | Project management workflows | |
US12099531B2 (en) | Information retrieval | |
US20110098985A1 (en) | System and method for managing information | |
US20080015911A1 (en) | Methods and apparatuses for developing business solutions | |
US8381104B2 (en) | Systems and methods for providing context recognition | |
KR102588597B1 (ko) | Uml 시퀀스 다이어그램의 대체 에디터로서 오퍼레이션 로직 디자이너를 이용하여 프로그램을 설계하는 방법 및 그를 이용한 장치 | |
CN117931646A (zh) | 基于动态控件脚本的网络安全测试资源元模型构建方法及系统 | |
Lewandowski | Learnings from My Migration to EG 7.1 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |