EKL - Resize Respec involve BL to Propagate information

Introduction

Avaibility : 23xFD06LA – 24xFD03GA

Variable : LA_3DF_SizePropagateBR

Function : FUN130081

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

  • The user can write Business Rule to name or modify existing attribute the Piping/HVAC routes/parts as desired while using propagate size command and comply with spec command

Datasetup Resource Set : 

  • Logical To Physical Assistant Resources

Datasetup Resource : Perform pre / post process after modification action

 

Rule Example

BL to check if the route/part is parametric and name the route/part on the basis of their attributes

let List3DOccurrences(List)
let Object_Occurrence(ProductOccurrence)
let Object_Reference(VPMReference)
let Object_Instance(VPMinstance)
let Duct(HVAC_Rigid_Duct)
let Duct_Inst(HVAC_Rigid_Duct_Inst)
let HvaPart(HVAC_Part)
let preAction(Boolean)
let Height(String)
let Width(String)
let EquivalentDia(String)
let Standard(String)
set List3DOccurrences = Parameters.GetAttributeObject("ListInput3DFacet")                // get the list of physical occurrence
set preAction = Parameters.GetAttributeBoolean("IsPreAction")
if(preAction == FALSE)                                                                    // post action 
{
    for Object_Occurrence inside List3DOccurrences
    {
    
        if(Object_Occurrence <> NULL)
        {
            Trace(1, "Occurrence from list found", "ProductOccur")
            set Object_Reference = Object_Occurrence.Reference                            // getting reference from the occurrence
            set Object_Instance = Object_Occurrence.Instance                            // getting instance from the occurrence
            if(Object_Reference->IsASortOf("HVAC_Rigid_Duct"))
            {
                set Duct = Object_Reference
            }
            if(Object_Reference->IsASortOf("HVAC_Part"))
            {
                set HvaPart = Object_Reference
            }
            if(Object_Instance->IsASortOf("HVAC_Rigid_Duct_Inst"))
            {
                set Duct_Inst = Object_Instance
            }
            if(Duct <> NULL)
            {
                Trace(1, "hvac reference not found", "HvacRef")                            // type cast into hvac rigid duct
                if (Duct.V_InstanciationRule == "NewReference" and
                    Duct_Inst.V_ReferenceMode == "NewFrom")                                // condition true if parametric duct
                {
                    Trace(1, "hvac duct is parametric", "hvac parametric")
                    Height = Duct.V_Height
                    Width = Duct.V_Width
                    Duct.Name = "HVACDuct_" + Height + "_" + Width 
                }
            }
            if(HvaPart <> NULL)
            {
                Trace(1, "hvac reference not found", "HvacPart")                        // type cast into hvac rigid duct
                if (HvaPart.V_InstanciationRule == "NewReference")                        // condition true if parametric duct
                {
                    Trace(1, "hvac duct is parametric", "hvac parametric")
                    EquivalentDia = HvaPart.V_EquivalentDiameter
                    Standard = HvaPart.V_Standard
                    HvaPart.Name = "HVACPart_" + EquivalentDia + "_" + Standard 
                }
            }
        }
    }
}