想要一次批量给大量相似的简单实体添加label标签,请问有哪些途径?
关键您想如何确定每个Label的位置呢?这类需求估计需要编程才能实现了。可以MS二次开发支持VBA、C#或C++三种开发语言
那只用宏能实现吗?比如记住给第一个实体放置label的过程循环重复整个过程,可行吗?
从道理上来说应该是可行的。但其中还需要解决许多细节问题。比如,如何去指定每个被标记的实体?如何获取该实体上的点?(因为Place Label时Label要和实体关联,必须准确地发送能捕获到指定实体的点坐标)等等
Answer Verified By: Hedirosie
现在最大的难点是在批量放置时没法和实体进行关联,姑且通过实体的中心点去批量插入,但是无法关联实体。
试了很多其他方法都没能进行关联,我看了论坛是不是要运用C++来实现,可是我没有接触过该语言,配置环境上就止步不前了。
请问有什么和批量关联cell类似的C++现有实例可参考?
如果您还不具有开发基础的话,想要实现这个是很难的。先花点时间学习一下如下编程教程:
然后来调用LabelCellHeaderHandler下的CreateLabel函数就能创建Label了。
static DGNPLATFORM_EXPORT BentleyStatus CreateLabel (EditElementHandleR labelElem, EditElementHandleR leaderElement, DimensionStyleCR dimStyle, ElementHandleCR celltemplate, bool is3d, RotMatrixCR orientation, DgnModelRefR modelRef, StdDPointVector const &labelLeaderPoints, bool isCallOut)
DGNPLATFORM_EXPORT BentleyStatus SetupOffsetAssociation ( EditElementHandleR labelElement, ElementHandleCR targetElement, AssocPoint const & assoc )
有关编程的深入讨论问题,请发到“二次开发论坛”。