<?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: X-Ref Relative Path Issue in VBA Forum</title>
    <link>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2860654#M13108</link>
    <description>&lt;P&gt;Nice one, thanks.&amp;nbsp; That did the trick.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the working code if anyone ever needs it.&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;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Function DWG_UpdateXref()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim FilterType(1) As Integer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim FilterData(1) As Variant&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim BlockSelSet As AcadSelectionSet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim acadBlock As AcadBlockReference&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim acadXref As AcadExternalReference&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strBlCode As String&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strFlCode As String&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim insPnt(0 To 2) As Double&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strXrefName As String&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not ThisDrawing.Name Like "*AFM*" Then Exit Function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set global veriables&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If strDwgType = "" Then SetGlobalVar&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' get building/floor codes&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strBlCode = GetBuildingCode(ThisDrawing.Name)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strFlCode = GetFloorCode(ThisDrawing.Name)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' set insertion point&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insPnt(0) = 0: insPnt(1) = 0: insPnt(2) = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' create selection set&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilterType(0) = 8: FilterData(0) = "0"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilterType(1) = 0: FilterData(1) = "INSERT"&lt;/P&gt;&lt;P&gt;Retry:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Err.Clear&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set BlockSelSet = ThisDrawing.SelectionSets.Add("xRef")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If UCase(Err.Description) Like "*SELECTION*" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each BlockSelSet In ThisDrawing.SelectionSets&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If BlockSelSet.Name = "xRef" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BlockSelSet.Delete&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Err.Clear&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GoTo Retry&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next BlockSelSet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BlockSelSet.Select acSelectionSetAll, , , FilterType, FilterData&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error GoTo 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' loop through selection set and find xrefs&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each acadBlock In BlockSelSet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If acadBlock.Name Like strBlCode &amp;amp; "~" &amp;amp; strFlCode &amp;amp; "*" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' get xref name and detatch&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strXrefName = acadBlock.Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set acadXref = ThisDrawing.HandleToObject(acadBlock.Handle)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; acadXref.Path = "..\" &amp;amp; strXrefName &amp;amp; ".dwg"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; acadXref.Update&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ElseIf acadBlock.Name Like "EUR-TITLE-*" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' do the same with the titlesheet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strXrefName = acadBlock.Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set acadXref = ThisDrawing.HandleToObject(acadBlock.Handle)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; acadXref.Path = "..\" &amp;amp; strXrefName &amp;amp; ".dwg"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; acadXref.Update&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next acadBlock&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ThisDrawing.Regen acAllViewports&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;End Function&lt;/P&gt;</description>
    <pubDate>Mon, 20 Dec 2010 16:57:13 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2010-12-20T16:57:13Z</dc:date>
    <item>
      <title>X-Ref Relative Path Issue</title>
      <link>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2858944#M13104</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We are in the process of updating the file structure on the office network, and we are going to have to update the x-refs over 1500 drawings.&amp;nbsp; To avoid any down time where drawings are not available, I have created a VBA function that will loop through all the drawings, dethatch the x-refs and reattach them using the relative path.&amp;nbsp; The code is working as I would expect and is re-mapping the x-refs correctly to the relative path, and I can see that in x-ref manager.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The problem is that all the x-refs are vanishing from the drawing.&amp;nbsp; If I manually attach the x-refs and select relative path it works correctly.&amp;nbsp; I issue only arises when I automate it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code is below, could anyone please let me know what I have got wrong or missed.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your help as always&lt;/P&gt;&lt;P&gt;Andy&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;' loop through selection set and find xrefs&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each acadBlock In BlockSelSet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If acadBlock.Name Like strBlCode &amp;amp; "~" &amp;amp; strFlCode &amp;amp; "*" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' get xref name and detatch&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strXrefName = acadBlock.Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ThisDrawing.Blocks.item(strXrefName).Detach&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'insert new xref&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set acadXref = ThisDrawing.ModelSpace.AttachExternalReference(ThisDrawing.Path &amp;amp; "\" &amp;amp; strXrefName &amp;amp; ".dwg", strXrefName, insPnt, 1, 1, 1, 0, True)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next acadBlock&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ThisDrawing.Regen acAllViewports&lt;/P&gt;</description>
      <pubDate>Fri, 17 Dec 2010 11:05:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2858944#M13104</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2010-12-17T11:05:57Z</dc:date>
    </item>
    <item>
      <title>Re: X-Ref Relative Path Issue</title>
      <link>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2859048#M13105</link>
      <description>&lt;P&gt;you dont have to detach the xref.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dim DefBloc As AcadBlock&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each acadBlock In BlockSelSet&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; set DefBloc = ThisDrawing.Blocks(acadBlock.Name)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If DefBloc.IsXRef Then '--&amp;gt; xref&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; defbloc.path = "..\..\aaa\"&amp;nbsp;&amp;nbsp;&amp;nbsp; '&amp;lt;-- here the new path (relative or not)&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; defbloc.update&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next acadBlock&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ThisDrawing.Regen acAllViewports&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;so i think you need to unlock the layer before doing this. (layer.lock = false / true)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;sorry i am bad in english&lt;/P&gt;</description>
      <pubDate>Fri, 17 Dec 2010 14:07:33 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2859048#M13105</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2010-12-17T14:07:33Z</dc:date>
    </item>
    <item>
      <title>Re: X-Ref Relative Path Issue</title>
      <link>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2859132#M13106</link>
      <description>&lt;P&gt;Hi, thank you for you reply, but I get a run time error when i try to run the code like that.&lt;/P&gt;</description>
      <pubDate>Fri, 17 Dec 2010 15:05:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2859132#M13106</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2010-12-17T15:05:34Z</dc:date>
    </item>
    <item>
      <title>Re: X-Ref Relative Path Issue</title>
      <link>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2860390#M13107</link>
      <description>&lt;P&gt;Here the full prog.&lt;/P&gt;&lt;P&gt;just copy and past in vba&lt;/P&gt;&lt;P&gt;run the macro&amp;nbsp; : Procgen&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sorry it is in french. But if you need explain i can for you &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;you just need to replace "c:\" with the path of your bloc XREF.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;etap :&lt;/P&gt;&lt;P&gt;1 - find all the bloc INSERT&lt;/P&gt;&lt;P&gt;2 - test if the bloc is a Xref. (isXref)&lt;/P&gt;&lt;P&gt;3 -if it is so check the bloc def in database (.block())&lt;/P&gt;&lt;P&gt;4 - rename the path with : "c:\" + Name of block + ".dwg"&lt;/P&gt;&lt;P&gt;5 - update the bloc.&lt;/P&gt;&lt;P&gt;6 - end&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;you just need to save the file , close and reopen --&amp;gt; xref updated !!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i am tested this and it works. (iam under acad 2009)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(it work if you name of bloc = name of file.)&lt;/P&gt;&lt;P&gt;bye &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;'**********************************************************************&lt;BR /&gt;'*** function de sélection selon des critères**************************&lt;BR /&gt;'**********************************************************************&lt;BR /&gt;' ENTREE :&lt;BR /&gt;'&amp;nbsp;&amp;nbsp; Nom de la sélection&lt;BR /&gt;'&amp;nbsp;&amp;nbsp; Liste de format :&lt;BR /&gt;'&amp;nbsp;&amp;nbsp; ex : (0 , "INSERT", 2, "POSTE")&amp;nbsp; Toujours par 2 : CODE DXF, TYPE RECHERCHE&lt;BR /&gt;';**********************************************************************&lt;BR /&gt;Public Function SelectAll(NomSelection As String, ParamArray Element()) As Variant&lt;BR /&gt;&amp;nbsp; ReDim FiltreT(0 To ((UBound(Element) - 1) / 2)) As Integer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; conteneur Type de filtre&lt;BR /&gt;&amp;nbsp; Dim FilterType As Variant&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; Type de filtre ex 0 : filtre sur le type d'objet&lt;BR /&gt;&amp;nbsp; ReDim FiltreD(0 To ((UBound(Element) - 1) / 2)) As Variant&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; conteneur Nom de l'objet&lt;BR /&gt;&amp;nbsp; Dim FilterData As Variant&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; nom de l'objet pour le filtre&lt;BR /&gt;&amp;nbsp; Dim index As Integer&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; Dim Selection As AcadSelectionSet&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; Dim erreur As Long&lt;BR /&gt;&amp;nbsp; index = 0&lt;BR /&gt;&amp;nbsp; If NomSelection = "" Then NomSelection = "SelectionAuto"&lt;BR /&gt;&amp;nbsp; On Error Resume Next&lt;BR /&gt;&amp;nbsp; Set Selection = ThisDrawing.SelectionSets.Add(NomSelection)&lt;BR /&gt;&amp;nbsp; If Err.Number &amp;lt;&amp;gt; 0 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set Selection = ThisDrawing.SelectionSets(NomSelection)&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp; Selection.Delete&lt;BR /&gt;&amp;nbsp; Set Selection = ThisDrawing.SelectionSets.Add(NomSelection)&lt;BR /&gt;&amp;nbsp; On Error GoTo 0&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; index = 0&lt;BR /&gt;&amp;nbsp; While index &amp;lt; UBound(Element)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FiltreT(index \ 2) = Element(index)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FiltreD(index \ 2) = Element(index + 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; index = index + 2&lt;BR /&gt;&amp;nbsp; Wend&lt;BR /&gt;&amp;nbsp; FilterType = FiltreT&lt;BR /&gt;&amp;nbsp; FilterData = FiltreD&lt;BR /&gt;&amp;nbsp; Selection.Select acSelectionSetAll, , , FilterType, FilterData&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; Set SelectAll = Selection&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;End Function&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Public Sub Procgen()&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Dim OkErreur As Boolean&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; Retour de la fonction si erreur (=1)&lt;BR /&gt;&amp;nbsp; OkErreur = False&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Dim ListBloc As AcadSelectionSet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; liste des éléments d'un sélection&lt;BR /&gt;&amp;nbsp; Dim Bloc As Variant&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; boucle sur les sélections&lt;BR /&gt;&amp;nbsp; Dim DefBloc As AcadBlock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; Référence de l'insertion du bloc&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;'===========================================&lt;BR /&gt;'===== récuperation des blocs "INSERT" =====&lt;BR /&gt;'===========================================&lt;BR /&gt;&amp;nbsp; Set ListBloc = SelectAll("CHANGEXREF", 0, "INSERT")&lt;BR /&gt;&lt;BR /&gt;'===========================================&lt;BR /&gt;'======= Boucle sur chaque élément =========&lt;BR /&gt;'===========================================&lt;BR /&gt;&amp;nbsp;For Each Bloc In ListBloc 'pour chaque bloc dans la sélection (dans le dessin)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Set DefBloc = ThisDrawing.Blocks(Bloc.Name)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; If DefBloc.IsXRef Then '--&amp;gt; c'est un xref&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OkErreur = BoucleRechargeXref(Bloc) '--&amp;gt; Récursivité &amp;lt;--&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If OkErreur Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit For&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp; End If 'si c'est un xref&lt;BR /&gt;&amp;nbsp;Next&lt;BR /&gt;&amp;nbsp;If OkErreur Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; MsgBox MessageErreurXref, vbCritical + vbOKOnly, "Erreur XRefChange"&lt;BR /&gt;&amp;nbsp;End If&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;Private Function BoucleRechargeXref(InsertBloc As Variant) As Boolean&lt;BR /&gt;&amp;nbsp; Dim OkErreur As Boolean&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; Retour de la fonction si erreur (=1)&lt;BR /&gt;&amp;nbsp; OkErreur = False&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; Dim Ok As Boolean&lt;BR /&gt;&amp;nbsp; Ok = False&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; Dim RetourChariot As String&lt;BR /&gt;&amp;nbsp; RetourChariot = Chr(13) + Chr(10)&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; Dim ListBloc As AcadSelectionSet&lt;BR /&gt;&amp;nbsp; Dim Bloc As Variant&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; boucle sur les sélection&lt;BR /&gt;&amp;nbsp; Dim DefBlocXRef As AcadExternalReference&amp;nbsp; '--&amp;gt; définition du bloc ou du xref&lt;BR /&gt;&amp;nbsp; Dim DefBloc As AcadBlock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; Référence de l'insertion du bloc&lt;BR /&gt;&amp;nbsp; Dim RepDessin As String&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; répertoire du dessin en cours&lt;BR /&gt;&amp;nbsp; Dim RepXRefOld As String&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; répertoire du Xref trouvé (ancien)&lt;BR /&gt;&amp;nbsp; Dim RepXRefTrouver As String&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; répertoire du XRef trouvé (nouveau)&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; Dim OkMaJ As Boolean&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '--&amp;gt; la mise à jour du Répertoire est OK&lt;BR /&gt;&amp;nbsp; OkMaJ = False&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;'===========================================&lt;BR /&gt;'====== Traitement du Bloc Xref ============&lt;BR /&gt;'===========================================&lt;BR /&gt;&amp;nbsp; Set DefBlocXRef = InsertBloc&lt;BR /&gt;&amp;nbsp; RepXRefOld = DefBlocXRef.Path&lt;BR /&gt;&amp;nbsp; Set DefBloc = ThisDrawing.Blocks(InsertBloc.Name)&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; RepDessin = ThisDrawing.GetVariable("DWGPREFIX")&lt;BR /&gt;&amp;nbsp; ThisDrawing.Utility.Prompt RetourChariot + Separateur + "Xref trouvé : " + DefBlocXRef.Name&lt;BR /&gt;&amp;nbsp; ThisDrawing.Utility.Prompt RetourChariot + Separateur + "--&amp;gt;Rep : " + RepertoireXRef&lt;BR /&gt;&amp;nbsp; RepXRefTrouver = "c:\" &amp;amp; DefBloc.Name &amp;amp; ".dwg"&lt;BR /&gt;'===========================================&lt;BR /&gt;'===Mise à jour du répertoire ==============&lt;BR /&gt;'===========================================&lt;BR /&gt;&amp;nbsp; If RepXRefTrouver &amp;lt;&amp;gt; "" Then '--- Ok trouver alors mise à jour -----&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OkMaJ = True&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DefBlocXRef.Path = RepXRefTrouver&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DefBlocXRef.Update&lt;BR /&gt;&amp;nbsp; Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OkErreur = True&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageErreurXref = "Répertoire introuvable : " + RetourChariot + _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RepXRefOld + RetourChariot + _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "pour l'xref : " + DefBlocXRef.Name + RetourChariot + _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String(Len(ThisDrawing.GetVariable("DWGPREFIX")) + 20, "=") + RetourChariot + _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "dans le fichier : " + ThisDrawing.GetVariable("DWGNAME") + RetourChariot + _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Répertoire : " + ThisDrawing.GetVariable("DWGPREFIX")&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;ThisDrawing.Utility.Prompt RetourChariot&lt;BR /&gt;&amp;nbsp;BoucleRechargeXref = OkErreur&lt;BR /&gt;End Function&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Dec 2010 11:51:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2860390#M13107</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2010-12-20T11:51:41Z</dc:date>
    </item>
    <item>
      <title>Re: X-Ref Relative Path Issue</title>
      <link>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2860654#M13108</link>
      <description>&lt;P&gt;Nice one, thanks.&amp;nbsp; That did the trick.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the working code if anyone ever needs it.&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;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Function DWG_UpdateXref()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim FilterType(1) As Integer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim FilterData(1) As Variant&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim BlockSelSet As AcadSelectionSet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim acadBlock As AcadBlockReference&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim acadXref As AcadExternalReference&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strBlCode As String&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strFlCode As String&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim insPnt(0 To 2) As Double&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim strXrefName As String&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not ThisDrawing.Name Like "*AFM*" Then Exit Function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set global veriables&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If strDwgType = "" Then SetGlobalVar&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' get building/floor codes&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strBlCode = GetBuildingCode(ThisDrawing.Name)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strFlCode = GetFloorCode(ThisDrawing.Name)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' set insertion point&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insPnt(0) = 0: insPnt(1) = 0: insPnt(2) = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' create selection set&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilterType(0) = 8: FilterData(0) = "0"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilterType(1) = 0: FilterData(1) = "INSERT"&lt;/P&gt;&lt;P&gt;Retry:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Err.Clear&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set BlockSelSet = ThisDrawing.SelectionSets.Add("xRef")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If UCase(Err.Description) Like "*SELECTION*" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each BlockSelSet In ThisDrawing.SelectionSets&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If BlockSelSet.Name = "xRef" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BlockSelSet.Delete&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Err.Clear&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GoTo Retry&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next BlockSelSet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BlockSelSet.Select acSelectionSetAll, , , FilterType, FilterData&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error GoTo 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' loop through selection set and find xrefs&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each acadBlock In BlockSelSet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If acadBlock.Name Like strBlCode &amp;amp; "~" &amp;amp; strFlCode &amp;amp; "*" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' get xref name and detatch&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strXrefName = acadBlock.Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set acadXref = ThisDrawing.HandleToObject(acadBlock.Handle)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; acadXref.Path = "..\" &amp;amp; strXrefName &amp;amp; ".dwg"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; acadXref.Update&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ElseIf acadBlock.Name Like "EUR-TITLE-*" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' do the same with the titlesheet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strXrefName = acadBlock.Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set acadXref = ThisDrawing.HandleToObject(acadBlock.Handle)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; acadXref.Path = "..\" &amp;amp; strXrefName &amp;amp; ".dwg"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; acadXref.Update&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next acadBlock&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ThisDrawing.Regen acAllViewports&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;End Function&lt;/P&gt;</description>
      <pubDate>Mon, 20 Dec 2010 16:57:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/x-ref-relative-path-issue/m-p/2860654#M13108</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2010-12-20T16:57:13Z</dc:date>
    </item>
  </channel>
</rss>

