上图是右键点击设备后的菜单,添加链接的API怎么调用,同样的添加后相应的删除和查看链接API怎么调用。
链接编程有一定的复杂性,在MSCE SDK中提供有C++接口,请看如下帖子学习添加文件链接:
https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/169104/msce-c-links
打开和删除链接怎么写呢?
打开链接要根据链接的类型(文件型、键入命令型或URL型等)分别采取不同的动作。比如对于DgnFileLink类型,获得node后得到文件名,然后直接调用mdlSystem_newDesignFile打开文件即可。
根据名称删除链接:
先找到具有该名称的LinkNode,然后调用GetParentP拿到该node的父节点DgnLinkTreeBranchP parent。再调用
parent->FindChildIndex根据名称获得node的索引值index,最后调用parent->DropChild删除该节点。记住要调用DgnLinkManager::WriteLinkTree写整棵树。
我已知元素ID,如何获取各个链接的LinkNode呢?
不知您是否仔细消化了那个创建DgnFileLink的例子。提取Link也是类似的,
1、根据ElementId得到一个ElementHandle;
2、调用DgnLinkManager::CreateTreeSpec(eh)得到DgnLinkTreeSpec
3、调用DgnLinkManager::ReadLinkTree得到DgnLinkTree
4、调用linkTree->GetRootR得到DgnLinkTreeBranch根节点root
5、调用root.GetChildCP()就能拿到DgnLinkNode了
前四步都在addDGnFileLink的例子中有演示,仅仅是通过扩展步骤5即可。
Answer Verified By: Zhong Ling 钟凌