将 IFC EXPRESS 模式 entities/classes 转换为 VB.NET 类
Convert IFC EXPRESS schema entities/classes to VB.NET classes
我正在研究 ifc project where I want to convert an EXPRESS
file's classes into vb.net 类。 stp
文件的所有属性一个一个处理真的很难,所以我想知道是否有其他方法或工具可以转换 类.
编辑:我发现了javatoolbox which does exactly what I want, but in java。我也看到了 IFC Engine DLL
但没有找到任何可用的代码。
Jotne EPM www.epmtech.jotne.com 和 IFC Engine DLL www.ifcengine.com 都声称它们支持 Visual Basic。
为完整的 EXPRESS 模式创建 类 是一项相对复杂的任务。如果您的 language/platform 选择是 vb.net,我建议您查看 xBIM. It is open source toolkit which provides all you need to open IFC model and extract/create any data you need. xBIM is mostly written in C# so you can just reference it as a NuGet package。最新开发代码还支持IFC4.
你可以试试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";
};
oipExpress 的内部元模型如下所示:
我正在研究 ifc project where I want to convert an EXPRESS
file's classes into vb.net 类。 stp
文件的所有属性一个一个处理真的很难,所以我想知道是否有其他方法或工具可以转换 类.
编辑:我发现了javatoolbox which does exactly what I want, but in java。我也看到了 IFC Engine DLL
但没有找到任何可用的代码。
Jotne EPM www.epmtech.jotne.com 和 IFC Engine DLL www.ifcengine.com 都声称它们支持 Visual Basic。
为完整的 EXPRESS 模式创建 类 是一项相对复杂的任务。如果您的 language/platform 选择是 vb.net,我建议您查看 xBIM. It is open source toolkit which provides all you need to open IFC model and extract/create any data you need. xBIM is mostly written in C# so you can just reference it as a NuGet package。最新开发代码还支持IFC4.
你可以试试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";
};
oipExpress 的内部元模型如下所示: