C# .net 通过NamedBoundaries如何创建SavedView

C# .net  通过NamedBoundaries如何创建SavedView    

Parents Reply
  • 我用C++写了如下测试代码是可以的。你先仿照此C++代码用C#实现一下看。

    void createSavedViewFromNamedBoundary(WCharCP)
    {
    	NamedBoundaryPtr namedBdry = NamedBoundary::FindByName(WString(L"FooNamedBdary"), NULL, *ACTIVEMODEL);
    	if (!namedBdry.IsValid())
    	{
    		mdlDialog_dmsgsPrint(L"NamedBoundary::FindByName FAILED");
    		return;
    	}
    
    	DgnFileP dgnFile = ISessionMgr::GetActiveDgnFile();
    	NamedViewPtr namedView = nullptr;
    	if (NamedViewStatus::Success != NamedView::Create(namedView, *dgnFile, L"MyNamedView"))
    	{
    		mdlDialog_dmsgsPrint(L"NamedView::Create FAILED");
    		return;
    	}
    	ViewGroupCollectionCR   viewGrpCol = dgnFile->GetViewGroups();
    	ViewGroupCP             activeViewGrp = viewGrpCol.GetActiveCP();
    	ViewInfoCR              viewInfo = activeViewGrp->GetViewInfo(tcb->lstvw);
    	ViewPortInfoCR          viewPortInfo = activeViewGrp->GetViewPortInfo(tcb->lstvw);
    
    	namedView->SetClipElement(namedBdry->PeekGraphicalElement());
    	namedView->SetViewInfo(viewInfo);
    	namedView->SetViewPortInfo(viewPortInfo);
    	namedView->SynchViewBoundaryWithClipVolume(ViewBoundarySynchOptions());
    	namedView->WriteToFile();
    }
    



    Answer Verified By: F T 

Children
No Data