模型操作
模型创建
当我们需要创建模型时,需要使用CreateNewModel()来对模型进行创建,在此过程中需要输入新建模型名称,模型类别以及确定模型类别时2D还是3D,完成后即生成制定模型
public static void CreateDgnModel(string unparsed)
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的dgn文件信息
dgnFile.CreateNewModel(out DgnModelStatus status,"test",DgnModelType.Normal,true,null);
/*
* 声明新模型
* error:(输出)若声明失败,则返回error
* name:新声明模型的名称
* type:声明模型类型(Normal,Sheet,Drawing,DgnComponentDefinition)
* is3D:声明模型是三维还是二维模型
* seedModel:声明模型所使用的种子文件
*/
MessageBox.Show("Create status:\n "+status.ToString());//将声明模型结果以文本的形式输出到对话框中
}
删除模型
当我们需要删除模型时,需要使用DeleteModel()删除模型,执行删除模型的流程为首先根据模型名称找到模型ID,然后通过模型ID获取对应的模型空间,最后执行模型删除 操作。
public static void DeleteDgnModel(string unparsed)
{
CreateDgnModel(unparsed);//调用上方声明模型的方法
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件信息
ModelId id= dgnFile.FindModelIdByName("test");//获得名为“test”的模型ID
DgnModel dgnModel = dgnFile.LoadRootModelById(out StatusInt status,id);//使用ID读取获得对应的模型空间
if(status==StatusInt.Success)//判断是否获得名为“test”的模型
{
StatusInt statusInt= dgnFile.DeleteModel(dgnModel);//从文件中删除该模型
if(statusInt== StatusInt.Success)//判断是否删除成功
{
MessageBox.Show("Delete status:\nSuccess");//对话框输出删除成功
}
}
}
private static DgnModel CreateDgnModelTest(string modelName)
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的dgn文件信息
ModelId id = dgnFile.FindModelIdByName(modelName);//检索文件中是否存在名为modelname引用字符串的模型
if(id!= ModelId.InvalidModel)//判断模型ID是否有效
{
DgnModel existModel = dgnFile.LoadRootModelById(out StatusInt status, id