EKL - BL to Get Replace Information in Component Groups

Introduction

Usage : involved when placing components group with "replace" operation when using the other BR  the Schematic_ComputeOptionsForComponentGroup.

In this case it allows to manage the replacement information during component group replacement.

Datasetup Resource Set : 

  • Diagram Resource

Datasetup Resource : Rule to Get Replace Information in Component Groups

 

Rule Example 1

Description

 

Rule

let ListOfOccurrencesToBeReplaced(LIST)
let ListOfListOfPorts(LIST)
let ListOfListOfCompatibleOccurrences(LIST)
let OutputListOfFilteredOccr(LIST)
let OutputListOfListOfPOrts(List)

set ListOfOccurrencesToBeReplaced = Parameters.GetAttributeObject("Input_ListOfOccurrencesToBeReplaced")

set ListOfListOfPorts = Parameters.GetAttributeObject("Input_List_ListOfPorts")
set ListOfListOfCompatibleOccurrences = Parameters.GetAttributeObject("Input_List_ListOfCompatibleOccurrences")

Let nOccurSize = 0
Let nPortListOfListSize = 0
Let nCompListOfListSize = 0 
set nOccurSize = ListOfOccurrencesToBeReplaced->Size()
set nPortListOfListSize = ListOfListOfPorts->Size()
set nCompListOfListSize = ListOfListOfCompatibleOccurrences->Size()

Let idx = 1
for idx while idx <= nOccurSize
{
	Let InputOccurObject(LogicalOccurrence)
	Let InputRefObject(RFLVPMLogicalReference)	
	Let ListOfCompatibleOccurrences(LIST)	
	Let ListOfPorts(LIST)
	Let sDescOfInputObject(String)
	Let nCompOccSizeList = 0 
	
	set InputOccurObject = ListOfOccurrencesToBeReplaced->GetItem(idx)	
	set ListOfCompatibleOccurrences = ListOfListOfCompatibleOccurrences.GetItem(idx)
	set ListOfPorts = ListOfListOfPorts.GetItem(idx)
	set InputRefObject = InputOccurObject.Reference
	set sDescOfInputObject = InputRefObject.V_description	
	set nCompOccSizeList = ListOfCompatibleOccurrences->Size()
	
	Let idxOccr =1
	for idxOccr while idxOccr <= nCompOccSizeList
	{
		Let OccurObject(LogicalOccurrence)
		Let InstObject(RFLVPMLogicalInstance)
		Let sInstanceDescOfCompatibleObject(String)
		
		set OccurObject = ListOfCompatibleOccurrences.GetItem(idxOccr)
		set InstObject = OccurObject.Instance
		set sInstanceDescOfCompatibleObject = InstObject.V_description
		
		if( sDescOfInputObject == sInstanceDescOfCompatibleObject)
		{
			OutputListOfFilteredOccr.Append(OccurObject)	
			break			
		}		
	}	
}

Parameters.SetAttributeObject("Output_ListOfFilteredOccurrences", OutputListOfFilteredOccr)
Parameters.SetAttributeObject("Output_List_ListOfPorts", OutputListOfListOfPOrts)

3DXML