5.2.1 创建视图

每个视图相当于一个窗口,对于视图的创建,平台提供的接口在BIMBaseNet.dll的BPViewManager类中,接口为createView,调用此接口,会返回创建视图的句柄。此时只是创建了一个视图,如果想要在视图中绘制对象,需要同时创建相应的model,数据装在model中,然后调用BPViewManager中的displayModelOnViewPort,把model中存的数据显示出来,完成了构件的显示过程。在操作数据的过程中,视图显示不会立即更新,需要调用BPViewManager中的forceHealImmediate对视图进行刷新。

[BPExternalCommandAttribute (name = "createView")]
public class BPCreateviewCommand : IBPFunctionCommand
{
    public override void OnExcute(BPCommandContext context)
    {
    //获取当前激活的工程
    BPDocument doc = BPApplication.singleton () .activeDocument;
    //在当前激活的工程创建view
    IntPtr viewPtr = doc.viewManager. createView() ;
    //获取创建view 的 number
    int nNum = doc.viewManager.getViewNumber(viewPtr);
    //创建新的model
    BPModelId modelId = new BPModelId();
    doc.modelManager.createNewModel (model Id,"cshapModel", BPModelType. enPhysical);
    //创建的新 model在新 view 中 显示
    doc.viewManager.displayModelOnViewPort(modelId,nNum);

    base.onExcute(context) ;
    }
}

代码5-1 创建视图

示例5-1展示了创建视图的整个过程,包括把需要的model显示到创建的视图中。

5.2.2 删除视图

平台提供了多种方法获取视图,包括选中的视图、当前激活的视图、根据编号获取到的视图等等。例如BPViewManagergetActiveIndexgetView等等,可以拿到view相应的句柄,然后对视图进行删除操作。