刘逸飞
(中海油石化工程有限公司,山东 济南 250101)
Intergraph Smart3D(简称S3D)是新一代数字化工厂设计系统,近年来广泛使用于化工行业工程设计中。S3D具有集成化的建模与图表功能、灵活可变的树状结构和可定制的对象属性,可以满足工程设计中各种需求及应用扩展[1]。
图1 工作流程简图
ISO图是化工设计中一种重要的设计文件。设计要求每根管线的ISO图应有独立的图号,并需要编制ISO图索引。根据S3D的出图机理,并结合项目需求优化了工作流程,并利用VB.net对S3D进行二次开发,可实现批量导入导出管线图号及自动编制ISO图索引,优化后的工作流程见图1。
为pipeline添加属性的操作,可在建模之前或之后进行。具体操作如下:
(1)编辑CustomInterface表格文件,增加DWGNumber属性。见图2和图3。
图2 添加属性1
图3 添加属性2
(2)使用Bulkload工具,用AMD方式导入CustomInterface表格文件。导入完成后,在pipeline的属性对话框中即可看到添加的DWGNumber属性,见图 4。
图4 查看或修改Pipeline属性
使用VB.net对S3D二次开发的程序,可查看并导出项目中的管线清单表格文件,见图 5。清单可导出到Excel中,方便将管线对应的图号填入清单。
图5 查看pipeline清单
获取管线清单的功能,可使用以下代码实现:
Dim oPropertyFilter As New Filter
Dim oProperty As PropertyValueString
oProperty = New PropertyValueString("IJNamedItem", "Name", "")
oPropertyFilter.Definition.AddWhereProperty(oProperty,PropertyComparisonOperators.NE)
oPropertyFilter.Definition.AddObjectType("SystemsPipelineSystems")
oPipelines = oPropertyFilter.Apply()
For i = 0 To oPipelines.Count - 1
oPipeline = CType(oPipelines.Item(i), Pipeline)
DataGridView1.Rows.Add()
DataGridView1.Rows(i).Cells(0).Value = i + 1
DataGridView1.Rows(i).Cells(1).Value = oPipeline.SystemParent.ToString()
DataGridView1.Rows(i).Cells(2).Value = oPipeline.ToString()
DataGridView1.Rows(i).Cells(3).Value = oPipeline.GetPropertyValue("IJUAPipeline", "DWGNumber").ToString
Next
利用二次开发程序可将带有图号信息的管线清单表格文件批量导入到项目数据库中,导入的结果可随机查看,见图 6。
图6 导入pipeline图号并查看清单
因项目要求不同分区的同号管线,要有不同的ISO图图号,所以导入图号过程中,要同时匹配pipeline和piping system属性值。导入管线图号的功能,可使用以下代码实现:
Dim oPropertyFilter As New Filter, oProperty As PropertyValueString
oProperty = New PropertyValueString("IJNamedItem", "Name", strPipelineName)
oPropertyFilter.Definition.AddWhereProperty(oProperty, PropertyComparisonOperators.EQ)
oPropertyFilter.Definition.AddObjectType("SystemsPipelineSystems")
oPipelines = oPropertyFilter.Apply()
For i = 0 To oPipelines.Count - 1
oPipeline = CType(oPipelines.Item(i), Pipeline)
If oPipeline.SystemParent.ToString() = strParentName Then
oPipeline.SetPropertyValue(strSequenceNo, "IJUAPipeline","DWGNumber")
MiddleServiceProvider.TransactionMgr.Commit("")
End If
Next
需要将图号写在ISO图上。先为DWGNumber属性创建LABEL,见图7。
图7 新建图号label
再在ISO图标题栏制定位置显示该LABEL,见图 8。
图8 定制ISO出图格式
生成的ISO图可另存为XML文件和PCF文件等均包含管线信息。本工作流程选择读取XML文件,XML文件包括“HEADER”等几个段落。在“HEADER”段落中,包含所需的属性值,见表 1。利用LINQ TO XML技术开发的程序,可实现批量获取其中的图号、页数等属性值,编制索引文件。
表 1 XML文件相关节点
利用二次开发的工具和优化的工作流程,可以快速实现ISO图填写图号和编制ISO图索引的目的,可大大减少建模外的简单重复劳动,提高设计质量和工作效率。
[1] 黄建芳.Smart 3D基于PCF二次开发报表的实现[J].中国勘察设计,2016(6):99-102.