public static Option <Func <T> > GetSingleObject <T>(this SelectionData selectionData, IModelDoc2 doc)
 {
     return(from o in GetSingleObject(selectionData, doc)
            select Prelude.fun(() => o().DirectCast <T>()));
 }
 /// <summary>
 /// Gets an evaluator for the selected object. We return Func because if you return the solidworks
 /// object itself and store it you get burned by solidworks rebuilds when the object is invalidated.
 /// Only evaluate the function when you actually need the solidworks object. If the return value
 /// is None then it means that there is nothing selected.
 /// </summary>
 /// <param name="selectionData"></param>
 /// <param name="doc"></param>
 /// <returns></returns>
 public static Option <Func <object> > GetSingleObject(this SelectionData selectionData, IModelDoc2 doc) =>
 selectionData.IsEmpty
         ? Prelude.None
         : Prelude.Some(Prelude.fun(() => selectionData.GetObjects(doc).First()));
 public static IEnumerable <T> GetObjects <T>(this SelectionData selectionData, IModelDoc2 doc)
 {
     return(from o in selectionData.GetObjects(doc)
            select o.DirectCast <T>());
 }
 public static IEnumerable <object> GetObjects(this SelectionData selectionData, IModelDoc2 doc)
 {
     return(selectionData.ObjectIds
            .Select(objectId => doc.GetObjectFromPersistReference(objectId.Data)));
 }
Example #5
0
 public static IDisposable AddSelection(this IModelDoc2 doc, SelectionData selection)
 {
     return(doc.AddSelections(new[] { selection }));
 }
Example #6
0
 public static void ClearSelection(this IModelDoc2 doc, SelectionData selection)
 {
     doc.ClearSelections(new[] { selection });
 }
Example #7
0
 private bool Equals(SelectionData other)
 {
     return(Equals(ObjectIds, other.ObjectIds) && Mark == other.Mark);
 }
 public static SelectionData WithObjectIds(this SelectionData selectionData, IEnumerable <SelectionData.ObjectId> objectIds)
 {
     return(new SelectionData(objectIds, selectionData.Mark));
 }