모델 열기, 추가
모델 열기(Open) 및 모델 추가(Add) API 예제입니다.
- 모델 열기(Open) : 기존에 조회 중인 3D 모델을 닫고 새로운 모델을 조회
- 모델 추가(Add) : 기존에 조회 중인 화면에 3D 모델을 추가하여 조회
모든 모델 열기 / 추가 API는
OnInitializedAppEvent이벤트 이후에 호출해야 합니다.
로컬 및 UNC 경로 열기 / 추가
로컬 VIZ / VIZXML 파일 열기
// 모델 열기 : VIZ
Connector.OpenDocument("C:\\MODEL\\BLOCK.viz");
// 모델 열기 : VIZXML
Connector.OpenDocument("C:\\MODEL\\PROJECT.vizxml");
UNC 경로(NAS / 공유 폴더) 모델 열기
Connector.OpenDocument("\\\\Shared Folder\\MODEL\\BLOCK.viz");
여러 개의 모델 파일 추가
// 추가할 모델 파일
string[] models = new string[]
{
"C:\\MODEL\\HULL.viz",
"C:\\MODEL\\EQUIP.viz",
"C:\\MODEL\\PIPE.viz",
"C:\\MODEL\\STRU.viz"
};
// 모델 추가
Connector.AddDocuments(models);
Stream 데이터 열기 / 추가
Stream 방식은 VIZ 파일 형식만 지원합니다.
로컬 VIZ 파일을 Stream 형식으로 열기
// 모델 파일 Stream 데이터
byte[] stream = System.IO.File.ReadAllBytes("C:\\MODEL\\BLOCK.viz");
// 모델 열기
Connector.OpenStream("BLOCK", stream);
여러 개의 로컬 모델을 Stream 형식으로 추가
List<string> localModels = new List<string>
{
"C:\\MODEL\\HULL.viz",
"C:\\MODEL\\EQUIP.viz",
"C:\\MODEL\\PIPE.viz",
"C:\\MODEL\\STRU.viz"
};
List<StreamDataVO> streams = new List<StreamDataVO>();
foreach (string item in localModels)
{
StreamDataVO stream = new StreamDataVO();
stream.Data = System.IO.File.ReadAllBytes(item);
stream.ModelName = System.IO.Path.GetFileNameWithoutExtension(item);
streams.Add(stream);
}
Connector.ImportStream(streams);
원격지 모델을 Stream 형식으로 추가
List<string> remoteModels = new List<string>
{
"http://www.softhills.net/MODEL/HULL.viz",
"http://www.softhills.net/MODEL/EQUIP.viz",
"http://www.softhills.net/MODEL/PIPE.viz",
"http://www.softhills.net/MODEL/STRU.viz"
};
List<StreamDataVO> streams = new List<StreamDataVO>();
foreach (string item in remoteModels)
{
StreamDataVO stream = new StreamDataVO();
stream.Data = SHConnector.Utility.Net.NetworkClient.DownloadData(item);
stream.ModelName = SHConnector.Utility.Net.NetworkClient.GetModelName(item);
streams.Add(stream);
}
Connector.ImportStream(streams);
URI 리소스 열기 / 추가
- OpenUri : VIZ / VIZXML 지원
- ImportUri : VIZ 파일만 지원
원격 리소스 VIZ / VIZXML 열기
// VIZ
string uriViz = "http://www.softhills.net/VIZ/MODEL.viz";
Connector.OpenUri(uriViz, URI_FILE_TYPES.VIZ);
// VIZXML
string uriVizXml = "http://www.softhills.net/VIZ/PROJECT.vizxml";
Connector.OpenUri(uriVizXml, URI_FILE_TYPES.VIZXML);
외부 시스템에서 제공하는 URI 열기
// VIZ
string uriViz = "http://www.softhills.net/?PROJECT=1&FILEID=100";
Connector.OpenUri(uriViz, URI_FILE_TYPES.VIZ);
// VIZXML
string uriVizXml = "http://www.softhills.net/?PROJECT=1";
Connector.OpenUri(uriVizXml, URI_FILE_TYPES.VIZXML);
원격 리소스 VIZ 파일 추가 (List)
List<string> uriList = new List<string>
{
"http://www.softhills.net/VIZ/EQUP.viz",
"http://www.softhills.net/VIZ/HULL.viz",
"http://www.softhills.net/VIZ/PIPE.viz",
"http://www.softhills.net/VIZ/STRU.viz"
};
Connector.ImportUri(uriList);
원격 리소스 VIZ 파일 추가 (Dictionary)
Dictionary<string, string> uriMap = new Dictionary<string, string>
{
{ "EQUP", "http://www.softhills.net/?PROJECT=1&FILEID=101" },
{ "HULL", "http://www.softhills.net/?PROJECT=1&FILEID=102" },
{ "PIPE", "http://www.softhills.net/?PROJECT=1&FILEID=103" },
{ "STRU", "http://www.softhills.net/?PROJECT=1&FILEID=104" }
};
Connector.ImportUri(uriMap);