胡 敏
(中船第九设计研究院工程有限公司,上海 200063)
勘察设计企业的特点决定了工程设计需要密切的配合和协作。随着信息时代的到来以及中国加入WTO,国内勘察设计企业面临着来自国际竞争和信息化的双重挑战。中国勘察设计企业能否适应未来,取决于它是否具备国际一流水平的竞争实力,即能否提供最好的服务、最快的速度和最低的成本。而要快速获得这样的能力,仅靠企业现有资源和工作方式是远远不够的,而应以信息技术为支撑,广泛开展跨专业、跨企业、跨地区,乃至跨国等多种形式的协同设计。
我院是以设计咨询为主营业务的公司,主要解决的是项目设计过程管理难题,而协同设计主要想解决的管理难题是以项目组为单位的一线设计人员设计过程的协同,该系统的主要使用对象为项目组,以提高设计质量和技术为首要目的,其次是通过优化设计流程来提高项目的管理水平,因此其他管理部门都是配合项目组开展协同设计管理工作。公司经过详细的调研和考察,并充分考虑了自身的业务特点后,最终选择了Bentley公司的ProjectWise(简称PW)产品作为协同平台。但是ProjectWise是一个通用的平台软件,必须经过二次开发,才能满足公司协同设计的需求。
能够在网络环境中实现分布式文档管理,将分布在异地的文档集中在一个统一的环境中管理。以发布的方式实现文件的共享,确保文档的安全性、唯一性、可控制性及可追溯性。
对专业内和专业间相互引用的文件关系进行独立于AutoCAD外部参照功能外的全面管理。即使引用文件路径变化,系统也会依然保证文件之间的引用关系正常,可方便地进行引用管理的建立和拆解操作。
系统提供了完备的版本管理体系,同时引入了文件的检入/检出概念,确保同一时间同一文件只有一人可以对文件进行写操作。另外文档“历史纪录”功能,能够纪录文件从创建开始的所有活动的动作、人员及时间(如创建、删除,检入/检出,状态改变,复制移动等)。
PW提供了智能的文档查询功能,帮助我院速搜寻出目标文件。传统的树状目录结构,最符合工程信息的分类查询。矩阵式的逻辑目录结构,能让我们按不同的职能需求灵活组织、分类文档。
包括打印与发布管理、数字安全性管理、标准化管理、分布式存储管理和工程信息全生命周期的管理。
PW是提供了一个设计文件资料的统一管理的平台,设计文件都上传至服务器,工程项目中的所有图纸资料都集中储存在数据库服务器,并且有安全、完善的共享管理和用户权限管理,由服务器实现图纸的版本管理与控制,这样就为协同设计提供了平台基础,但作为设计企业中的协同平台,有些方面还是需要二次开发改造。主要是体现在以下方面:
1)与AutoCAD集成方面尚有不足,虽然PW也提供了在AutoCAD中的插件,但是整体还是完全独立于绘图平台,而对于首要任务就是绘图的设计人员来说,更希望所有工作都在AutoCAD中完成。
2)授权机制工作量过大。由于国内的设计企业,项目数量多,而参与每个项目的专业也多,PW虽然提供灵活的授权机制,但是给如此众多的项目设置权限,并要随着设计人员调整而调整,工作量是巨大的。
3)与其他业务系统的集成。经过这些年来,中船九院也开发了不少应用系统,比如生产管理系统,人事系统等,如果协同平台不能与这些业务系统集成,而达到数据共享,那这个平台就变成一个孤立的平台,生命力也有限。
4)一些系统功能进一步完善和改造才能适应中船九院协同设计的需要,比如参考关系维护,需要进一步完善。设校审流程和提资流程需要重新定制开发。
5)其它个性化需求。比如提资、归档和项目修改通知单管理等业务需求,PW平台中没有现成的功能,这些就需要二次开发。
1)实现与AutoCAD的无缝集成;
2)实现项目创建、授权和权限维护自动化;
3)实现与公司各个业务系统集成;
4)实现参考关系自动维护和流程管理;
5)实现其它个性化需求。
通过协同设计平台定制开发,为设计人员搭建一个在AutoCAD中的工作平台,以外部参照为技术基点,核心解决设计过程中的“错、漏、碰、缺”问题。其实质是为企业和设计人员搭建一个将“设计”与“管理”进行了一体化紧密集成的、易于推行的且真正意义上的“协同设计平台”。
本次定制开发是基于AutoCAD 2008版本,主要的开发工具包括 ObjectARX、PW SDK和VS2005。
Autocad常用的二次开发工具包括:C/C++的ObjectARX、VB/VBA的 ActiveX开发以及 AutoLISP/VisualLISP开发工具。这三种开发工具中,ObjectARX拥有对AutoCAD最深入的控制能力,能够提供最多类型的窗体。使用ARX可以向Auto-CAD注册自己的命令,用户运行你的程序时无需了解关于AutoCAD更多的知识。ObjectARX应用程序不再是一个独立的进程,而是一个动态链接库,它和AutoCAD处于同一地址空间,能够直接利用AutoCAD的内核代码,直接访问 AutoCAD数据库、图形系统及几何造型,在运行期间能够扩展AutoCAD具有的类及其功能。此外开发 ARX应用程序还可以充分利用Windows资源,MFC基本类库和Visual C++可视化集成开发环境(IDE),能方便、高效地设计具有Windows风格的CAD应用程序。
利用ARX开发的程序在AutoCAD中的运行效率与AutoCAD的协调程度,以及它的灵活性是其他开发方法所无法比拟的。但这也包括了ObjectARX的致命弱点,那就是它很容易导致一些严重的错误从而使得AutoCAD崩溃,甚至导致死机。这些都要求ObjectARX的开发人员养成一个良好的编程习惯,在ARX代码中加入严谨的错误检查,尽量确保在发现异常后能及时返回,避免发生严重错误。
在代码编写过程,综合使用了错误检查、C++和结构化异常处理方法以确保系统的强鲁棒性。
ProjectWise提供了用户开发环境,其所提供的APIs均为Win32 DLLs。所有的ProjectWise APIs均使用C的链接规则;所有的API函数均以名称输出;调用时使用WinAPI(Pascal)的调用约定。所有的ProjectWise APIs都是Unicode的,只能用在Uni-code的项目中。SDK包含完整的客户端API库(遵循C语言调用规范)、文档和实例代码。使用ProjectWise API,可以通过以下方法来创建、删除、替换或扩展ProjectWise客户端的功能。
ProjectWise是一个典型的三层结构应用程序。其最基本的构成如下图1所示。
图1 ProjectWise结构
我们的目标就是利用ObjectARX开发工具,开发嵌入Autocad的动态链接库,通过ProjectWise APIs来访问ProjectWise数据库及存储在文件存储区的文档。并定制了系统的操作菜单,只提供了简单常用的命令,去除了一些使用频率低或者复杂的命令,添加一些自定义的命令,设计人员能快速掌握并使用。
界面如图2所示,界面分为三个部分。左边是项目树,列出的是登录者参与的所有项目。右上是文件区,列出的是目录下的所有文件,点右键就能对文件进行各种操作。右下是文件详区,列出的是文件的版本信息、项目的人员信息、提资消息、参照关系、预览和操作日志。
图2 系统主界面
系统架构图见图3所示。
图3 系统架构图
1)实现与CAD绘图平台集成
ProjectWise平台是个通用的平台,所以要适当改造让设计人员更容易接受,考虑把ProjectWise嵌入到CAD平台当中,把一些常用的功能都整理出来,集成到CAD界面上,设计人员就可以不改变工作环境,不脱离绘图平台的情况下而集中到协同平台中,从而有利于协同设计项目的整体推进[1]。
2)实现与公司业务系统集成
协同管理系统的项目信息来自公司生产管理系统(MIS),项目信息主要包括项目名称、甲方名称、开工日期、项目经理等信息。实现与生产管理系统信息同步,公司每安排一个项目,就在协同管理系统中自动开设一个项目,建立对应的目录结构,并根据生产计划中的人员安排来设置协同管理系统中的人员权限。实现项目信息和人员权限的维护自动化,确保项目与人员信息的唯一性。
协同管理系统的人员和部门信息来自公司人事系统。人员信息主要包括姓名、部门以及资质情况,及时同步人事系统中人员增减,人员调动以及部门拆分、变更等信息,实现人员和部门信息维护的自动化。
设计项目过程管理是协同设计中的一个重要管理内容。协同管理系统的流程信息来自公司设计项目流程管理系统,根据流程系统中的节点进度调整协同管理系统中人员对文档的操作权限,在平台中实现设计、校对、审核和审定的流程和提资流程管理。通过改进我们现有的业务流程,重建更适宜公司管理的设计业务流程。
协同管理系统可以与公司办公自动化系统实现集成,从而把项目的各种统计信息等发布到公司内网上,方便员工查阅与交流。
3)实现与出图系统集成
设计人员提交打印申请后,系统后台自动加载电子签名、条形码,并自动生成打印文件进行打印;打印管理人员进行审核后,自动打印出图,并保证最后电子版本和纸质的一致性及有效性。
4)实现与电子签名系统集成
电子签名配合流程使用,通过现有成熟产品的二次开发与协同管理系统的集成,实现了真正意义的数字签名技术。
5)实现与即时通讯系统集成
在系统提资或者归档等系统操作时,自动提醒用户,给设计人员提供了更方便的沟通方式,增强团队的信息共享和沟通能力,提高工作效率[2]。
1)图纸比对
系统提供的智能比较工具,深入比较CAD对象的属性差异,并分别用不同的颜色直观显示出来,可以帮助设计人员、审图人员快速准确的了解版本之间的差异,过程记录帮助有序设计。
2)非标准图层转换
可以将图纸中已存在的非标准的图层转换到标准图层,同时移动图层中的所有实体到标准图层。此工具大大降低了协同的使用门槛,对于那些本身协同使用规则不明确或者历史项目需要使用协同系统的情况特别有用。
3)绘图标准管理
提供专业间及专业内的图层级协同规则的维护管理,包括各专业的图层规则、字体、线型、打印样式、图签图框等。同时提供标准的分发工具,管理员可以自定标准文件,并将需要分发的标准文件上传、发布。其他用户在重新登录协同系统时,会自动下载并更新标准文件。
4)图层引用规则管理
用以管理专业间项目引用时的图层更改规则[4],分为规则管理和规则设置,一个引用专业和被引用专业对,形成一条唯一的规则,规则可以导入、导出,并自行设置具体规则内容,针对被引用专业的某个标准图层进行修改设定,可更改颜色、开关、冻结、打印开关、锁定、线型。在用户定义好规则之后,打开可对应引用规则的图纸时,系统自动应用规则,将图层做相应的修改,通常用于参考图的置灰,变色,不打印等需要。
5)图层便捷开关
对于当前图纸中的所有图层进行方便的开关设置,过滤引用图层的前缀,标准图层按专业分类。
1)提资和归档
提资操作备份用户的提资文件,自动进行版本以及参考关系管理[5],记录用户每一次提资的历史痕迹,并把文件打包后链接发送给接收资料的专业,并通过即时通讯系统通知设计人员。设计人员接收到资料是,系统自动运用图层引用标准,使接收专业只看到相关的图层,其它图层自动关闭;使用外部参照时,系统保证每次引用都是最新版本,并自动管理参考关系和参考文件。系统还提供了提资历史记录比较的功能,能便捷地知道每次提资之间的差别,方便了设计人员的工作。归档也提供了类似的功能。
2)项目修改通知单管理
随着项目规模越来越大,项目修改通知单的数量急剧增多,通知单的管理也变得越来越重要。系统根据模板生成项目修改通知单,并自动填写项目相关的信息,减少了设计人员重复输入和录入时内容的千差万别。所有的修改通知单都保存在系统中,能做各种统计分析,并跟踪修改通知单的状态,有效地管理了项目修改通知单。
此系统是2011年6月份正式在中船九院上线,全院所有设计项目都进入该平台,大部分设计人员都此平台上进行设计、提资和归档。期间我们一直收集设计人员反馈的意见,对系统不断完善和优化,系统基本运行稳定。院里在协同设计方面进行了大量的探索。
1)统一CAD绘图版本到2008版;
2)统一定制专业软件;
3)制定图层标准;
4)引用模式的研究;
5)协同平台的定制开发。
目前,中船九院的协同设计在全院领导和全体设计人员的共同努力下积极推进。协同平台的二次开发为协同设计的推广奠定了坚实的技术基础。平台通过这次的二次开发,实现了与AutoCAD的无缝结合,并与公司的业务系统实现集成,直接从底层将多个信息岛与数据中心关联;提高了信息传递的自动化程度,降低了项目成员的工作量,有利于系统在企业内部的推广应用;避免了信息在二次传递中的错误和损失,解决传统的协同环境下只能保留结果数据,而不能保留过程信息的弊端;那些繁琐的重复性劳动交给计算机来完成,增加了数据的唯一性,减少了由于操作人员疏忽而导致的低级错误,使设计人员的精力大多放在设计而不是制图上;管理者不仅可以通过该平台实现对项目进行动态监控,而且可以将管理工作规范化,使管理水平进一步提高,个人的工作成果能在系统中得到反映,使管理者对每个成员的考核更加客观公正。
另外通过这次平台定制开发项目,我院的软件开发团队对ProjectWise平台有了更深刻的认识,也具备了在该平台上进行更深入定制开发的能力,为该平台的进一步完善打下了坚实的基础。
[1]李敏强,寇纪淞,纪仕光.计算机支持协作工作与系统──CSCW/CSCS[J].管理科学学报,1994,2.
[2] J.Grudin.“Computer – Supported Cooperative Work”,History and Focus,IEEE COMPUTER,V27 I5(1994)
[3] Kevin LMills.Introduction to the electronic symposium on computer- supported cooperative work,ACM Computing Surveys,V 31 I2(1999),P105-116.
[4]赵红.AutoCAD中外部图形引用的实现方法[J].甘肃科技,2003,19(3):24-25.
[5]曹健,吴瑞民,张友良.CSCW环境下协同设计的多版本问题及其管理策略[J].计算机工程与应用,31(11)(1998),P32-34.