EBDN - Community - Question & Answers

  Monday, 03 September 2018
  6 Replies
  1.3K Visits
0
Votes
Undo
ich suche verzweifelt danach wie ich bei einem Export eines Projektes die Querverbindungen zwischen den einzelnen Objekten in das XML bekomme.

Konkret scheint es an der Auswahl der Rollen zu liegen vermute ich.

Welche RoleIDs (Aucotec.EngineeringBase.Client.Runtime.AssociationRole) und welche ObjektTypen (Aucotec.EngineeringBase.Client.Runtime.ObjectKind) muss ich der Funktion ObjectItem.ExportXML übergeben damit ich im XML die Info finde welches Equipment auf welchem R&I Dokument platziert ist. Selbiges für die Verbindung von Equipment mit einer Funktion oder einer Position.
Bevorzugt alles in einem Export.


string strObjectTypeIds = null;
string[] arrObjectTypeIds = null;
int iObjectTypeID = 0;
System.Collections.Generic.List<Aucotec.EngineeringBase.Client.Runtime.ObjectKind> EBObjectTypeIds = null;
Aucotec.EngineeringBase.Client.Runtime.ObjectKind EBObjectTypeId = (Aucotec.EngineeringBase.Client.Runtime.ObjectKind)0;
string strRoleIds = null;
string[] arrRoleIds = null;
int iRoleID = 0;
System.Collections.Generic.List<Aucotec.EngineeringBase.Client.Runtime.AssociationRole> EBRoleIds = null;
Aucotec.EngineeringBase.Client.Runtime.AssociationRole EBRoleId = (Aucotec.EngineeringBase.Client.Runtime.AssociationRole)0;
string strAttributesToInclude = null;
string[] arrAttributesToInclude = null;
int iAttributeID = 0;
Aucotec.EngineeringBase.Client.Runtime.AttributeId EBAttributeId = (Aucotec.EngineeringBase.Client.Runtime.AttributeId)0;
System.Collections.Generic.List<Aucotec.EngineeringBase.Client.Runtime.AttributeId> EBAttributeIds = null;
string[] arrSeparator = { "," };
Aucotec.EngineeringBase.Client.Runtime.ObjectItem objEBSelectedItem = null;

//Liste die ich derzeit verwende: 7,8,10,13,59,87,111,112,113,114,118,122,123,128,169,201,205,294
EBObjectTypeIds = new System.Collections.Generic.List<Aucotec.EngineeringBase.Client.Runtime.ObjectKind>()
{Aucotec.EngineeringBase.Client.Runtime.ObjectKind.Device};

//Liste die ich derzeit verwende (Liefert leider nicht alles was ich brauche): -3,25,26,29,41,42,51,58,59,80,81,85,86,100,106,107,108,109,110,111,114,115,116,120,122
EBRoleIds = new System.Collections.Generic.List<Aucotec.EngineeringBase.Client.Runtime.AssociationRole>();
{ Aucotec.EngineeringBase.Client.Runtime.AssociationRole.Accessory
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.Aggregation
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.BundlesSegment2CableWire
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.Cavity2Cavity
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.ConnectionRule2Device
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.Device2DeviceOption
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.DeviceToFunction
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.DictionaryToProject
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.FunctionToSheet
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.ModuleOrVariant2WireOrDevice
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.RelatedDevice
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.RelatedFunction
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.Segment2Device
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.SymbolInSheet
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.SymbolRepresentation
, Aucotec.EngineeringBase.Client.Runtime.AssociationRole.TopoPin2BundlesSegment
};//Hier fehlt mir eine sinnvolle Liste. Leider sind die Namen für mich nicht ausreichend aussagekräftig.

EBAttributeIds = new System.Collections.Generic.List<Aucotec.EngineeringBase.Client.Runtime.AttributeId>()
{Aucotec.EngineeringBase.Client.Runtime.AttributeId.Designation
, Aucotec.EngineeringBase.Client.Runtime.AttributeId.TId
, Aucotec.EngineeringBase.Client.Runtime.AttributeId.Version
, Aucotec.EngineeringBase.Client.Runtime.AttributeId.Position
, modEBHelper.EBAttributeMCadId};

objEbExpConf.NeverRespectGUIFlags = true;
objEbExpConf.OutputForRegTest = false;
objEbExpConf.OutputIgnoredObjects = true;
objEbExpConf.OutputAssocs = true;
objEbExpConf.OutputBinaries = true;
objEbExpConf.OutputDesignation = true;
objEbExpConf.OutputUsageState = true;
objEbExpConf.UseTranslate = true;
objEbExpConf.Depth = -1;
if (EBRoleIds != null && EBRoleIds.Count > 0) objEbExpConf.Roles = EBRoleIds;
if (EBObjectTypeIds != null && EBObjectTypeIds.Count > 0) objEbExpConf.ObjectKinds = EBObjectTypeIds;
if (EBAttributeIds != null && EBAttributeIds.Count > 0) objEbExpConf.AttrIds = EBAttributeIds;

objEBSelectedItem.ExportXML(objEbExpConf, strOutFile);