<?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 Re: 3D XCLIP in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3806437#M50634</link>
    <description>&lt;P&gt;Thought I should put the portion of the code up I'm having trouble with:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;// Transform points to selected clipping block ucs&lt;BR /&gt;pt1 = pt1.TransformBy(selectedBlock.BlockTransform);&lt;BR /&gt;pt2 = pt2.TransformBy(selectedBlock.BlockTransform);&lt;BR /&gt;pt3 = pt3.TransformBy(selectedBlock.BlockTransform);&lt;BR /&gt;pt4 = pt4.TransformBy(selectedBlock.BlockTransform);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;var ms = (BlockTableRecord) tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);&lt;/P&gt;&lt;P&gt;foreach (ObjectId id in ms)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;var ent = (Entity) tr.GetObject(id, OpenMode.ForRead);&lt;/P&gt;&lt;P&gt;&amp;nbsp;if (ent != null)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if (ent.GetType() == typeof (BlockReference))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var br = (BlockReference) ent; // Get block reference&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var btr = (BlockTableRecord) tr.GetObject(br.BlockTableRecord, OpenMode.ForRead);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Check whether the blockreference is an external reference&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (btr.IsFromExternalReference &amp;amp;&amp;amp; btr.IsResolved)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var pts = new Point2dCollection(4)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Point2d(pt1.X, pt1.Y),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Point2d(pt2.X, pt2.Y),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Point2d(pt3.X, pt3.Y),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Point2d(pt4.X, pt4.Y)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color="#ff0000"&gt;&amp;nbsp;// Create spatial filter&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var sfd = new SpatialFilterDefinition(pts, Vector3d.ZAxis, 0.0, 0.0, 0.0, true);&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var sf = new SpatialFilter {Definition = sfd};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Create extension dictionary if doesn't exist&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (br.ExtensionDictionary == ObjectId.Null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;br.UpgradeOpen();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;br.CreateExtensionDictionary();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;br.DowngradeOpen();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Add spatial filter to extension dictionary&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var extDict = (DBDictionary) tr.GetObject(br.ExtensionDictionary, OpenMode.ForWrite);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (extDict.Contains(filterDictName))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var filterDict = (DBDictionary) tr.GetObject(extDict.GetAt(filterDictName), OpenMode.ForWrite);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (filterDict.Contains(spatialName))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filterDict.Remove(spatialName);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filterDict.SetAt(spatialName, sf);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var filterDict = new DBDictionary();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extDict.SetAt(filterDictName, filterDict);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tr.AddNewlyCreatedDBObject(filterDict, true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filterDict.SetAt(spatialName, sf);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tr.AddNewlyCreatedDBObject(sf, true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;tr.Commit();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 16 Mar 2013 07:00:36 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2013-03-16T07:00:36Z</dc:date>
    <item>
      <title>3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3800974#M50632</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Anyone had any success XCLIPPING both 2d and 3d references using .NET ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I found an excellent post by Kean Walmsley here covering 2d references &lt;A target="_blank" href="http://through-the-interface.typepad.com/through_the_interface/au/page/4/"&gt;http://through-the-interface.typepad.com/through_the_interface/au/page/4/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can I cater for 3d references?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The "SpatialFilterDefinition" contains all the juice, but I haven't managed to succesfully pass elevation and clipping depths.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SpatialFilterDefinitionsfd = newSpatialFilterDefinition(pts, Vector3d.ZAxis, &lt;FONT color="#ff0000"&gt;0.0, 0.0, 0.0&lt;/FONT&gt;, true);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks in advance&lt;/P&gt;</description>
      <pubDate>Sun, 10 Mar 2013 07:34:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3800974#M50632</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-10T07:34:12Z</dc:date>
    </item>
    <item>
      <title>Re: 3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3803450#M50633</link>
      <description>&lt;P&gt;Any ideas?&lt;/P&gt;</description>
      <pubDate>Wed, 13 Mar 2013 06:51:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3803450#M50633</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-13T06:51:15Z</dc:date>
    </item>
    <item>
      <title>Re: 3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3806437#M50634</link>
      <description>&lt;P&gt;Thought I should put the portion of the code up I'm having trouble with:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;// Transform points to selected clipping block ucs&lt;BR /&gt;pt1 = pt1.TransformBy(selectedBlock.BlockTransform);&lt;BR /&gt;pt2 = pt2.TransformBy(selectedBlock.BlockTransform);&lt;BR /&gt;pt3 = pt3.TransformBy(selectedBlock.BlockTransform);&lt;BR /&gt;pt4 = pt4.TransformBy(selectedBlock.BlockTransform);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;var ms = (BlockTableRecord) tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);&lt;/P&gt;&lt;P&gt;foreach (ObjectId id in ms)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;var ent = (Entity) tr.GetObject(id, OpenMode.ForRead);&lt;/P&gt;&lt;P&gt;&amp;nbsp;if (ent != null)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if (ent.GetType() == typeof (BlockReference))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var br = (BlockReference) ent; // Get block reference&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var btr = (BlockTableRecord) tr.GetObject(br.BlockTableRecord, OpenMode.ForRead);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Check whether the blockreference is an external reference&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (btr.IsFromExternalReference &amp;amp;&amp;amp; btr.IsResolved)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var pts = new Point2dCollection(4)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Point2d(pt1.X, pt1.Y),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Point2d(pt2.X, pt2.Y),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Point2d(pt3.X, pt3.Y),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Point2d(pt4.X, pt4.Y)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color="#ff0000"&gt;&amp;nbsp;// Create spatial filter&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var sfd = new SpatialFilterDefinition(pts, Vector3d.ZAxis, 0.0, 0.0, 0.0, true);&lt;/FONT&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var sf = new SpatialFilter {Definition = sfd};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Create extension dictionary if doesn't exist&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (br.ExtensionDictionary == ObjectId.Null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;br.UpgradeOpen();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;br.CreateExtensionDictionary();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;br.DowngradeOpen();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Add spatial filter to extension dictionary&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var extDict = (DBDictionary) tr.GetObject(br.ExtensionDictionary, OpenMode.ForWrite);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (extDict.Contains(filterDictName))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var filterDict = (DBDictionary) tr.GetObject(extDict.GetAt(filterDictName), OpenMode.ForWrite);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (filterDict.Contains(spatialName))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filterDict.Remove(spatialName);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filterDict.SetAt(spatialName, sf);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var filterDict = new DBDictionary();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extDict.SetAt(filterDictName, filterDict);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tr.AddNewlyCreatedDBObject(filterDict, true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filterDict.SetAt(spatialName, sf);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tr.AddNewlyCreatedDBObject(sf, true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;tr.Commit();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 16 Mar 2013 07:00:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3806437#M50634</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-16T07:00:36Z</dc:date>
    </item>
    <item>
      <title>Re: 3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3809677#M50635</link>
      <description>&lt;P&gt;Sorry for the delay.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can you please explain the issue you are having with the clip parameters to the "SpatialFilterDefinition" ?&lt;/P&gt;
&lt;P&gt;The elevation parameter can simply be set to 0.0. This along with the normal will set the reference for the other two parameters (front clip and back clip).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Front clip distcance is to be provided in the positive extrusion direction (in the same direction as that of the normal) and back clip distance in the negative extrusion direction.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would suggest using the XCLIP command in AutoCAD to achieve the desired 3D clipping of the Xref&amp;nbsp;and then using the ArxDbg to view the Dxf values of the clipped Xref to determine the&amp;nbsp;values for the front clip distance, back clip distance, elevation and normal values. You can then use the same values in your code to achieve the desired 3d clipping.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From the Dxf reference guide, the group codes 40 and 41 store the front clip distance and back clip distance for a spatial filter.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Mar 2013 07:22:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3809677#M50635</guid>
      <dc:creator>Balaji_Ram</dc:creator>
      <dc:date>2013-03-20T07:22:56Z</dc:date>
    </item>
    <item>
      <title>Re: 3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3810773#M50636</link>
      <description>&lt;P&gt;Thanks for the reply...really not sure whats going wrong&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've tested the points are properly transformed and tried setting the spatial filter as follows following several comments.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;var sfd = new SpatialFilterDefinition(pts, Vector3d.ZAxis, 0.0, double.PositiveInfinity, double.NegativeInfinity, true);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yet the xref won't clip in the correct place? Not sure what I'm missing. I've tried with both World &amp;amp; User coordinates systems with similar results.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do you need to pass 5 points for a rectangular boundary? My point list is generated from a block selection not via user prompt.&lt;/P&gt;</description>
      <pubDate>Thu, 21 Mar 2013 06:55:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3810773#M50636</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-21T06:55:32Z</dc:date>
    </item>
    <item>
      <title>Re: 3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3810938#M50637</link>
      <description>&lt;P&gt;The problem could be due to the coordinate system of the clip&amp;nbsp;boundary points.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can you please try using the index filter manager to add the spatial filter as explained in these posts ?&lt;/P&gt;
&lt;P&gt;In the sample code, the elevation and normal that define the ECS are computed from the ucs directions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://adndevblog.typepad.com/autocad/2013/01/spatial-filter-xclip-command-command-in-c.html" target="_blank"&gt;http://adndevblog.typepad.com/autocad/2013/01/spatial-filter-xclip-command-command-in-c.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://adndevblog.typepad.com/autocad/2013/03/xclip-xrefs-using-objectarx.html" target="_blank"&gt;http://adndevblog.typepad.com/autocad/2013/03/xclip-xrefs-using-objectarx.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The "ACDB_INFINITE_XCLIP_DEPTH"&amp;nbsp;is a very large number defined in dpspfilt.h&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If this does not help, can you please provide a simple drawing and a sample project to reproduce the problem ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Mar 2013 11:36:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3810938#M50637</guid>
      <dc:creator>Balaji_Ram</dc:creator>
      <dc:date>2013-03-21T11:36:27Z</dc:date>
    </item>
    <item>
      <title>Re: 3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3811758#M50638</link>
      <description>&lt;P&gt;Ok so I tweaked my code after reading the 2 posts you mentioned but the clip is still falling in the wrong place for both 2d and 3d block references? I added the "DrawClipBoundary" method which successfully places an outline around the intended Xclip boundary. Can you spot where I'm going wrong? Its driving me potty.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also I wrote an additional function to read existing XCLIP information which returned some interesting results, it appears the clip retains the coordainate system values at the time of creation?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;[CommandMethod("XCLIPALL")]&lt;BR /&gt;public static void XRefClipAll()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;var doc = Application.DocumentManager.MdiActiveDocument;&lt;BR /&gt;&amp;nbsp;var db = doc.Database;&lt;BR /&gt;&amp;nbsp;var ed = doc.Editor;&lt;/P&gt;&lt;P&gt;&amp;nbsp;using (Transaction tr = db.TransactionManager.StartTransaction())&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;const string filterDictName = "ACAD_FILTER";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;const string spatialName = "SPATIAL";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var peo = new PromptEntityOptions("\nSelect a block: ");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;peo.SetRejectMessage("\nMust be a block reference.");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;peo.AddAllowedClass(typeof (BlockReference), true);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var per = ed.GetEntity(peo);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if (per.Status != PromptStatus.OK) return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var ppo = new PromptPointOptions("\nSelect rect clip 1st corner: ");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;var ppr1 = ed.GetPoint(ppo);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;if (ppr1.Status != PromptStatus.OK)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var pco = new PromptCornerOptions( "\nSelect rect clip 2nd corner: ", ppr1.Value)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UseDashedLine = true&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var ppr2 = ed.GetCorner(pco);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;if (ppr2.Status != PromptStatus.OK)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var bref = (BlockReference) tr.GetObject(per.ObjectId, OpenMode.ForRead);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var bottomLeftCorner = ppr1.Value.TransformBy(bref.BlockTransform.Inverse());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;var upperRightCorner = ppr2.Value.TransformBy(bref.BlockTransform.Inverse());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;var pts = new Point2dCollection(2)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Point2d(bottomLeftCorner.X, bottomLeftCorner.Y),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Point2d(upperRightCorner.X, upperRightCorner.Y),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;Vector3d normal;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;double elev;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;if (db.TileMode)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;normal = db.Ucsxdir.CrossProduct(db.Ucsydir);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;elev = db.Elevation;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;normal = db.Pucsxdir.CrossProduct(db.Pucsydir);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;elev = db.Pelevation;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;normal.GetNormal();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// Create spatial filter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;var sfd = new SpatialFilterDefinition(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;pts,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;normal, elev,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;double.PositiveInfinity,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;double.NegativeInfinity,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;true);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// Show Intend xclip boundary&lt;BR /&gt;&amp;nbsp;&amp;nbsp;DrawClipBoundary(pts, bref, normal, elev);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var sf = new SpatialFilter {Definition = sfd};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// Create extension dictionary if doesn't exist&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if (br.ExtensionDictionary == ObjectId.Null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;br.UpgradeOpen();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;br.CreateExtensionDictionary();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;br.DowngradeOpen();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// Add spatial filter to extension dictionary&lt;BR /&gt;&amp;nbsp;&amp;nbsp;var xDict = (DBDictionary) tr.GetObject(br.ExtensionDictionary, OpenMode.ForWrite);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;if (xDict.Contains(filterDictName))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var filterDict =&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(DBDictionary) tr.GetObject(xDict.GetAt(filterDictName), OpenMode.ForWrite);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (filterDict.Contains(spatialName))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;filterDict.Remove(spatialName);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;filterDict.SetAt(spatialName, sf);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var fDict = new DBDictionary();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;xDict.SetAt(filterDictName, fDict);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;tr.AddNewlyCreatedDBObject(fDict, true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;fDict.SetAt(spatialName, sf);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;tr.AddNewlyCreatedDBObject(sf, true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;tr.Commit();&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;ed.Regen();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-------------------------------------&amp;nbsp;&lt;/P&gt;&lt;P&gt;READ FUNCTION&lt;/P&gt;&lt;P&gt;-------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;[CommandMethod("XCLIPREAD")]&lt;BR /&gt;public static void XRefClipRead()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;var doc = Application.DocumentManager.MdiActiveDocument;&lt;BR /&gt;&amp;nbsp;var db = doc.Database;&lt;BR /&gt;&amp;nbsp;var ed = doc.Editor;&lt;/P&gt;&lt;P&gt;&amp;nbsp;using (Transaction tr = db.TransactionManager.StartTransaction())&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;const string filterDictName = "ACAD_FILTER";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;const string spatialName = "SPATIAL";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var peo = new PromptEntityOptions("\nSelect MVF block: ");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;peo.SetRejectMessage("\nMust be a block reference.");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;peo.AddAllowedClass(typeof (BlockReference), true);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;PromptEntityResult per = ed.GetEntity(peo);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if (per.Status != PromptStatus.OK) return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var br = (BlockReference) tr.GetObject(per.ObjectId, OpenMode.ForRead);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (br.ExtensionDictionary == ObjectId.Null) return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;var xDict = (DBDictionary)tr.GetObject(br.ExtensionDictionary, OpenMode.ForWrite);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;if (xDict.Contains(filterDictName))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var filterDict = (DBDictionary) tr.GetObject(xDict.GetAt(filterDictName), OpenMode.ForRead);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!filterDict.Contains(spatialName)) return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var sf = tr.GetObject(filterDict.GetAt(spatialName), OpenMode.ForRead) as SpatialFilter;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SpatialFilterDefinition def = sf.Definition;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach (Point2d pt in def.GetPoints())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ed.WriteMessage("\nPoints: " + pt);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ed.WriteMessage("\nNormal: " + def.Normal);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ed.WriteMessage("\nElevation: " + def.Elevation);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ed.WriteMessage("\nFront clip: " + def.FrontClip);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ed.WriteMessage("\nBack clip: " + def.BackClip);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Mar 2013 23:48:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3811758#M50638</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-21T23:48:57Z</dc:date>
    </item>
    <item>
      <title>Re: 3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3811768#M50639</link>
      <description>&lt;P&gt;I found the route of my problem! its's the Vector3d part of the SpatialFilterDefinition&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When the coordinate system is set to World Vector3d.ZAxis works perfectly until I change to a UCS. This neesd tweaking.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Vector3d normal;&lt;BR /&gt;double elev;&lt;/P&gt;&lt;P&gt;if (db.TileMode)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;normal = db.Ucsxdir.CrossProduct(db.Ucsydir);&lt;BR /&gt;&amp;nbsp;elev = db.Elevation;&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;normal = db.Pucsxdir.CrossProduct(db.Pucsydir);&lt;BR /&gt;&amp;nbsp;elev = db.Pelevation;&lt;BR /&gt;}&lt;BR /&gt;normal.GetNormal();&lt;/P&gt;</description>
      <pubDate>Fri, 22 Mar 2013 00:25:24 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3811768#M50639</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-22T00:25:24Z</dc:date>
    </item>
    <item>
      <title>Re: 3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3813480#M50640</link>
      <description>&lt;P&gt;With all the code floating around I feel I may have blurred my initial question. Probably better to start from the beginnning.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to write a function in c# that clips all loaded xrefs based on a particular block called (for exmaple)&amp;nbsp;"rectangle_boundary". I want to use this block to determine the 4 corners of the clipping boundary and cater for the current coordinate system.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the code that calculates the length and width of the "rectangle_boundary" block so all I need to do now is tie this together successfully with a SpatialFilter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As you can see above I've made several attempts with no success.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Mar 2013 06:29:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3813480#M50640</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-25T06:29:08Z</dc:date>
    </item>
    <item>
      <title>Re: 3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3813606#M50641</link>
      <description>&lt;P&gt;Please provide a buildable sample project with the code that you are having trouble with along with the sample drawing that you are using to test.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you prefer, you can use the sample project from the blog post that I mentioned in my previous reply.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This will help in identifying the issue.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Mar 2013 11:29:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3813606#M50641</guid>
      <dc:creator>Balaji_Ram</dc:creator>
      <dc:date>2013-03-25T11:29:46Z</dc:date>
    </item>
    <item>
      <title>Re: 3D XCLIP</title>
      <link>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3814433#M50642</link>
      <description>&lt;P&gt;Thanks Balaji, I figured it out &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I had to create 2 Transformation Matrix's 1.) the clipping block 2.) The reference. Then using your example to calculate the norm and elevation I was able to tie it all together.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks so much for your help.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Mar 2013 22:40:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/3d-xclip/m-p/3814433#M50642</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-25T22:40:30Z</dc:date>
    </item>
  </channel>
</rss>

