Bentley Communities
Bentley Communities
  • Site
  • User
  • Site
  • Search
  • User
Bentley 中国优先社区
  • Welcome to Bentley Communities
  • Bentley's Communities
  • Bentley 中国优先社区
  • Cancel
Bentley 中国优先社区
技术资料库 Dgn文件所属WorkSpace设置
    • Sign In
    Bentley 中国优先社区 requires membership for participation - click to join
    • -Bentley 中文技术资料库
      • +AutoPIPE
      • +Bentley Civil
      • +Bentley Navigator
      • +Bentley Substation
      • +BRCM
      • +BridgeMasterModeler/OpenBridgeModeler
      • +i-model / DgnDb
      • +LumenRT/ContextCapture
      • -MicroStation
        • +01-常见问题解答
        • +02-培训资料
        • +03-软件安装与配置
        • +04-图形用户界面
        • +05-辅助绘图
        • +06-二维绘图
        • +07-三维建模
        • +08-渲染和动画
        • +09-打印
        • +10-元素选择和操作/测量
        • +11-单元/组/图案化
        • +12-文字/标注/表格/报表
        • +13-自定义线型和多线
        • +14-单位和坐标系
        • +15-模型与参考文件
        • +16-视图和层
        • +17-动态视图和组图
        • +18-光栅/点云/实景
        • +19-DGN/DWG及格式转换
        • +20-实用工具
        • -21-二次开发
          • Addin程序集接口扩充
          • +MDL函数勘误
          • MDL程序员指南
          • -MicroStation二次开发专题文章
            • Addin给元素添加自定义Linkage数据
            • C#实现Mesh布尔运算
            • CursorDialog
            • CurveVector平面投影交点
            • Dgn文件所属WorkSpace设置
            • ECPropertyPane控件
            • EC属性之数组
            • EC属性之结构体
            • EC属性之结构体数组
            • EC属性值范围
            • EC属性添加注释
            • EC属性预选值
            • ElementTemplates读取
            • Mesh指定材质贴图坐标
            • MicroStation CE下三种编程语言的运行效率比较
            • Microstation Connect Edition二次开发-VisualStudio 2013开发环境配置(C++)
            • Mstn中的Group功能
            • NamedView(SavedView)关联Clip
            • PreviewControl首次加载实现FitToView
            • VS热重载
            • [CE]ConfigurationManager取代mdlSystem_expandCfgVar
            • [CE]CONNECT版下如何扫描Cell下的子元素
            • [CE]升级mdlKISolid_xxx函数到CONNECT版
            • [MSCE C++]在.r对话框中实现对话框部分控件的展开和收起
            • [MSCE C++]如何在.r对话框中显示一个图片
            • [MSCE C++]曲线压印至实体
            • [MSCE]程序化导入X_T文件
            • “Create Drawing”对话框设置
            • 三维空间下线与面的交点
            • 交互式工具动态绘制优化
            • 元素充满视图
            • 关于TextBlock中的TextPart
            • 关闭EC属性覆盖元素名称
            • 判断元素是否受修改限制
            • 如何创建指定大小的图纸模型(To create a sheet model with specific size)
            • 如何用API操作Tag元素
            • 如何调试旧式的.mc源代码?
            • 如何遍历嵌套单元子元素
            • 如何遍历模型包括外部引用在内的所有元素
            • 尺寸标注元素中的旋转矩阵
            • 按里程截取CurvePrimitive
            • 更新参数化单元定义
            • 材质加载
            • 沿路径扫掠构造Body
            • 消隐结果如何区分不同元素
            • 线性元素平行拷贝
            • 联动文本元素
            • 自定义XAttributes属性的XAttributeId
            • 获取DockableWindow主窗体
            • 获取创建Dgn文件的产品名称
            • 获取碰撞检查结果
            • 计算三维空间线真实交点
            • 设置显示样式的显示规则
          • +MVBA小程序
          • 一步步学习MicroStation CE Addin(C#)开发
          • 一步步学习MicroStation CE MDL(C++)开发
          • 一步步学习MicroStation V8i Addin开发
          • 一步步学习MicroStation V8i MDL开发
          • 二次开发常见问题解答
          • 如何寻求Bentley代码级技术支持?
          • 学习Microstation交互式工具开发
          • 精选MicroStation二次开发文章
        • +22-其它
        • +23-MicroStation与iTwin交互
        • +24- Learning Tips
      • +MOSES
      • +OpenBuildings Designer
      • +OpenFlows
      • +OpenPlant
      • +OpenPlant Electrical CCK
      • Plaxis 地质分析
      • +ProjectWise
      • +ProStructures
      • +SACS
      • +STAAD.Pro
      • +SYNCHRO Pro
      • +其 它
      • +建筑设计之思考(赵大师专作)
      • +桥梁大师<BridgeMaster>
      • +现浇箱梁
      • +软件激活及授权
    • +iTwin 数字孪生平台
    • Bentley二次开发资料库
    • +常见问题汇总
    • Bentley-Learn 官方教学平台-使用方法
    • +中国优先社区使用指南
    • +Bentley学习资料库
    • +Bentley用户成功活动精选
    • +服务合作伙伴计划

     
     Questions about this article, topic, or product? Click here. 

    Dgn文件所属WorkSpace设置

    我们在Mstn中打开某个Dgn文件时有时会碰到如下所示的对话框:

    尤其是当在Mstn打开查看那些由基于Mstn的垂直产品创建出来的Dgn文件时,这是因为我们的Dgn文件是被关联到某一个工作空间的,Dgn文件打开以后,Mstn会自动加载其关联的工作空间下的各种资源,例如文字样式、标注样式等等。当我们打开Dgn文件时,如果这个Dgn文件关联的工作空间,在当前使用的软件环境下没有配置的话,就会弹出上图所示的这个对话框。对话框中提供了两个选项,一种是我们可以使用当前激活的工作空间打开这个Dgn文件,另外一种是我们可以在无工作空间的状态下打开这个Dgn文件。前者的话,在打开Dgn文件以后,此Dgn文件就自动被关联到当前激活的这个工作空间了。而后者的话,则Dgn文件关联的工作空间不会发生变化。我们在代码中也可以直接设置指定Dgn文件与指定的工作空间关联,需要用到IDgnWorkSetInfo这个类型,如下所示:

    我们可以通过其静态成员函数ExtractFromDgnFile来获取其对象实例。获取到其实例以后通过SetWorkSpaceName和SetName设置其工作空间以及工作集的名字,最后通过其Write成员函数就可以修改指定Dgn文件的工作空间的名字了。具体实现代码如下所示:

    IDgnWorkSetInfoPtr iDgnWorkSetInfo= IDgnWorkSetInfo::ExtractFromDgnFile(*ISessionMgr::GetActiveDgnFile());
    	DgnFileStatus dgnFileStatus; int defFileId = 0;
    	DgnDocumentPtr dgnDoc = DgnDocument::CreateFromFileName(dgnFileStatus, L"D:\\test.dgn", L"D:\\", defFileId, DgnDocument::FetchMode::Write);
    	DgnFilePtr dgnFile = DgnFile::Create(*dgnDoc, DgnFileOpenMode::ReadWrite);
    	StatusInt openForWriteStatus;
    	dgnFile->LoadDgnFile(&openForWriteStatus);
    	iDgnWorkSetInfo->Write(*dgnFile);
    	dgnFile->ProcessChanges(DgnSaveReason::FileClose);
    

    • Share
    • History
    • More
    • Cancel
    • HongQiang Guo Created by Bentley Colleague HongQiang Guo
    • When: Thu, Sep 28 2023 4:08 AM
    • Revisions: 1
    • Comments: 0
    • Sign in to reply
    Recommended
    Related
    Communities
    • Home
    • Getting Started
    • Community Central
    • Products
    • Support
    • Secure File Upload
    • Feedback
    Support and Services
    • Home
    • Product Support
    • Downloads
    • Subscription Services Portal
    Training and Learning
    • Home
    • About Bentley Institute
    • My Learning History
    • Reference Books
    Social Media
    •    LinkedIn
    •    Facebook
    •    Twitter
    •    YouTube
    •    RSS Feed
    •    Email

    © 2023 Bentley Systems, Incorporated  |  Contact Us  |  Privacy |  Terms of Use  |  Cookies