Autodesk Navisworks API
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
Adding a custom Task to Timeliner (or adding model selections to tasks)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi everybody!
I have to write a plugin, which adds some selection to every timeliner task. By selection i mean Autodesk.Navisworks.Api.Timeliner.TimelinerSelecti
So, after user imports an MS Project file as a timeliner datasource, i get the timeliner object, i'm able to iterate through tasks and their children, BUT....
but i cannot write anything to a task or timeliner object - they are all read-only. I read about it in Developers Guide(collections returned by Navisworks are read-only, collections created programmatically are writeabe), i see ReadOnly == true in objects' properties, but i hope there is a solution for this.
So, does anybody know how to WRITE data to timeliner Tasks using .NET API?
This is how i get access to timeliner object:
public class navisTest :AddInPlugin
{ static Document navDoc = Autodesk.Navisworks.Api.Application.ActiveDocument ;
static Autodesk.Navisworks.Api.DocumentParts.IDocumentTim eliner Itimeliner = navDoc.Timeliner;
static DocumentTimeliner timeliner = (DocumentTimeliner)Itimeliner;
TimelinerTask tsk = new TimelinerTask();
foreach (TimelinerTask task in timeliner.Tasks)
{
foreach (TimelinerTask childTask in task.Children)
{
if (!childTask.Selection.IsClear)
{
childTask.Selection.CopyFrom(newCollection); //some ModelItemCollection
//or CopyFrom(navDoc.CurrentSelection.SelectedItems.Des cendantsAndSelf);
//anyway it crashes here - "object is readonly"
}
}
}
}
Also, i tried to create my own Task object and add it to timeliner - the same thing, it crashes:
TimelinerTask tsk = new TimelinerTask(); tsk.Selection.CopyFrom(navDoc.CurrentSelection.SelectedItems.DescendantsAndSelf); timeliner.Tasks.Add(tsk); //crashes here.
Thanks in advance,
Alexander. ![]()
Solved! Go to Solution.
Re: Adding a custom Task to Timeliner (or adding model selections to tasks)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Hi,
The task cannot be manipulated directly. Please refer to the following code:
Document navDoc = Autodesk.Navisworks.Api.Application.ActiveDocument; Autodesk.Navisworks.Api.DocumentParts.IDocumentTim eliner Itimeliner = navDoc.Timeliner; DocumentTimeliner timeliner = (DocumentTimeliner)Itimeliner; GroupItem root_copy = timeliner.TasksRoot.CreateCopy() as GroupItem; TimelinerTask tsk = new TimelinerTask(); try { tsk.Selection.CopyFrom(navDoc.CurrentSelection.Sel ectedItems.DescendantsAndSelf); root_copy.Children.Add(tsk); //crashes here. // replace the timeliner tasks timeliner.TasksCopyFrom(root_copy.Children); } catch (Exception ex) { }
Xiaodong Liang
Developer Technical Services
Autodesk Developer Network
Re: Adding a custom Task to Timeliner (or adding model selections to tasks)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Thanks a lot!
I've already found this solution yesterdeay, and you verified my guess!
Alexander.
