符老师 元素加入选择集AddElement(Element element, DgnModelRef modelRef);这个函数效率太低
AddElementSet(IElementSet elementSet); 这个函数(元素含参考文件的元素) 我用C++ 、C#都不行 请问问符老师 怎么弄?
求指教
非常感谢!我主要是在OPM上进行开发,不过这个应该是MSCE基础平台的BUG,希望OPM U10中能一并解决。
我测试过了,c/c++的对应接口是可以的,这个应该是c#的一个bug,稍后我会将这个bug提交给开发组。
private class ElementSet : IElementSet { public ElementSet(IEnumerable<Element> source) { Elements = source?.ToImmutableArray() ?? ImmutableArray<Element>.Empty; } private int _currentIndex = 0; private ImmutableArray<Element> Elements { get; } public uint GetCount() { return (uint) Elements.Length; } public Element GetFirst() { return Elements.FirstOrDefault(); } public Element GetNext() { return _currentIndex >= Elements.Length ? null : Elements[_currentIndex++]; } public void Reset() { _currentIndex = 0; } }
以上是我写的IElementSet的实现,但实际使用中GetCount、GetFirst、GetNext三个函数都没有命中断点,SelectionSetManager.ReplaceWithElementSet直接就返回了错误代码,请问郭老师是为什么呢?
elementSet您需要想上边Andy那样自己去维护迭代的过程,要在自己重写的IElementSet接口类中维持一个计数器。
张老师您好,我现在在C#开发环境(MSCE U13)中也遇到了一样的需求,但使用SelectionSetManager.ReplaceWithElementSet(elementSet);时总是返回BentleyStatus.Error,请问是否C#不支持这样调用?还是IElementSet需要用特别的方式实现?