<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic ReferenceIntersector working weird in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7409123#M55841</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The following code works doesn't works for walls but not for pipes and ducts:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;    public Dictionary&amp;lt;Reference, XYZ&amp;gt; GetIntersectPoints(
  Document doc,
  XYZ  ff,XYZ ff1)
        {
            // Find a 3D view to use for the 
            // ReferenceIntersector constructor.

            FilteredElementCollector collector
              = new FilteredElementCollector(doc);

            Func&amp;lt;View3D, bool&amp;gt; isNotTemplate = v3
              =&amp;gt; !(v3.IsTemplate);

            View3D view3D = collector
              .OfClass(typeof(View3D))
              .Cast&amp;lt;View3D&amp;gt;()
              .First&amp;lt;View3D&amp;gt;(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&amp;lt;BuiltInCategory&amp;gt; builtInCats
              = new List&amp;lt;BuiltInCategory&amp;gt;();

           
            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&amp;lt;ReferenceWithContext&amp;gt; referencesWithContext
              = refIntersector.Find(startPoint,
                rayDirection);

            IList&amp;lt;XYZ&amp;gt; intersectPoints = new List&amp;lt;XYZ&amp;gt;();

            IList&amp;lt;Reference&amp;gt; intersectRefs
              = new List&amp;lt;Reference&amp;gt;();

            Dictionary&amp;lt;Reference, XYZ&amp;gt; dictProvisionForVoidRefs
              = new Dictionary&amp;lt;Reference, XYZ&amp;gt;();

            foreach (ReferenceWithContext r in
              referencesWithContext)
            {
                TaskDialog.Show("iipl", doc.GetElement(r.GetReference().ElementId).Name);
                dictProvisionForVoidRefs.Add(r.GetReference(),
                  r.GetReference().GlobalPoint);
            }
            return dictProvisionForVoidRefs;
        }
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;
&lt;P&gt;Sanjay Pandey&lt;/P&gt;</description>
    <pubDate>Tue, 26 Sep 2017 10:54:28 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2017-09-26T10:54:28Z</dc:date>
    <item>
      <title>ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7409123#M55841</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The following code works doesn't works for walls but not for pipes and ducts:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;    public Dictionary&amp;lt;Reference, XYZ&amp;gt; GetIntersectPoints(
  Document doc,
  XYZ  ff,XYZ ff1)
        {
            // Find a 3D view to use for the 
            // ReferenceIntersector constructor.

            FilteredElementCollector collector
              = new FilteredElementCollector(doc);

            Func&amp;lt;View3D, bool&amp;gt; isNotTemplate = v3
              =&amp;gt; !(v3.IsTemplate);

            View3D view3D = collector
              .OfClass(typeof(View3D))
              .Cast&amp;lt;View3D&amp;gt;()
              .First&amp;lt;View3D&amp;gt;(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&amp;lt;BuiltInCategory&amp;gt; builtInCats
              = new List&amp;lt;BuiltInCategory&amp;gt;();

           
            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&amp;lt;ReferenceWithContext&amp;gt; referencesWithContext
              = refIntersector.Find(startPoint,
                rayDirection);

            IList&amp;lt;XYZ&amp;gt; intersectPoints = new List&amp;lt;XYZ&amp;gt;();

            IList&amp;lt;Reference&amp;gt; intersectRefs
              = new List&amp;lt;Reference&amp;gt;();

            Dictionary&amp;lt;Reference, XYZ&amp;gt; dictProvisionForVoidRefs
              = new Dictionary&amp;lt;Reference, XYZ&amp;gt;();

            foreach (ReferenceWithContext r in
              referencesWithContext)
            {
                TaskDialog.Show("iipl", doc.GetElement(r.GetReference().ElementId).Name);
                dictProvisionForVoidRefs.Add(r.GetReference(),
                  r.GetReference().GlobalPoint);
            }
            return dictProvisionForVoidRefs;
        }
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;
&lt;P&gt;Sanjay Pandey&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2017 10:54:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7409123#M55841</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-09-26T10:54:28Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7409233#M55842</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The first problem could be that the elements, you expect to find with ReferenceIntersector are not visible in the 3D view you've founded in the model, the second problem is just for ducts, you should use&amp;nbsp;BuiltInCategory.OST_DuctCurves instead of BuiltInCategory.OST_DuctSystem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've played with Revit Python shell:&lt;/P&gt;&lt;PRE&gt;pipe = selection[0]

point = pipe.Location.Curve.Evaluate(0.5, True)

direction = XYZ.BasisZ

rayOrigin = point - 5 * direction

filter = ElementCategoryFilter(BuiltInCategory.OST_PipeCurves)

refIntersector = ReferenceIntersector(filter, FindReferenceTarget.Element, doc.ActiveView);

elemRef = refIntersector.FindNearest(rayOrigin, direction)

print elemRef&lt;/PRE&gt;&lt;P&gt;it works as expected&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 26 Sep 2017 11:37:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7409233#M55842</guid>
      <dc:creator>aignatovich</dc:creator>
      <dc:date>2017-09-26T11:37:35Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7411995#M55843</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Tried BuiltInCategory.OST_DuctCurves but in vain.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The elements are surely visible. I have wall , duct and pipes in main file and also in linked revit file,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The code works fine if it intersects wall but not in case of ducts or pipes even if the elements are in main file still no result is retutned.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Result is returned if its a wall&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;
&lt;P&gt;Sanjay Pandey&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 05:43:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7411995#M55843</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-09-27T05:43:53Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412273#M55844</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;may it be that the View3D doesn't show Pipe or Duct Elements?&lt;/P&gt;
&lt;P&gt;According to your code, you take the first one you can get.&lt;/P&gt;
&lt;P&gt;It its DetailLevel is Coarse, may it be that there is no 3D Duct/Pipe geometry to be hit at all?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Revitalizer&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 07:20:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412273#M55844</guid>
      <dc:creator>Revitalizer</dc:creator>
      <dc:date>2017-09-27T07:20:30Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412285#M55845</link>
      <description>&lt;P&gt;Hi again!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You should check:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;a) elements visibility. Are you sure, that elements are visible? According to your code, you just find first 3d View&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;b) view detail level&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I created family to setup ray direction, and again, it works perfect (look at the attached picture):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;targetFamily = selection[0]
