Skip to content

Commit

Permalink
Update SaveViewPort.cs
Browse files Browse the repository at this point in the history
  • Loading branch information
chuongmep committed Apr 23, 2022
1 parent dfe417f commit 3cc4f71
Showing 1 changed file with 138 additions and 11 deletions.
149 changes: 138 additions & 11 deletions Test/SaveViewPort.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using System.Diagnostics;
using System;
using System.Diagnostics;
using System.Linq;
using System.Windows;
using Autodesk.Navisworks.Api;
using Autodesk.Navisworks.Api.DocumentParts;
Expand Down Expand Up @@ -54,7 +56,7 @@ void savedVPs()

{
MessageBox.Show("Display Name" +
oThisSVP.DisplayName);
oThisSVP.DisplayName);

Viewpoint oVP =
oThisSVP.Viewpoint;
Expand Down Expand Up @@ -94,6 +96,7 @@ void savedVPs()
oDoc.SavedViewpoints.CurrentSavedViewpoint =
oSVP_to_SetCurrent;
}

void recurse(SavedItem oFolder)

{
Expand All @@ -116,24 +119,23 @@ void recurse(SavedItem oFolder)
}
}
}


void createSavedVP_Folder()

{

Document oDoc = Autodesk.Navisworks.Api.Application.ActiveDocument;

// Create a saved viewpoint with current viewpoint

SavedViewpoint oNewViewPt1 = new SavedViewpoint(oDoc.CurrentViewpoint.ToViewpoint());

oNewViewPt1.DisplayName = "MySavedView1";

// Create a viewpoint for the

// second saved viewpoint

Viewpoint oNewVP = new Viewpoint();

// Based on the current viewpoint,
Expand All @@ -153,26 +155,23 @@ void createSavedVP_Folder()
SavedViewpoint oNewViewPt2 = new SavedViewpoint(oNewVP);

oNewViewPt2.DisplayName =

"MySavedView2";

// Add the saved viewpoints to the collection

oDoc.SavedViewpoints.AddCopy(oNewViewPt1);

oDoc.SavedViewpoints.AddCopy(oNewViewPt2);

FolderItem oNewViewPtFolder1 = new FolderItem();

oNewViewPtFolder1.DisplayName = "Group1";



// put the saved viewpoint1 to group1

oNewViewPtFolder1.Children.Add(oNewViewPt1);



// add the group

Expand All @@ -181,7 +180,135 @@ void createSavedVP_Folder()
// add saved viewpoint

oDoc.SavedViewpoints.AddCopy(oNewViewPt2);
}


//add new saved viewpoints to the existing folder

private void addNewSavedVPtoOldFolder()

{
// assume the document has a saved viewpoint folder

// named "myFolder"


// get document

Document oDoc =
Autodesk.Navisworks.Api.Application.ActiveDocument;


// get the saved viewpoints

DocumentSavedViewpoints oSavePts =
oDoc.SavedViewpoints;


GroupItem oFolder = null;

foreach (SavedItem oEachItem in oSavePts.Value)

{
if (oEachItem.DisplayName == "MyNewFolder")

{
oFolder = oEachItem as GroupItem;

break;
}
}


if (oFolder != null)

{
try

{
// Create a saved viewpoint with current viewpoint

SavedViewpoint oNewViewPt1 =
new SavedViewpoint(
oDoc.CurrentViewpoint.ToViewpoint());

oNewViewPt1.DisplayName = "MySavedView1";


// add the new saved viewpoint to the collection

oSavePts.AddCopy(oNewViewPt1);


// move the last saved viewpoint to the folder

oSavePts.Move(
oSavePts.RootItem, oSavePts.Value.Count - 1,
oFolder, oFolder.Children.Count);
}

catch (Exception ex)

{
MessageBox.Show(ex.ToString());
}
}
}


//move two saved viewpoints to new folder

private void moveSavedVPtoNewFolder()

{
// assume the document has at least saved viewpoints

// get document

Document oDoc = Autodesk.Navisworks.Api.Application.ActiveDocument;
// get the saved viewpoints

DocumentSavedViewpoints oSavePts = oDoc.SavedViewpoints;


if (oSavePts.RootItem.Children.Count > 2)

{
// new a folder

FolderItem oFolder = new FolderItem();

oFolder.DisplayName = "MyNewFolder";


// add the folder to saved viewpoint collection

oDoc.SavedViewpoints.AddCopy(oFolder);

try

{
// move the first saved viewpoint to the folder

oSavePts.Move(oSavePts.RootItem, 0, (GroupItem) oDoc.SavedViewpoints.Value.Last<SavedItem>(), 0);


// move the second saved viewpoint to the folder

oSavePts.Move(oSavePts.RootItem, 1, (GroupItem) oDoc.SavedViewpoints.Value.Last<SavedItem>(), 1);
}

catch (Exception ex)

{
MessageBox.Show(ex.ToString());
}
}

else

{
MessageBox.Show("make sure the sets has at least two items");
}
}
}

0 comments on commit 3cc4f71

Please sign in to comment.