EKL - Report2D - Get Connected Component through piping ports

Retreive all nozzle and connected Equipment

Filter: retreive only Nozzle

let LNozzle(Piping_Logical_Miscellaneous)
set LNozzle=ThisObject.Reference
ReturnBool = LNozzle.V_LogicalSubPartType=="Nozzle"

 

Retreive connected Equipment Instance Name

let Inst(Piping_Logical_Miscellaneous_Inst)
let CnxEQT_Inst(EnsLogicalEquipmentInst)
let CnxEQT_Ref(EnsLogicalEquipment)
let ListConnectedComp(List)
let ListSize(Integer)
let i(integer)
let CnxEQT_Name(String)
set Inst=ThisObject.Instance
ListPipingConnectedComponents(Inst,"EnsLogicalEquipmentInst",ListConnectedComp)
ListSize=ListConnectedComp->Size()
Attribute=""
If ListSize <> 0
{
    i = 1
    For i while i <=ListSize
       {
    CnxEQT_Inst = ListConnectedComp->GetItem(i)
    Let  str(String)
    str = CnxEQT_Inst.Name
        If (CnxEQT_Inst->IsASortOf("EnsLogicalEquipmentInst"))
        {
            Attribute=str
               }
    }
}
else Attribute="Not Connected"
    
Notify("ConnectedEQTListSize : ",  ListSize)    
Notify("ConnectedEQTList : ", ListConnectedComp)

 

Navigate on Piping network 

  • A new function to List Connected Component Instances from the Input Instance connected through Piping Ports
  • ListPipingConnectedComponents (iPLMInstance: PLMCoreInstance, iComponentType: String, oListOfComponents: out List): Integer
/* Rule  created by HTI2 20/01/02 */
// Equipment : EnsLogicalEquipmentInst 
Let  strInput(String)
Let ConnectedInstance(PLMCoreInstance)
let ListConnectedComp(LIST)
Let nConnected = 0
Let j = 1

strInput = Equipment.Name
Message(strInput) 

ListPipingConnectedComponents(Equipment, "RFLVPMLogicalInstance", ListConnectedComp)

nConnected =ListConnectedComp->Size()

for j while j<=nConnected
{
    ConnectedInstance = ListConnectedComp->GetItem(j)
    Let  str(String)
    str = ConnectedInstance.Name    
    Message(str) 
}