The Multiport Valve Operator Data node (the MultiportValveOperatorData sheet in the Bio Pharm Catalog.xls workbook) defines the operator data for each port of a multiport valve. This information is used when the Multiport Valve Op Req in the Piping Commodity Material Control Data specifies that multiport operators are required.
Contractor Commodity Code (Required)
Enter the contractor commodity code, which is the commodity code that is used during the design phase.
The Contractor Commodity Code and the Client Commodity Code properties both must be size-independent or size-dependent. One cannot be size-dependent
and the other one be size-independent. In addition, both must include a schedule or
neither must include a schedule.
First Size From (Required)
Defines the lower bound of the largest nominal piping diameter for which this operator applies.
First Size To (Required)
Defines the upper bound of the largest nominal piping diameters for which this operator applies.
First Size Units (Required)
Specifies the units for the First Size From and First Size To columns. For example, you could enter in for inches or mm for millimeters.
Multisize Option (Conditionally Required)
Type a string to represent an optional piping commodity selection for multi-sized fittings when the first size and second size are inadequate.
For example, if two additional sizes (2" and 1") are required in addition to a first size of 6" and a second size of 4", the string that would represent the sizes would be 6x4x2x1. The software interprets the string to determine the second size and the number of sizes in addition to the first size and second size. The unit of measure for the first size, defined in the First Size Units column, is used for the string.
Port Number (Required)
Specify the port number on the valve for which the valve operator or actuator applies.
This value is the port number in reference to the symbol. For example, in most manufacturers'
catalogs a 5- way diverter valve has the outlet ports numbered 1 through 5. However,
most symbols designate 1 as the inlet port. In which case, the outlet ports would
be 2 through 6. The port number that you define here is relative to the symbol port
numbers. For more information about symbols, refer to the Smart 3D Reference Data Guide.
Second Size From (Conditionally Required)
Defines the lower bound of the next largest nominal piping diameter for which this operator applies.
Second Size To (Conditionally Required)
Defines the upper bound of the next largest nominal piping diameters for which this operator applies.
Second Size Units (Conditionally Required)
Specifies the units for the Second Size From and Second Size To columns. For example, you could enter in for inches or mm for millimeters.
Valve Operator Geometric Ind Std (Optional)
Enter the code that represents the source used in the preparation of the catalog data applicable to the valve operator. Valid codes are listed in the AllCodeLists.xls workbook on the GeometricIndustryStandard sheet in the Codelist Number column.
Valve Operator Number (Required)
Type the unique identification for the valve operator as found in the catalog data and the material control data.
Valve Operator Type (Required)
Enter the code that represents the specific type of valve operator, actuator, or appurtenance. Valid codes are listed in the AllCodeLists.xls workbook on the ValveOperatorType sheet in the Codelist Number column.
You can specify valve accessories using the Port Number and Valve Operator Type. The Port Number value represents the valve port number for which the valve operator or actuator applies.
The valve port number can also be used to specify one or more valve accessories for
each valve operator or valve actuator. Because the port number must uniquely identify
the mounting location of the applicable valve accessory, the port number for a valve
accessory must be specified using the following formula:
Accessory Port Number = (Operator/actuator Port Number * 100) + mounting location number
Where the mounting location is specified for each valve operator or valve actuator. The mounting location number is a value of 1 or 2 as indicated by the following figure:
In the following example, the gearbox is the operator and is set to 1. The chainwheel is the accessory, so its value is set to 101 according to the formula.
Valve Symbol
The following methods are available to support valve symbols.
-
GetValveOperatorsForPorts - Retrieves the valveoperator collection for multi-operator cases.
-
GetValveOperatorPartPerPort - Retrieves the valveoperator part given the port number for multi-operator cases.
-
SetMultiPortValveAccColl - Sets the partnumber on the specified port number for multi-operator cases.
The following example shows the valve symbol:
'****************************************************************************************************
'Operator
'****************************************************************************************************
'Insert your code for output 7 (Valve Operator)
Dim oSymbolHelper As IJSymbolGeometryHelper
Set oSymbolHelper = New SP3DSymbolHelper.SymbolServices
oSymbolHelper.OutputCollection = m_OutputColl
Dim oDirX As IJDVector
Dim oDirY As IJDVector
Dim oDirZ As IJDVector
Set oDirX = New DVector
Set oDirY = New DVector
Set oDirZ = New DVector
oDirX.Set Cos(parHandwheelAngle), 0, Sin(parHandwheelAngle)
oDirY.Set 0, 1, 0
oDirZ.Set -Sin(parHandwheelAngle), 0, Cos(parHandwheelAngle)
Dim oOperatorPart As IJDPart
Dim oOperatorOcc As IJPartOcc
Dim oVlvPart As GSCADRefDataPipingSpec.IJValveOperator
If Not oPipeComponent Is Nothing Then
On Error Resume Next
If oPipeComponent.GetMultiPortValveOperatorRequirement = 5 Then
On Error GoTo ErrorLabel
Set oOperatorPart = oPipeComponent.GetValveOperatorPart
ElseIf oPipeComponent.GetMultiPortValveOperatorRequirement = 10 Then
On Error GoTo ErrorLabel
Dim oMultiValCol As IJMultiPortValveAccCol
Dim strPartNumber As String
Dim lPortNumber As Long
oPipeComponent.GetValveOperatorsForPorts oMultiValCol
If Not oMultiValCol Is Nothing Then
lPortNumber = 1
strPartNumber = oPartFclt.PartNumber
Set oOperatorPart = oMultiValCol.GetValveOperatorPartPerPort(lPortNumber)
If Not oOperatorPart Is Nothing Then
Set oVlvPart = oOperatorPart
Call oVlvPart.SetMultiPortValveAccCollInfo(lPortNumber, strPartNumber)
If Not oOperatorPart Is Nothing Then
Set OpOrigin = New DPosition
OpOrigin.Set 0, 0, 0
oDirX.Set Cos(parHandwheelAngle), 0, Sin(parHandwheelAngle)
oDirY.Set 0, -1, 0
oDirZ.Set Sin(parHandwheelAngle), 0, -Cos(parHandwheelAngle)
Set oOperatorOcc = oSymbolHelper.CreateChildPartOcc("ValveOperator", oOperatorPart, OpOrigin, oDirX, oDirY, oDirZ)
Set oIJDEditJDArgument = GetIJDEditJDArgument(oOperatorOcc)
'Offset from Valve Center line
UpdateOperatorAttributes oOperatorOcc, "IJUAOffsetFrmValCen", _
"OffsetFrmValCen", parOffsetfrmValCen, oIJDEditJDArgument
Set oIJDInputsArg = oOperatorOcc
oIJDInputsArg.Update
End If
Set oVlvPart = Nothing
End If
lPortNumber = 2
strPartNumber = oPartFclt.PartNumber
Set oOperatorPart = oMultiValCol.GetValveOperatorPartPerPort(lPortNumber)
If Not oOperatorPart Is Nothing Then
Set oVlvPart = oOperatorPart
Call oVlvPart.SetMultiPortValveAccCollInfo(lPortNumber, strPartNumber)
If Not oOperatorPart Is Nothing Then
Set OpOrigin = New DPosition
OpOrigin.Set 0, 0, 0
oDirX.Set Cos(parHandwheelAngle), 0, Sin(parHandwheelAngle)
oDirY.Set 0, 1, 0
oDirZ.Set -Sin(parHandwheelAngle), 0, Cos(parHandwheelAngle)
Set oOperatorOcc = oSymbolHelper.CreateChildPartOcc("ValveOperator1", oOperatorPart, OpOrigin, oDirX, oDirY, oDirZ)
Set oIJDEditJDArgument = GetIJDEditJDArgument(oOperatorOcc)
'Offset from Valve Center line
UpdateOperatorAttributes oOperatorOcc, "IJUAOffsetFrmValCen", _
"OffsetFrmValCen", parMotorOffsetfrmValCen, oIJDEditJDArgument
Set oIJDInputsArg = oOperatorOcc
oIJDInputsArg.Update
End If
Set oVlvPart = Nothing
End If
End If
End If
Valve Operator Symbol
The following method is available to support valve operator symbols.
-
GetMountingLocationsAndValveAccessories - Retrieves the mounting locations and valve accessory collection.
The following example shows the valve operator symbol:
' Insert your code for the Valve Accessory parts
Dim oVlvOpPart As IJValveOperator
Dim oAccessoryCol As IJDCollection
Dim aMountingLocations() As Long
Set oVlvOpPart = oPartFclt
On Error Resume Next
Call oVlvOpPart.GetMountingLocationsAndValveAccessories(aMountingLocations, oAccessoryCol)
'Set oVlvOpPart = Nothing
oSymbolHelper.OutputCollection = m_OutputColl
On Error Resume Next
Dim oOperatorOcc As IJPartOcc
Dim oOpPart As IJValveOperator
Dim i As Long
Dim lLocation As Long
If Not oVlvOpPart Is Nothing Then
On Error Resume Next
If Not oAccessoryCol Is Nothing Then
For i = 1 To oAccessoryCol.Size
lLocation = aMountingLocations(i)
' Insert your Code for Side Mounted Accessory
If lLocation = 1 Then
Set oOpPart = oAccessoryCol.Item(i)
OpOrigin.Set 0, parOffsetfromValveCenterLine + parActuatorHeight, 0
oDirX.Set 1, 0, 0
oDirY.Set 0, 1, 0
oDirZ.Set 0, 0, 1
Set oOperatorOcc = oSymbolHelper.CreateChildPartOcc("ValveAccessory1", oOpPart, OpOrigin, oDirX, oDirY, oDirZ)
Set oIJDEditJDArgument = GetIJDEditJDArgument(oOperatorOcc)
Set oOpPart = Nothing
Set oOperatorOcc = Nothing
End If
If lLocation = 2 Then
Set oOpPart = oAccessoryCol.Item(i)
OpOrigin.Set 0, parOffsetfromValveCenterLine + parAccessory2YOffset, 0
oDirX.Set 0, 1, 0
oDirY.Set Cos(parAngle), 0, Sin(parAngle)
oDirZ.Set Sin(parAngle), 0, -Cos(parAngle)
Set oOperatorOcc = oSymbolHelper.CreateChildPartOcc("ValveAccessory2", oOpPart, OpOrigin, oDirX, oDirY, oDirZ)
Set oIJDEditJDArgument = GetIJDEditJDArgument(oOperatorOcc)
Set oOpPart = Nothing
Set oOperatorOcc = Nothing
End If
Next i
End If
End If