Hi Ihr,
ich versuche nachfolgenden Code zum laufen zu bringen und scheitere immer an dem nachfolgenden Cast:
ExternalReference dsExtRef = entityItem as ExternalReference;
Dabei gebe ich ja den Typ über dsObjectType_e.dsExternalReferenceType an und ich bekomme auch ein Array mit der erwarteten Anzahl zurück!
Andere Typen wie z.B. ReferenceImage usw. gehen?!
Es geht mir letztlich um die Anzahl "Verbauungen" jedes einzelnen XRefs. Aus diesem Grund kann ich hier nicht über doc.GetExternalReferences() gehen, da ich da immer nur ein Vorkommen für jedes XRef bekomme.
#########################################################
Model model = doc.GetModel();
SketchManager dsSketchMgr = model.GetSketchManager();
//GetSselection Manager
SelectionManager dsSelectionMgr = doc.GetSelectionManager();
//Get selection filter
SelectionFilter dsSelectionFilter = dsSelectionMgr.GetSelectionFilter();
//Clear selection filter
dsSelectionFilter.Clear();
dsSelectionFilter.AddEntityType(dsObjectType_e.dsExternalReferenceType);
dsSelectionFilter.Active = true;
object entityTypes;
object entityObjects;
string[] layerNames = Misc.GetLayers(doc);
//Get externalref entities
dsSketchMgr.GetEntities(dsSelectionFilter, layerNames, out entityTypes, out entityObjects);
object[] dsEntities = (object[])entityObjects;
if (entityObjects != null)
{
foreach (object entityItem in dsEntities)
{
ExternalReference dsExtRef = entityItem as ExternalReference;
if (dsExtRef != null)
{
string nFile = dsExtRef.PathName;
//etc.
}
}
}
#########################################################
Hat jemand eine Idee?
CU
Kricher
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP