SQL查询S3D模型中的变等级连接

最近有人问SQL查询出变等级的连接。经测试,示例如下:

select distinct t1.con1oid as conoid,

t1.part1name ,t1.part1oid,

t1.spec1name,t2.part2name,t2.spec2name,t2.part2oid from (select xx.oid as con1oid,

xasd.oid as part1oid, ni.ItemName as part1name,sd.SpecName as spec1name from JRteDistribConnection xx

join

 XRelConnectionAndPartOcc zx on zx.oidorigin = xx.oid

join JRtePathGenPart xasd on xasd.Oid = zx.OidDestination

join JNamedItem ni on ni.Oid = xasd.Oid

join YPartsToRunSpecification ss on ss.OidDestination = xasd.oid

join JDPipeSpec sd on sd.oid = ss.OidOrigin) t1

join (

select xx.oid as con2oid,

xasd.oid as part2oid, ni.ItemName as part2name,sd.SpecName as spec2name from JRteDistribConnection xx

join

 XRelConnectionAndPartOcc zx on zx.oidorigin = xx.oid

join JRtePathGenPart xasd on xasd.Oid = zx.OidDestination

join JNamedItem ni on ni.Oid = xasd.Oid

join YPartsToRunSpecification ss on ss.OidDestination = xasd.oid

join JDPipeSpec sd on sd.oid = ss.OidOrigin) t2 on t1.con1oid = t2.con2oid

where t1.part1oid <> t2.part2oid and t1.spec1name <> t2.spec2name

在上面的查询过程中,通过connection跳转至piping parts,因为有两个parts,因此做了一个二次join,并去重。目前结果还是有一些重复,但是不影响使用。通过结果,可以看到变等级处的管件名称。比如,weldolet-0601等。

如下图,相关变等级的连接如下,1C0031的主管上面插入了2C0032等级的Weldolet。

相关应用场景,可以通过相关连接判断出设计以及模型的质量。

数字化工程设计公众号二维码
原文链接:查看原文  文章来源:数字化工程设计
🔗 分享 0

上5篇 more...

下5篇 more...