No suitable data shortcut found in current project

Hi …
I took a huge chance here.
Autodesk exposed DS Projects, DS and DREF in the API from C3D 2021. I missed that somehow. Only error in the code is creating the Alignment DREFS. Error - no suitable data shortcut found in current project.
Thx for your patience and thx for sharing…
K.

import sys
import clr

clr.AddReference('AcMgd')
clr.AddReference('AcCoreMgd')
clr.AddReference('AcDbMgd')
clr.AddReference('AecBaseMgd')
clr.AddReference('AecPropDataMgd')
clr.AddReference('AeccDbMgd')
#
clr.AddReference('AeccDataShortcutMgd')

from Autodesk.AutoCAD.Runtime import *
from Autodesk.AutoCAD.ApplicationServices import *
from Autodesk.AutoCAD.EditorInput import *
from Autodesk.AutoCAD.DatabaseServices import *
from Autodesk.AutoCAD.Geometry import *

from Autodesk.Civil.ApplicationServices import *
from Autodesk.Civil.DatabaseServices import *
#
from Autodesk.Civil.DataShortcuts import *

adoc = Application.DocumentManager.MdiActiveDocument

with adoc.LockDocument():
    vals = DataShortcuts.CreateDataShortcutManager(True)
    dsm = vals[0]
    c = dsm.GetPublishedItemsCount()
    o = []
    for i in range(c):
        p = dsm.GetPublishedItemAt(i)
        if not p.IsBroken and  p.DSEntityType == 1:
            o.append([p.Name , p.DSEntityType])
            DataShortcuts.CreateReference(adoc.Database,p.SourceFileName, p.Name, DataShortcutEntityType.Alignment)

OUT = o


there is not Autodesk.Civil.DataShortcuts Namespace at civil api 2021 or 2022

Oops! that was 2021.3 not the original 2021

1 Like

… works now … use CreateReference method of the Manager …


import sys
import clr

clr.AddReference('AcMgd')
clr.AddReference('AcCoreMgd')
clr.AddReference('AcDbMgd')
clr.AddReference('AecBaseMgd')
clr.AddReference('AecPropDataMgd')
clr.AddReference('AeccDbMgd')
#
clr.AddReference('AeccDataShortcutMgd')

from Autodesk.AutoCAD.Runtime import *
from Autodesk.AutoCAD.ApplicationServices import *
from Autodesk.AutoCAD.EditorInput import *
from Autodesk.AutoCAD.DatabaseServices import *
from Autodesk.AutoCAD.Geometry import *

from Autodesk.Civil.ApplicationServices import *
from Autodesk.Civil.DatabaseServices import *
#
from Autodesk.Civil.DataShortcuts import *
from Autodesk.Civil.DataShortcuts import DataShortcutEntityType

adoc = Application.DocumentManager.MdiActiveDocument


with adoc.LockDocument():
    vals = DataShortcuts.CreateDataShortcutManager(True)
    dsm = vals[0]
    c = dsm.GetPublishedItemsCount()
    o = []
    for i in range(c):
        p = dsm.GetPublishedItemAt(i)
        if not p.IsBroken and  p.DSEntityType == DataShortcutEntityType.Alignment:
            o.append([p.Name , p.DSEntityType ])
            dsm.CreateReference(i,adoc.Database)

OUT = o