public static Curve RequestModelCurveSelection(UIDocument doc, string message, dynElementSettings settings) { try { ModelCurve c = null; Curve cv = null; Selection choices = doc.Selection; choices.Elements.Clear(); //MessageBox.Show(message); dynElementSettings.SharedInstance.Bench.Log(message); Reference curveRef = doc.Selection.PickObject(ObjectType.Element); //c = curveRef.Element as ModelCurve; c = dynElementSettings.SharedInstance.Revit.ActiveUIDocument.Document.GetElement(curveRef) as ModelCurve; if (c != null) { cv = c.GeometryCurve; } return cv; } catch (Exception ex) { settings.Bench.Log(ex.Message); return null; } }
public static Face RequestFaceSelection(UIDocument doc, string message, dynElementSettings settings) { try { Face f = null; Selection choices = doc.Selection; choices.Elements.Clear(); //MessageBox.Show(message); settings.Bench.Log(message); //create some geometry options so that we computer references Autodesk.Revit.DB.Options opts = new Options(); opts.ComputeReferences = true; opts.DetailLevel = DetailLevels.Medium; opts.IncludeNonVisibleObjects = false; Reference faceRef = doc.Selection.PickObject(ObjectType.Face); if (faceRef != null) { //the suggested new method didn't exist in API? f = faceRef.GeometryObject as Face; GeometryElement geom = faceRef.Element.get_Geometry(opts); foreach (GeometryObject geob in geom.Objects) { Solid faceSolid = geob as Solid; if(faceSolid != null) { foreach(Face testFace in faceSolid.Faces) { if(testFace.Area==f.Area) { f=testFace; } } } } } return f; } catch (Exception ex) { settings.Bench.Log(ex.Message); return null; } }
public static FamilySymbol RequestFamilyInstanceSelection(UIDocument doc, string message, dynElementSettings settings, ref FamilyInstance fi) { try { FamilySymbol fs = null; Selection choices = doc.Selection; choices.Elements.Clear(); //MessageBox.Show(message); settings.Bench.Log(message); Reference fsRef = doc.Selection.PickObject(ObjectType.Element); if (fsRef != null) { fi = fsRef.Element as FamilyInstance; if (fi != null) { return fi.Symbol; } else return null; } else return null; } catch (Exception ex) { settings.Bench.Log(ex.Message); return null; } }
public static Element RequestAnalysisResultInstanceSelection(UIDocument doc, string message, dynElementSettings settings) { try { View view = doc.ActiveView as View; SpatialFieldManager sfm = SpatialFieldManager.GetSpatialFieldManager(view); Element AnalysisResult; if (sfm != null) { sfm.GetRegisteredResults(); Selection choices = doc.Selection; choices.Elements.Clear(); //MessageBox.Show(message); settings.Bench.Log(message); Reference fsRef = doc.Selection.PickObject(ObjectType.Element); if (fsRef != null) { AnalysisResult = doc.Document.get_Element(fsRef.ElementId) as Element; if (AnalysisResult != null) { return AnalysisResult; } else return null; } else return null; } else return null; } catch (Exception ex) { settings.Bench.Log(ex.Message); return null; } }