Message 1 of 12

Not applicable
09-26-2017
03:54 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi,
The following code works doesn't works for walls but not for pipes and ducts:
public Dictionary<Reference, XYZ> GetIntersectPoints( Document doc, XYZ ff,XYZ ff1) { // Find a 3D view to use for the // ReferenceIntersector constructor. FilteredElementCollector collector = new FilteredElementCollector(doc); Func<View3D, bool> isNotTemplate = v3 => !(v3.IsTemplate); View3D view3D = collector .OfClass(typeof(View3D)) .Cast<View3D>() .First<View3D>(isNotTemplate); // Use location point as start point for intersector. XYZ startPoint = ff; XYZ endPoint = ff1; // Shoot intersector along element. XYZ rayDirection = endPoint.Subtract( startPoint).Normalize(); List<BuiltInCategory> builtInCats = new List<BuiltInCategory>(); builtInCats.Add(BuiltInCategory.OST_Walls); builtInCats.Add(BuiltInCategory.OST_PipeCurves); builtInCats.Add(BuiltInCategory.OST_DuctSystem); ElementClassFilter filter = new ElementClassFilter(typeof(PipeSegment)); ElementMulticategoryFilter intersectFilter = new ElementMulticategoryFilter(builtInCats); ReferenceIntersector refIntersector = new ReferenceIntersector(intersectFilter, FindReferenceTarget.Element, view3D); //ReferenceIntersector refIntersector = new ReferenceIntersector(view3D); //refIntersector.TargetType = FindReferenceTarget.Face; //ReferenceIntersector refIntersector = new ReferenceIntersector(filter, FindReferenceTarget.Element, doc.ActiveView); refIntersector.FindReferencesInRevitLinks = true; IList<ReferenceWithContext> referencesWithContext = refIntersector.Find(startPoint, rayDirection); IList<XYZ> intersectPoints = new List<XYZ>(); IList<Reference> intersectRefs = new List<Reference>(); Dictionary<Reference, XYZ> dictProvisionForVoidRefs = new Dictionary<Reference, XYZ>(); foreach (ReferenceWithContext r in referencesWithContext) { TaskDialog.Show("iipl", doc.GetElement(r.GetReference().ElementId).Name); dictProvisionForVoidRefs.Add(r.GetReference(), r.GetReference().GlobalPoint); } return dictProvisionForVoidRefs; }
Thanks & Regards
Sanjay Pandey
Solved! Go to Solution.