Plate Thickness Material Grade - Intergraph Smart 3D - Help - Hexagon

Intergraph Smart 3D Catalog

Language
English
Product
Intergraph Smart 3D
Subproduct
Catalog
Search by Category
Help
Smart 3D Version
13

Name: Plate Thickness Material Grade
Description:
Type: SQL
Is Recursive: No
Conditional Formatting: No
Design Time Prog ID: SP3DLabelFormatDesigner.RTFLabel
Run Time Prog ID: SP3DLabelsFormat.FormatLabel
Returned Properties: Thickness

SQL Query:
set @oid = ?

select
coalesce
(
mat_1.MaterialGrade,
mat_2.MaterialGrade,
mat_3.MaterialGrade,
'none'
) as Material,
coalesce (pd_1.Thickness, pd_2.Thickness, pd_3.Thickness) as Thickness
from JPlate as p

-- Find the parent of the plate and the parent's parent for obtaining
-- values that do not exist on the plate. This will be the case on
-- leaf plates for example.
left join XShpStrDesignHierarchy as ssdh_1
on ssdh_1.oidDestination = p.oid
left join XShpStrDesignHierarchy as ssdh_2
on ssdh_2.oidDestination = ssdh_1.oidOrigin

-- Get the dimensions of the plate
left join XPlateHasDimensions as phd_1
on phd_1.OidDestination = p.oid
left join JDPlateDimensions as pd_1
on pd_1.Oid = phd_1.OidOrigin

-- In the case that the plate does not have dimensions, get the dimensions
-- of its parent plate.
left join XPlateHasDimensions as phd_2
on phd_2.OidDestination = ssdh_1.oidOrigin
left join JDPlateDimensions as pd_2
on pd_2.Oid = phd_2.OidOrigin

-- Go up one more level if necessary to get a plate with dimensions on it.
left join XPlateHasDimensions as phd_3
on phd_3.OidDestination = ssdh_2.oidOrigin
left join JDPlateDimensions as pd_3
on pd_3.Oid = phd_3.OidOrigin

-- Check Material
left join XSystemHasMaterial hasMat_1
on hasMat_1.oidDestination = p.oid
left join JDMaterial mat_1
on mat_1.oid = hasMat_1.oidOrigin

left join XSystemHasMaterial hasMat_2
on hasMat_2.oidDestination = ssdh_1.oidOrigin
left join JDMaterial mat_2
on mat_2.oid = hasMat_2.oidOrigin

left join XSystemHasMaterial hasMat_3
on hasMat_3.oidDestination = ssdh_2.oidOrigin
left join JDMaterial mat_3
on mat_3.oid = hasMat_3.oidOrigin
-- Specify the plate of interest.
where p.OID = @oid