RVM 생성방법
Pml Example 7
1. 기본구조
EXPORT FILE 로 시작하여 추출할 것들을 지정 후 EXPORT FINISH 단계에서 설정한대로 추출됩니다.
EXPORT File /D:test.rvm
EXPORT /100-B-1
EXPORT /100-B-2
EXPORT CE
EXPORT Finish2. OPTION
모든 OPTION은 EXPORT FILE 과 EXPORT FINISH 사이에 들어갑니다.
1. EXPORT /ELEMENT
EXPORT /100-B-1
EXPORT /100-B-2 COLOUR 7
EXPORT CEEXPORT /ELEMENT 의 형태로 RVM 추출하고 싶은 ELEMENT들을 선택한다
EXPORT ELEMENT COLURT 색상 숫자 로 추출 시 색상을 지정하여 추출할 수 도 있다
2. EXPORT EXCLUDE /ELEMENT
EXPORT EXCLUDE /100-B-2-A
EXPORT EXCLUDE /100-B-2-B
EXPORT EXCLUDE /ZONE-PIPING-AREA01RVM 추출시 제외하고 싶은 ELEMENT 들을 선택합니다 예를들어 EXPROT /SITE 를 하였으나 하위 일부 ZONE을 EXCLUDE 하고싶을때 사용하시면 됩니다.
3. EXPORT AUTOCOLOUR
EXPORT AutoColour reset
EXPORT AutoColour on
EXPORT AUTOCOLOUR ALL PIPE WITH MATCHWILD(NAME OF SITE, |*AREA*|) COLOUR 328 TRANSLUCENCY 90EXPORT AutoColour on
옵션 실행시 AutoColour이 사용이 가능해집니다.
EXPORT AutoColour reset
reset 사용시 기존에 적용했던 모든 Autocolour 옵션이 초기화됩니다.
Autocolour 사용 시 매번 추출할때마다 색상 적용 필요 없이
아래 코드처럼 원하는 조건에 맞는 item들에 색상 적용이 가능합니다.
EXPORT AUTOCOLOUR ALL PIPE WITH MATCHWILD(NAME OF SITE, |AREA|) COLOUR 328 TRANSLUCENCY 90
COLOUR 은 색상적용이고
TRANSLUCENCY 는 투명도 적용입니다
*주의사항 1
EXPORT File /D:test.rvm
EXPORT AutoColour reset
EXPORT AutoColour on
EXPORT /100-B-1
EXPORT AUTOCOLOUR ALL PIPE WITH MATCHWILD(NAME OF SITE, |*AREA*|) COLOUR 7
EXPORT AUTOCOLOUR ALL BRAN WITH MATCHWILD(NAME OF SITE, |*AREA*|) COLOUR 2
EXPORT Finish만약 아래처럼 Pipe 하위에 Bran 이 있기에 조건이 겹칠 수도 있습니다. 그럴 경우 작은 단위 우선이기 때문에 Bran 에 적용된 색상이 우선적으로 나옵니다.
*주의사항 2
EXPORT File /D:test.rvm
EXPORT AutoColour reset
EXPORT AutoColour on
EXPORT /100-B-1
EXPORT AUTOCOLOUR ALL PIPE WITH MATCHWILD(NAME OF SITE, |*AREA*|) COLOUR 2
EXPORT AUTOCOLOUR ALL PIPE WITH MATCHWILD(NAME OF SITE, |*AREA*|) COLOUR 7
EXPORT Finish만약 같은 TYPE일 경우 위에있는 색상 우선으로 적용됩니다 위 같은경우 COLOUR 2로 적용됩니다.
*주의사항 3
EXPORT AUTOCOLOUR /100-B-1 COLOUR 2
이런식으로 직접 AutoColour Element 지정이 가능합니다
이럴 경우 해당 type으로 지정한걸로 간주됩니다 Zone이면 Zone Pipe면 Pipe
우선순위 확인할때.. 헷갈릴 수도 있을까봐 적습니다.
4. REPRESENTATION
Representation 즉 객채의 3D 옵션 설정입니다.
REPR INSU OFF $* Insulation On Off
REPR OBST ON $* Obstruction On Off
REPR DARCTOL 1 아크(곡선) 허용 오차 1mm 설정, 값이 높을수록 단순화되며, 낮을수록 곡선이 세밀하게 표현됨(?)
REPR level 6 $* level을 6으로 설정
REPR level pipe 6 $* Pipe level을 6으로 설정
REPR tube on $* Tube Hierarchy에 표현
EXPORT Holes On hole 도 보여줍니다.
3. 추가 TIP (메모리 부족)
review 추출하다보면 커지면 커질수록 메모리 부족으로 고생하게 됩니다 불필요한 코드 줄이는것 제외하고 조금더 속도 빠르게 하는방법 고민해 보았습니다.
1. Site 단위 추출 (1단계)
SITE 단위로 EXPORT /SITE 한다고 해서 리뷰 생성 속도가 빨라지지 않습니다. SITE 단위로 파일을 떨궈야 빨라지는겁니다. DO 문을 설정하여 SITE 단위로 파일을 생성하고 Navis로 병합하는게 좋습니다.
2. Site List Collect하지 않고 미리 뽑아놓고 읽어오기( 2단계 )
아무리 SITE 단위로 추출한다고 하고 해도 COLLECT 에 조건을 준다고 해도 DB가 크면 COLLECT도 생각보다 시간이 걸립니다. 조금이라도 줄이기 위해서 TEXT파일안에 SITE LIST 넣어놓고 읽어오는 방식으로 진행합시다.
뿐만아니라 export exclude 데이터든 최대한 collect를 줄이는것도 좋은 방법입니다.
3. 수정된 것만 뽑기
!beforedate 수치만큼 이전날짜 Date 값을 가져오는 코드입니다.
!lastModifiedDate 에는 CE된 ITEM의 마지막 수정일자가
!dayBefore 에는 오늘기준 원하는만큼 전날 이 들어가있습니다
2일전 데이터 부터 추출하고싶다 하면 !dayBefore를 2로 설정하면 되는거죠
이제 마지막 수정일(EX: 25.1.5) 보다 설정한 날짜(25.1.3)가 작다면 추출하는 코드입니다.
IF !lastModifiedDate.LT(!dayBefore) THEN
!lastModifiedDate = object datetime(lastm hierarchy)
!beforedate = 2
!today = object datetime()
!year = !today.year()
!month = !today.month()
!day = !today.date() - !beforedate
IF !day.lt(1) THEN
!month = !month - 1
IF !month inset(1, 3, 5, 7, 8, 10, 12) then
!day = !day + 31
ELSEIF !month inset(4, 6, 9, 11) then
!day = !day + 30
ELSE
!day = !day + 29
!dayBefore = object datetime(!year,!month,!day)
HANDLE ANY
!day = !day - 1
ENDHANDLE
ENDIF
ENDIF
!dayBefore = object datetime(!year,!month,!day)
IF !lastModifiedDate.LT(!dayBefore) THEN
$* 이부분에 Review 추출코드 삽입
ENDIF수정된걸 뽑는것 까지는 좋은데 Lastm도 생각보다 시간이 오래 걸릴 수도 있습니다 Lastm 리스트만 미리 추출해 놓고 해당 List 기반으로 rvm 생성하는것 도 괜찮습니다. 사실 rvm은 이정도까지 심하게 터지지는 않습니다 att가 문제지...