我正在开展一个ifc项目,我希望将EXPRESS
个文件的类转换为vb.net个类。很难一个一个地处理stp
文件的所有属性,所以我想知道是否有其他方法或工具可以转换类。
编辑:我发现javatoolbox完全符合我的要求,但在java中。我也看过IFC Engine DLL
,但没有找到任何可用的代码。
答案 0 :(得分:2)
为完整的EXPRESS模式创建类是一项相对复杂的任务。如果您选择的语言/平台是vb.net,我建议您查看xBIM。它是开源工具包,提供打开IFC模型和提取/创建所需数据所需的一切。 xBIM 主要是用C#编写的,因此您只需将其引用为NuGet package即可。最新的开发代码也支持 IFC4 。
答案 1 :(得分:1)
Jotne EPM www.epmtech.jotne.com和IFC Engine DLL www.ifcengine.com声称它们支持Visual Basic。
答案 2 :(得分:1)
您可以尝试oipExpress。 oipExpress是一个用C ++编写的早期绑定生成器。只需实现我们自己的生成VB.Net类的生成器。目前,它只生成C ++类。
VB.Net类的基本生成器可能如下所示(生成的绑定也可以找到here):
class GeneratorVBNet : public Generator {
public:
GeneratorVBNet() {
}
virtual ~GeneratorVBNet() {
}
void generate(std::ostream &out, OpenInfraPlatform::ExpressBinding::Schema &schema) {
for (int i = 0; i < schema.getEntityCount(); i++) {
auto &entity = schema.getEntityByIndex(i);
std::stringstream ss;
ss << earlyBindingDestination << "\\" << entity.getName() << ".vb";
std::ofstream ofs(ss.str(), std::ofstream::out);
ofs << "Class " << entity.getName() << std::endl;
ofs << "End Class" << std::endl;
}
}
private:
std::string earlyBindingDestination = "E:\\dev\\EarlyBindingVBNet_IFC4x1_Add1";
};