모델 보이기/숨기기, 선택/해제
모델 보이기/숨기기, 선택/해제
모델 보이기/숨기기
화면상에 렌더링된 모델을 보이기/숨기기 처리할 수 있습니다.
아래 예제는 로딩된 모델에서 PIPE 모델만 보이도록 처리하는 예제입니다.
// 모델 열린 상태 확인
if (Connector.IsOpenDocument() == false) return;
// 화면 갱신 차단
Connector.EnableRender(false);
//===========================================
// 모두 숨기기
//===========================================
/*
// 모두 숨기기
Connector.SetObjectVisibleAction(PluginObjectVisibleAction.HIDE_ALL);
// 선택되지 않은 모델 숨기기
Connector.SetObjectVisibleAction(PluginObjectVisibleAction.HIDE_DESELECTION);
// 선택된 모델 숨기기
Connector.SetObjectVisibleAction(PluginObjectVisibleAction.HIDE_SELECTION);
// 전체 보이기
Connector.SetObjectVisibleAction(PluginObjectVisibleAction.SHOW_ALL);*/
Connector.ShowAll(false); /* TRUE(전체보이기), FALSE(전체숨기기) */
// PIPE 모델 검색
List<NodeVO> items = Connector.FindObject(
"PIPE" /* 검색어 */
, true /* 대소문자 구분 : True(구분하지않음), False(구분) */
, true /* True(어셈블리노드만 검색), False(전체노드 검색) */
, false /* True(보이는 모델만), False(전체 모델) */
, false /* True(속성포함 검색), False(속성미포함 검색) */
, false /* True(선택된 모델 이하 검색), False(전체노드 검색) */
, false /* True(검색어 일치), False(검색어 포함 - 부분 일치) */
);
// 개별 모델 보이기/숨기기
foreach (NodeVO item in items)
{
// 보이기/숨기기
Connector.ShowObject(
item.Index /* NODE INDEX */
, true /* TRUE(보이기), FALSE(숨기기) */
);
}
// 전체 모델 보이기/숨기기
/*
List<int> INDEX = new List<int>();
foreach (NodeVO item in items)
{
INDEX.Add(item.Index);
}
Connector.ShowObjects(INDEX.ToArray(), true);*/
// 화면 갱신 차단 해제
Connector.EnableRender(true);
모델 선택/해제
화면에 보이는 모델을 조작하기 위해 혹은 대상 모델의 속성 정보 조회를 위해 선택을 하게 되며, API를 이용하여 수행할 수 있습니다.
아래 예제는 로딩된 모델에서 PIPE 모델을 선택하는 예제입니다.
// 모델 열린 상태 확인
if (Connector.IsOpenDocument() == false) return;
// 화면 갱신 차단
Connector.EnableRender(false);
// 이전에 선택상태의 모델을 모두 해제
Connector.DeselectAll();
// 이외 선택 동작
/*
// 전체 모델 선택
Connector.SetObjectSelectionAction(PluginObjectSelectionActions.SELECTION_ALL);
// 선택 상태 반전
Connector.SetObjectSelectionAction(PluginObjectSelectionActions.REVERSE_SELECTION);
// 선택 취소
Connector.SetObjectSelectionAction(PluginObjectSelectionActions.CANCEL_SELECTION);*/
// PIPE 모델 검색
List<NodeVO> items = Connector.FindObject(
"PIPE" /* 검색어 */
, true /* 대소문자 구분 : True(구분하지않음), False(구분) */
, true /* True(어셈블리노드만 검색), False(전체노드 검색) */
, false /* True(보이는 모델만), False(전체 모델) */
, false /* True(속성포함 검색), False(속성미포함 검색) */
, false /* True(선택된 모델 이하 검색), False(전체노드 검색) */
, false /* True(검색어 일치), False(검색어 포함 - 부분 일치) */
);
// 개별 모델 선택
foreach (NodeVO item in items)
{
// 선택상태 확인
if (Connector.IsSelected(item.Index) == true) continue;
// 선택
Connector.SetSelected(
item.Index /* NODE INDEX */
, true /* TRUE(선택), FALSE(선택해제) */
, true /* TRUE(FOCUS), FALSE */
);
}
// 전체 모델 선택
/*
List<int> INDEX = new List<int>();
foreach (NodeVO item in items)
{
INDEX.Add(item.Index);
}
// 선택
Connector.SetSelectedMulti(
INDEX.ToArray()
, true
, true,
true
);*/
// 화면 갱신 차단 해제
Connector.EnableRender(true);
모델이 선택상태로 변경이 되면, 선택된 모델은 색상이 변경됩니다. 선택된 모델이 표시되는 색상을 변경하고자 하면 SetSelectionColor API를 활용하시기 바랍니다.
관련 메뉴 : 홈 -> 환경설정 -> 선택색상
사용자가 임의로 모델을 선택하지 못하도록 선택 기능을 비활성화할 수 있습니다.
여러 모델이 겹쳐있어 최외곽 모델을 투명하게 처리하고, 내부 모델을 보이게 처리한 경우 투명한 모델은 사용자에 의해 선택이 되지 않도록 설정할 수 있습니다.
SetSkipSelectByTransparentColor
관련 메뉴 : 홈 -> 환경설정 -> 선택가능개체
Last modified: 04 3월 2024