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