Opening Rules

The action rule enables you to create an opening with predefined types.

This page discusses:

See Also
Naming Rules
Profile Rules
Weld Rules

General Information

This action rule is invoked when you click Update IPM or Synchronization.

Input Objects

Input objects must be of the following type:

Parameters correspond to the context object.

Example

The following example shows how to determine the opening type. You can use this example to make another script in the action rule.

let Process(ElementaryEndItem)
let SDD_Opening(SddOpening)
set Process = Parameters.GetAttributeObject("ProcessItem")
set SDD_Opening = Parameters.GetAttributeObject("SddOpening")

Let ProcessOutput(VPMReference)
Let SDDObject(VPMReference)
Let SDD_ProdMember(Structure_Member)
Let SDD_ProdStiffener(Structure_Stiffener)
Let SDD_ProdPlate(Structure_Plate)
Let SDD_ProdStiffenerOnFreeEdge(Structure_StiffenerOnFreeEdge)
Let SDD_ProdPanel(Structure_Panel)

Set ProcessOutput = Process.GetProcessOutput()
Set SDDObject = ProcessOutput.GetStructureDesignObject()
Set SDD_ProdMember = SDDObject
Set SDD_ProdStiffener = SDDObject
Set SDD_ProdPlate = SDDObject
Set SDD_ProdStiffenerOnFreeEdge = SDDObject
Set SDD_ProdPanel = SDDObject

/* output value : Set default to NONE*/
let OpeningPrepType(String)
OpeningPrepType = "NONE"

if(NULL <> SDD_ProdMember)
{   
    let strMemberCategory(String)
    set strMemberCategory = SDD_ProdMember.V_StrCategory
    let StrMemberMaterial(String)
    set StrMemberMaterial = SDD_ProdMember.V_StrMaterial
    if(strMemberCategory == "Member" OR strMemberCategory == "Beam" OR strMemberCategory == "Column" )
    {       
        let StrCutOutType(String)
        set StrCutOutType = SDD_Opening.CutOutType
        let StrOpeningCategory(String)
                set StrOpeningCategory = SDD_Opening.Category
        
        if((StrMemberMaterial.SearchPattern("Steel") == "Steel") OR (StrMemberMaterial.SearchPattern("STEEL") == "STEEL"))
        {
            if(StrCutOutType == "catStrOpeningOutputProfile" and StrOpeningCategory == "SddOpening")
            {
                OpeningPrepType = "MARKED"              
            }
            else if(StrCutOutType == "catStrOpeningStandard" and StrOpeningCategory == "LighteningHole")                
            {   
                let StrContourType(String)
                set StrContourType = SDD_Opening.ContourType
                if(StrContourType == "Str_Rect")
                 {
                    OpeningPrepType = "CUT"
                }
                else if(StrContourType == "Str_Round")
                {
                    OpeningPrepType = "MARKED"
                }
            }
        }
    }           
}
else if(NULL <> SDD_ProdStiffener)
{   
    let strStiffenerCategory(String)
    set strStiffenerCategory = SDD_ProdStiffener.V_StrCategory
    let StrStiffenerMaterial(String)
    set StrStiffenerMaterial= SDD_ProdStiffener.V_StrMaterial
    if(strStiffenerCategory == "Stiffener" OR strStiffenerCategory == "Deck Stiffener" 
             OR strStiffenerCategory == "Deck Longitudinal Stiffener" OR strStiffenerCategory == "Deck Transverse Stiffener")
    {       
        let StrCutOutType(String)
        set StrCutOutType = SDD_Opening.CutOutType
        let StrOpeningCategory(String)
                set StrOpeningCategory = SDD_Opening.Category
        
        if((StrStiffenerMaterial.SearchPattern("Steel") == "Steel") OR (StrStiffenerMaterial.SearchPattern("STEEL") == "STEEL"))
        {   
            if(StrCutOutType == "catStrOpeningOutputProfile" and StrOpeningCategory == "SddOpening")
            {
                OpeningPrepType = "MARKED"              
            }
            else if(StrCutOutType == "catStrOpeningStandard" and StrOpeningCategory == "LighteningHole")                
            {
                let StrContourType(String)
                set StrContourType = SDD_Opening.ContourType
                if(StrContourType == "Str_Rect")
                 {
                    OpeningPrepType = "CUT"
                }
                else if(StrContourType == "Str_Round")
                {
                    OpeningPrepType = "MARKED"
                }
            }
        }
    }
}
else if(NULL <> SDD_ProdPlate)
{
    let StrPlateMaterial(String)
    set StrPlateMaterial= SDD_ProdPlate.V_StrMaterial
        if((StrPlateMaterial.SearchPattern("Steel") == "Steel") OR (StrPlateMaterial.SearchPattern("STEEL") == "STEEL"))
    {
            OpeningPrepType = "MARKED"
    } 
}
else if(NULL <> SDD_ProdStiffenerOnFreeEdge)
{
    let StrSFEMaterial(String)
    set StrSFEMaterial= SDD_ProdStiffenerOnFreeEdge.V_StrMaterial
        if((StrSFEMaterial.SearchPattern("Steel") == "Steel") OR (StrSFEMaterial.SearchPattern("STEEL") == "STEEL"))
    {
            OpeningPrepType = "MARKED"
    }      
}
else if(NULL <> SDD_ProdPanel)
{
    let StrPanelMaterial(String)
    set StrPanelMaterial= SDD_ProdPanel.V_StrMaterial
        if((StrPanelMaterial.SearchPattern("Steel") == "Steel") OR (StrPanelMaterial.SearchPattern("STEEL") == "STEEL"))
    {
            OpeningPrepType = "MARKED"
    }      
}
Parameters.SetAttributeString("oOpeningPrepType", OpeningPrepType)