EKL - Compute the list of attributes to copy from route reference

Introduction

Usage :

By default when routing a pipe , the attribute value of the new pipe are copied from the selected Reference pipe. Also , only few attributes are concerns

The rule allows to control which attribute must be copied or not from the reference pipe including custo attributes. (note piping main attributes will not be concern by the rules and will be always copied from the reference pipe  

Datasetup Resource Set : 

  • Piping/Tubing Specification Resources
  • HVAC Specification Resources
  • Raceway Specification Resources

Datasetup Resource : Compute the list of attributes to copy from route reference

 

Rule Example 1

Description

You define into the rules, the attributes for which you don't want to propagate the value.

In this example we exclude only the "Version comment" attribute

Rule

Notify("Business Rule: Manage Attributes On Route Reference")
Notify("Discipline: Piping/Tubing")

Let pRigidRoute(Piping_Rigid_Pipe)
Let iListOfAttibutes(List)
Let oListOfAttributesToSkip(List)
Let nbAttributes(Integer)
Let index(Integer)

/* Check for Rigid or Flexible Route */
Set pRigidRoute = ThisObject
if(NULL <> pRigidRoute)
{
  /* This object is a Rigid Pipe */
  Notify("Object Type: Rigid Pipe")
}
else
{
  /* This object is a Flexible Pipe */
  Notify("Object Type: Flexible Pipe")
}

/* Get the List of attributes from the input of Parameter */
Set iListOfAttibutes = Parameters.GetAttributeObject("ListOfAttributes")

/* Show the List of attributes on Notification panel */
Notify("List of editable attributes from this object type")
index = 1
nbAttributes = iListOfAttibutes.Size()
for index while index <= nbAttributes
{
  Notify(iListOfAttibutes[index])
}

/* @User: Please define here the List of attributes to skip copying from route reference */
//oListOfAttributesToSkip.Append("V_description")
oListOfAttributesToSkip.Append("V_versionComment")
oListOfAttributesToSkip.Append("V_Standard")  // This attribute will be ignored because it is a piping attribute, so not editable

/* Set the List of Attribtues to Skip as the output of Parameter */
Parameters.SetAttributeObject("ListOfAttributesToSkip",oListOfAttributesToSkip)