老师好,我现在自定义了一个图层。现在要做的操作是 选择路线,将自定义的图层偏移路线一定距离然后放置,我现在使用的是图中的工具,我想问下使用代码的话 这个图层要当成元素进行放置吗 因为之前放置就是放置一个单元或者元素,但是放置图层的话 不知道把图层当成什么进行放置?
第一次听说“图层偏移”这个说法。图层是元素的一个属性,何为“图层偏移”?
哈哈 ,是啊,刚开始我也是很奇怪图层怎么偏移,但是手动试试 ,确实能偏移。就是选择好图层,然后选择道路中心线,然后选择偏移工具就能实现了图层偏移,图中绿色线就是图层, 也是偏移后的结果
但是用代码实现的话 ,就不知道怎么实现了 ?因为图层它应该不是个单元或者元素吧
您说的那个是截取Alignment的一段然后对该段进行偏移,请参考下面代码:
static void testPartialByDistances() { long myid = 878; ElementId elId = new ElementId(ref myid); Element el1 = Session.Instance.GetActiveDgnModel().FindElementById(elId); DgnModel model = Bentley.MstnPlatformNET.Session.Instance.GetActiveDgnModel(); Bentley.CifNET.SDK.ConsensusConnection con = new Bentley.CifNET.SDK.ConsensusConnection(model); if (el1 != null) { Alignment al = Alignment.CreateFromElement(con, el1); Bentley.CifNET.LinearGeometry.LinearElement resultLine = al.LinearGeometry.GetPartialByDistances(0, 50).GetOffsetElement(50); Bentley.CifNET.SDK.Edit.ConsensusConnectionEdit con1 = Bentley.CifNET.SDK.Edit.ConsensusConnectionEdit.GetActive(); con1.StartTransientMode(); AlignmentEdit al1 = AlignmentEdit.CreateByLinearElement(con1, resultLine, true); con1.PersistTransients(); } }
主要用到两个函数:
GetPartialByDistances(起点,终点):根据起终点,截取指定alignment上面的一段距离。
GetOffsetElement(偏移量):将截取的这段几何根据偏移量偏移一定距离。
老师,我知道你这只是对路线某段进行了偏移,结果是一条线。我看了图层的属性也是line,里面有颜色 线宽等。难道图层实际上也就是一条线吗?