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

Introduction

Usage : For Pipes, duct, tray, rigid & flexible

Allows to decide which attribute will be copy or not from the reference object in catalog

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

BL to propagate attribute from Reference Pipe

// ThisObject, the object on which the rule is acting, is VPMReference.

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)

Data 3DXML