如何使用钢筋SDK提取钢筋的Owner的ElementID

如题,在PROSTRUCTURE的二次开发过程中,想要获取钢筋所属的梁板柱的信息,麻烦老师解答

Parents
  • 配筋完成后,被配筋的元素信息保存在RebarAssembly中,下面的代码是在拾取一个钢筋元素之后,得到对应的RebarAssembly,然后是被配筋元素。这个元素可以是参考文件中的元素。这段代码是C++。Rebar SDK目前是C++的接口,没有C#版本。

    ElementHandle pickedEh;
    
    if(RebarElement::IsRebarElement(pickedEh))
    {
        RebarElementP rep = RebarElement::Fetch(eh);
        if (rep != nullptr)
        {
            RebarSetCP rebar_set = rep->GetRebarSet(modelRef);
            ElementId callerId = rebar_set != nullptr ? rebar_set->GetCallerId() : rep->GetCallerId();
        
            ElementHandle eh(callerId, rep->GetModelRef());
            RebarAssembly *assem = RebarAssembly::Fetch(eh);
            if(assem != nullptr)
            {
                ElementHandle whatyouwant(assem->GetSelectedElement(), assem->GetSelectedModel());
            }
        }
    }
    
    

    Answer Verified By: xiaolan zhou 

Reply
  • 配筋完成后,被配筋的元素信息保存在RebarAssembly中,下面的代码是在拾取一个钢筋元素之后,得到对应的RebarAssembly,然后是被配筋元素。这个元素可以是参考文件中的元素。这段代码是C++。Rebar SDK目前是C++的接口,没有C#版本。

    ElementHandle pickedEh;
    
    if(RebarElement::IsRebarElement(pickedEh))
    {
        RebarElementP rep = RebarElement::Fetch(eh);
        if (rep != nullptr)
        {
            RebarSetCP rebar_set = rep->GetRebarSet(modelRef);
            ElementId callerId = rebar_set != nullptr ? rebar_set->GetCallerId() : rep->GetCallerId();
        
            ElementHandle eh(callerId, rep->GetModelRef());
            RebarAssembly *assem = RebarAssembly::Fetch(eh);
            if(assem != nullptr)
            {
                ElementHandle whatyouwant(assem->GetSelectedElement(), assem->GetSelectedModel());
            }
        }
    }
    
    

    Answer Verified By: xiaolan zhou 

Children