Piping Assembly Isometric Business Rule (CAAAITACPipeLineCustomerData1)

An opening ID is an entry point used to customize business logic. The Piping Assembly Isometric business rule opening ID is used to list the piping spools in the interactive panel.

Note: For more information about customization by business rules, see Installation and Setup: Customize: Behavior: Data Setup: Customization by Business Rules.

This page discusses:

General Information

This opening ID is invoked when using the Piping Assembly Isometrics command.

In the interactive panel, the app displays up to five user defined properties. They can be properties of the Assembly Reference or Instance.

  • Properties such as: Block, Section, System.
  • Properties of the parts/pipes in the assembly like material.

Input Objects

Input objects must be of the following types:

  • ThisObject: FactType ProductOccurrence (=assembly occurrence)
  • Parameters corresponds to the context object.

Sample

The sample describes how to retrieve the Pipe Assembly data to be displayed in the launch panels. Use the sample to define the business rule in the resource set. As the input to the business rule is provided: VPMOccurrence of the Product.

/*------------------------------------------------------------------------------*/
/* Rule name: CAAAITACPipeLineCustomerData1                                     */
/*                                                                              */
/* Sample rule for retrieving the customer Fluidic data  to be displayed        */
/* in the launch panels. For pure information and Designer use only.            */
/* Any properties can be returned as seemed to be fit. The same order should be */
/* returned for each assembly though...                                         */
/*                                                                              */
/* Input Arguments                                                              */
/*    ThisObject  = FactType ProductOccurrence (pipe or assembly occurrence)    */
/*	  or                                                                        */
/*    thisObject  = FactType Feature ( MfgProcessOccurrence if pipe or assembly */
/*	  are manufacturing nodes )		  	                                        */
/*                                                                              */
/* Output Parameters                                                            */
/*    PropertyName1      = string, name of  1st property. E.g. Section          */
/*    PropertyValue1     = string, value of 1st property. E.g. 0412             */
/*    PropertyName2      = string, name of  2nd property. E.g. Block            */
/*    PropertyValue2     = string, value of 2nd property. E.g. 04               */
/*    PropertyName3      = string, name of  3rd property. E.g. Outfitting Stage */
/*    PropertyValue3     = string, value of 3rd property. E.g. Section          */
/*    PropertyName4      = string, name of  4th property. E.g. System           */
/*    PropertyValue4     = string, value of 4th property. E.g. Cooling Water    */
/*    PropertyName5      = string, name of  5th property. E.g. Material         */
/*    PropertyValue5     = string, value of 5th property. E.g. Carbon Steel     */
/*		...									   */
/*    PropertyName10      = string, name of  10th property.  		      */
/*    PropertyValue10     = string, value of 10th property. 			*/
/*                                                                              */
/*                                                                              */
/*    Data may be read from attributes on the assembly reference or instance or */
/*    dynamically retrieved from ENOVIA, or computed using                      */
/*    ProductOcc->QuerySpaces(NULL,1,....)                                      */
/*    or properties read from the pipes/fittings inside the Assembly.           */
/*------------------------------------------------------------------------------*/

Let AssyOcc(ProductOccurrence)
Let AssyRef(VPMReference)
Let AssyIns(VPMInstance)

/* Assy data */
Let strSection(String)
Let strBlock(String)
Let strSystem(String)
Let strConservation(String)
Let strMaterial(String)

/* initialize */
AssyOcc=NULL
AssyRef=NULL
AssyIns=NULL
strSection=""
strBlock  =""
strSystem=""
strConservation=""
strMaterial=""


/* ThisObject information */
Trace(1,"ThisObject : " + ThisObject.Name)

/* Get the Assy occurrence */
Set AssyOcc = ThisObject
Trace(1,"Assy Occurrence : " + AssyOcc.Name)

/* Get the Assy instance */
Set AssyIns = AssyOcc
Trace(1,"Assy Instance : " + AssyIns.Name)

/* Get the Assy reference */
Set AssyRef = AssyIns.Reference
Trace(1,"Assy Reference: " + AssyRef.Name)

/* Read the attributes from the Assy (sample, customer dependent) */
strSection=AssyIns.GetAttributeString("AITDesignUnit")
strBlock  =AssyIns.GetAttributeString("AITBlock")
strConservation=AssyRef.GetAttributeString("AITInside_Conservation")


/* Read the last modifiedDate */
Let modifiedDate(Date)
Set modifiedDate = Parameters->GetAttributeDate("ProductModifiedDate")
Let strDate(String)

strDate = DateFormat("%c",modifiedDate)

/* Reaf from manufacturing context*/

Let mbombNode(MfgProcessOccurrence)
set mbombNode = ThisObject
if (mbombNode <> NULL)
{
	// BR was executed in Delmia PPR context
	// we can query query a reference of MfgProcessOccurrence to determine if 
	// this node is a spool or assembly
	// if node is not needed we will return empty PropertyValues to exclude node from user intrface 
}

// Output the result back to the calling code
Parameters -> SetAttributeString("PropertyName1" , "Section")
Parameters -> SetAttributeString("PropertyName2" , "Block")
Parameters -> SetAttributeString("PropertyName3" , "Conservation")
Parameters -> SetAttributeString("PropertyName4" , "System")
Parameters -> SetAttributeString("PropertyName5" , "Material")

Parameters -> SetAttributeString("PropertyValue1" , strSection)
Parameters -> SetAttributeString("PropertyValue2" , strBlock)
Parameters -> SetAttributeString("PropertyValue3" , strConservation)
Parameters -> SetAttributeString("PropertyValue4" , strSystem)
Parameters -> SetAttributeString("PropertyValue5" , strMaterial)

/* end   */