using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using Bentley.DgnPlatformNET;
using Bentley.DgnPlatformNET.DgnEC;
using Bentley.ECObjects.Schema;
using Bentley.ECObjects.XML;
using Bentley.MstnPlatformNET;
namespace Mstn.Toolkit.Helpers
{
public static class SchemaHelper
{
///
/// 从xml文件中定义ECSchema
///
///
///
public static IECSchema DefineECSchemaFromXml(string xmlFilePath)
{
string schemaXml = File.ReadAllText(xmlFilePath);//读取XML文件内容
ECSchemaXmlStringReader xmlReader = new ECSchemaXmlStringReader(schemaXml);//声明ECSchema阅读器
IECSchema deserializedSchema = xmlReader.Deserialize();//将EC Schema阅读器读取到的信息反序列化
return deserializedSchema;//返回ECSchema
}
///
/// 导入
///
///
public static void ImportSchema(IECSchema testSchema)
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
SchemaImportStatus impStatus = DgnECManager.Manager.ImportSchema(testSchema, dgnFile, new ImportSchemaOptions());//导入ECSchema
MessageBox.Show("Schema Import Status:\n" + impStatus);//对话框输出导入是否成功
}
}
}