transform = targetFamily.GetTotalTransform()

direction = transform.BasisZ

rayOrigin = transform.Origin

filter = ElementCategoryFilter(BuiltInCategory.OST_DuctCurves)

refIntersector = ReferenceIntersector(filter, FindReferenceTarget.Element, doc.ActiveView);

elemRef = refIntersector.FindNearest(rayOrigin, direction)

print elemRef&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But, if view detail level is set to coarse, nothing found.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 07:25:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412285#M55845</guid>
      <dc:creator>aignatovich</dc:creator>
      <dc:date>2017-09-27T07:25:13Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412814#M55846</link>
      <description>&lt;P&gt;Pipe or Duct Elements is clearly visible in 3d view. and details level is Fine too.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I think issue is something else because how come its find the wall if its intersecting&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;
&lt;P&gt;Sanjay Pandey&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 10:52:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412814#M55846</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-09-27T10:52:29Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412836#M55847</link>
      <description>&lt;P&gt;May be something wrong with your ray origin and direction?&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 11:03:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412836#M55847</guid>
      <dc:creator>aignatovich</dc:creator>
      <dc:date>2017-09-27T11:03:15Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412875#M55848</link>
      <description>&lt;P&gt;I think I am getting in right direction.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Did some R&amp;amp;D.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I changed the offset of the&amp;nbsp; pipes and ducts to 0 and now the code works.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In my function&lt;/P&gt;
&lt;PRE&gt;public Dictionary&amp;lt;Reference, XYZ&amp;gt; GetIntersectPoints(
  Document doc,
  XYZ  ff,XYZ ff1)&lt;/PRE&gt;
&lt;P&gt;for XYZ ff and XYZ ff1 I am prompting user to pick point &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;XYZ l1 = uidoc.Selection.PickPoint();&lt;BR /&gt;&amp;nbsp; XYZ l2 = uidoc.Selection.PickPoint();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;and in both the points z values are zero.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;so this is the culprit.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now I need to think how do I get both points which includes Z value also.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;
&lt;P&gt;Sanjay Pandey&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 11:19:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412875#M55848</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-09-27T11:19:32Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412923#M55849</link>
      <description>&lt;P&gt;PickPoint prompts the user to pick a point on the active work plane.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Perhaps you should prompt user to select model line instead&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 11:33:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412923#M55849</guid>
      <dc:creator>aignatovich</dc:creator>
      <dc:date>2017-09-27T11:33:58Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412953#M55850</link>
      <description>&lt;P&gt;But I fail to understand why PickPoint is not returning the Z value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It is bound to do so.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;
&lt;P&gt;Sanjay Pandey&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 11:43:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412953#M55850</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-09-27T11:43:09Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412973#M55851</link>
      <description>&lt;P&gt;Turn on active workplane on 3D view&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="active workplane.PNG" style="width: 705px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/405951iC35594429B1D9FF5/image-size/large?v=v2&amp;amp;px=999" role="button" title="active workplane.PNG" alt="active workplane.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 27 Sep 2017 11:48:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7412973#M55851</guid>
      <dc:creator>aignatovich</dc:creator>
      <dc:date>2017-09-27T11:48:59Z</dc:date>
    </item>
    <item>
      <title>Re: ReferenceIntersector working weird</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7444500#M55852</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for all the time and effort.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have now modified the code so that its prompts the user to select the element and that worked.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;
&lt;P&gt;Sanjay Pandey&lt;/P&gt;</description>
      <pubDate>Mon, 09 Oct 2017 10:49:47 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/referenceintersector-working-weird/m-p/7444500#M55852</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-10-09T10:49:47Z</dc:date>
    </item>
  </channel>
</rss>

