<?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 Find All Data Shortcuts with a .NET API in Civil 3D Customization Forum</title>
    <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/find-all-data-shortcuts-with-a-net-api/m-p/12006721#M3532</link>
    <description>&lt;P&gt;Is it possible to find all Data Shortcuts in the document?&lt;BR /&gt;I would like to get a list of all Data Shortcuts that includes Alignments, Surfaces, Pipe Networks, Pressure Networks and Corridors.&lt;BR /&gt;&lt;BR /&gt;I know I can go group by group and traverse all entities in a group to find out which are references, like the below example for Surfaces.&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;Editor _ed = Application.DocumentManager.MdiActiveDocument.Editor;
CivilDocument _civilDoc = CivilApplication.ActiveDocument;
Database _db = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument.Database;

var surfaceIds = _civilDoc.GetSurfaceIds();
using (var tr = _db.TransactionManager.StartTransaction())
{
    foreach (ObjectId surfaceId in surfaceIds)
    {
        var surf = tr.GetObject(surfaceId, OpenMode.ForRead) as Entity;
        if (surf.IsReferenceObject)
        {
            var dsInfo = surf.GetReferenceInfo();
            _ed.WriteMessage("IsSourceDrawingExistent: " + dsInfo.IsSourceDrawingExistent + "\n");
            _ed.WriteMessage("SourceDrawing: " + dsInfo.SourceDrawing + "\n");
            _ed.WriteMessage("HandleHigh: " + dsInfo.HandleHigh + "\n");
            _ed.WriteMessage("HandleLow: " + dsInfo.HandleLow + "\n");
            _ed.WriteMessage("Type: " + dsInfo.Type + "\n");
        }
    }
    tr.Commit();
}&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;But this does not feel very efficient.&lt;BR /&gt;&lt;BR /&gt;Is there a better way?&lt;/P&gt;</description>
    <pubDate>Fri, 02 Jun 2023 10:03:10 GMT</pubDate>
    <dc:creator>tipitasa</dc:creator>
    <dc:date>2023-06-02T10:03:10Z</dc:date>
    <item>
      <title>Find All Data Shortcuts with a .NET API</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/find-all-data-shortcuts-with-a-net-api/m-p/12006721#M3532</link>
      <description>&lt;P&gt;Is it possible to find all Data Shortcuts in the document?&lt;BR /&gt;I would like to get a list of all Data Shortcuts that includes Alignments, Surfaces, Pipe Networks, Pressure Networks and Corridors.&lt;BR /&gt;&lt;BR /&gt;I know I can go group by group and traverse all entities in a group to find out which are references, like the below example for Surfaces.&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;Editor _ed = Application.DocumentManager.MdiActiveDocument.Editor;
CivilDocument _civilDoc = CivilApplication.ActiveDocument;
Database _db = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument.Database;

var surfaceIds = _civilDoc.GetSurfaceIds();
using (var tr = _db.TransactionManager.StartTransaction())
{
    foreach (ObjectId surfaceId in surfaceIds)
    {
        var surf = tr.GetObject(surfaceId, OpenMode.ForRead) as Entity;
        if (surf.IsReferenceObject)
        {
            var dsInfo = surf.GetReferenceInfo();
            _ed.WriteMessage("IsSourceDrawingExistent: " + dsInfo.IsSourceDrawingExistent + "\n");
            _ed.WriteMessage("SourceDrawing: " + dsInfo.SourceDrawing + "\n");
            _ed.WriteMessage("HandleHigh: " + dsInfo.HandleHigh + "\n");
            _ed.WriteMessage("HandleLow: " + dsInfo.HandleLow + "\n");
            _ed.WriteMessage("Type: " + dsInfo.Type + "\n");
        }
    }
    tr.Commit();
}&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;But this does not feel very efficient.&lt;BR /&gt;&lt;BR /&gt;Is there a better way?&lt;/P&gt;</description>
      <pubDate>Fri, 02 Jun 2023 10:03:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/find-all-data-shortcuts-with-a-net-api/m-p/12006721#M3532</guid>
      <dc:creator>tipitasa</dc:creator>
      <dc:date>2023-06-02T10:03:10Z</dc:date>
    </item>
    <item>
      <title>Re: Find All Data Shortcuts with a .NET API</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/find-all-data-shortcuts-with-a-net-api/m-p/12331905#M3533</link>
      <description>&lt;P&gt;Was this resolved? Using better terms may help. DS Referenced objects are DREF's or Data References. Hoping to get all DREF's from a DWG DB in one step instead of iterating Object ID Collections, one by one.&lt;/P&gt;</description>
      <pubDate>Thu, 26 Oct 2023 06:00:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/find-all-data-shortcuts-with-a-net-api/m-p/12331905#M3533</guid>
      <dc:creator>kevin.bza</dc:creator>
      <dc:date>2023-10-26T06:00:37Z</dc:date>
    </item>
    <item>
      <title>Re: Find All Data Shortcuts with a .NET API</title>
      <link>https://forums.autodesk.com/t5/civil-3d-customization-forum/find-all-data-shortcuts-with-a-net-api/m-p/12332089#M3534</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/13164522"&gt;@tipitasa&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;maybe this help you&lt;/P&gt;&lt;P&gt;code python&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;import sys
import clr

clr.AddReference('AeccDbMgd')
clr.AddReference('AeccDataShortcutMgd')

from Autodesk.Civil.DataShortcuts import *
from Autodesk.Civil.DataShortcuts import DataShortcutEntityType

vals = DataShortcuts.CreateDataShortcutManager(True)

dsm = vals[0]
c = dsm.GetPublishedItemsCount()
o = []
for i in range(c):
    p = dsm.GetPublishedItemAt(i)
    #pq = dsm.GetParentItemIndex(1)
    #o.append([p])
    if p.DSEntityType == DataShortcutEntityType.Alignment or p.DSEntityType == DataShortcutEntityType.Surface or p.DSEntityType == DataShortcutEntityType.PipeNetwork:
       o.append([p.Name , p.DSEntityType ])
    #o.append([p.Name , p.DSEntityType ])
    


OUT = o&lt;/LI-CODE&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="393690103_6726025597475718_6101174310727086348_n.jpg" style="width: 674px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1284059iF5933AEC2F86E134/image-size/large?v=v2&amp;amp;px=999" role="button" title="393690103_6726025597475718_6101174310727086348_n.jpg" alt="393690103_6726025597475718_6101174310727086348_n.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1.JPG" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1284058iBD09A3DBB3E5100C/image-size/large?v=v2&amp;amp;px=999" role="button" title="1.JPG" alt="1.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Oct 2023 07:52:20 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/civil-3d-customization-forum/find-all-data-shortcuts-with-a-net-api/m-p/12332089#M3534</guid>
      <dc:creator>hosneyalaa</dc:creator>
      <dc:date>2023-10-26T07:52:20Z</dc:date>
    </item>
  </channel>
</rss>

