老师好,我现在想实现对一个模型的元素进行提取其相关属性。读取元素并进行判断代码:
void ExportProperties(WCharCP unparsed) { BeXMLRoot dialog_xml_node; PersistentElementRefList *pGraElement = ISessionMgr::GetActiveDgnModelP()->GetGraphicElementsP(); for (PersistentElementRefP elemRef : *pGraElement) { EditElementHandle eeh(elemRef); BeXMLNode *elmNode = dialog_xml_node.AddXMLNode(L"RebarElement"); if (RebarElement::IsRebarElement(eeh)) { RebarElementCP rep = RebarElement::Fetch(eeh); RebarDataToXmlHelper::ProcessRebarElement(*elmNode, rep, eeh.GetModelRef()); return ERROR; } dialog_xml_node.WriteFile(L"E://RebarProperties.xml"); } }
我的代码实现思路是:先从模型中读取到元素,然后再判断元素是否我要提取的元素,再提取元素的属性写到XML文件。
但现在编译提示没有生成对象文件。
“E:\RebarSDKzuixinbeifen\RebarSDK\RebarSDKExample.vcxproj”(Rebuild 目标) (1) ->(ClCompile 目标) -> e:\rebarsdkzuixinbeifen\rebarsdk\exportproperties.cpp(180): error C2220: 警告被视为错误 - 没有生成“object”文件 [E:\RebarSDKzuixinbeifen\RebarSDK\RebarSDKExample.vcxproj]
想请老师帮我看下这段读取元素并提取属性的这段代码,谢谢
你用的VS的编译命令直接编译的吧?c++的项目要用SDK的bmake工具编译。
PersistentElementRefList *pGraElement = ISessionMgr::GetActiveDgnModelP()->GetGraphicElementsP(); for (PersistentElementRefP elemRef : *pGraElement) { EditElementHandle eeh(elemRef);
上面这两三行代码可以实现提取到模型文件的元素吗?现在编译报错指示就是这个函数导致没有生成“object”文件。
是用bmake编译的。
你这个是ProStructures SDK,需要ProStructures的工程师解答。请在标题中注明是ProStructures
根据您黑窗口的提示,主要问题是你的函数ExportProperties写得有问题。推测该函数是有返回值的,但你的函数中并非每个分支都有正确的返回值。请先修正该函数后再编译。
——————————————————————————————————————————————
不好意思,您已经贴出该函数的代码了。你函数无返回值,但你在循环中用了return ERROR; 从而造成警告错误。