工程属性操作方法
EC属性操作方法
因为Schema文件导入后没有像ItemType的操作界面,因此若需要了解文件中ECSchema的导入情况,需要使用keyin命令:ecx schema list显示在提示栏中,或使用ecx schema export导出文件查看。
导入Schema文件
字符串创建
我们可以使用字符串编写Schema文件信息,然后使用ECSchema阅读器对字符串执行反序列化获得Schema文件。
public static void ImportSchemaToDgnFile1(string unparsed)
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
ImportSchemaOptions options = new ImportSchemaOptions();//声明导入Schema选项
IECSchema TestSchema =DefineECSchema1();//定义Schema
SchemaImportStatus impStatus = DgnECManager.Manager.ImportSchema(TestSchema, dgnFile, options);//导入ECSchema
MessageBox.Show("Schema Import Status:\n"+impStatus);//对话框输出导入是否成功
}
public static IECSchema DefineECSchema1()
{
string schemaXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<ECSchema schemaName=\"ComplexSchema\" nameSpacePrefix=\"ComplexSchema\" version=\"1.0\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.2.0\">"
+ " <ECClass typeName=\"Contact\" isStruct=\"True\" isDomainClass=\"False\">"
+ " <ECProperty propertyName=\"Name\" typeName=\"string\" /> "
+ " <ECProperty propertyName=\"Age\" typeName=\"int\" /> "
+ " <ECArrayProperty propertyName=\"PhoneNumber\" typeName=\"string\" /> "
+ " </ECClass>"
+ " <ECClass typeName=\"StructClass\" isStruct=\"True\" isDomainClass=\"False\">"
+ " <ECProperty propertyName=\"StringProperty\" typeName=\"string\" /> "
+ " <ECProperty propertyName=\"IntProperty\" typeName=\"int\" /> "
+ " <ECArrayProperty propertyName=\"ArrayProperty\" typeName=\"string\" minOccurs=\"1\" maxOccurs=\"1\" /> "
+ " <ECArrayProperty propertyName=\"ContactData\" typeName=\"Contact\" isStruct=\"True\" /> "
+ " </ECClass>"
+ " <ECClass typeName=\"ComplexClass\" isDomainClass=\"True\">"
+ " <ECProperty propertyName=\"IntProperty\" typeName=\"int\" />"
+ " <ECProperty propertyName=\"StringProperty\" typeName=\"string\" /> "
+ " <ECProperty propertyName=\"DoubleProperty\" typeName=\"double\" /> "
+ " <ECProperty propertyName=\"DateTimeProperty\" typeName=\"dateTime\" />"
+ " <ECProperty propertyName=\"BooleanProperty\" typeName=\"boolean\" />"
+ " <ECProperty propertyName=\"APoint2d\" typeName=\"point2d\" />"
+ " <ECProperty propertyName=\"APoint3d\" typeName=\"point3d\" />"
+ " <ECProperty propertyName=\"ALong\" typeName=\"long\" />"
+ " <ECProperty propertyName=\"ABinary\" typeName=\"binary\" />"
+ " <ECArrayProperty propertyName=\"SimpleArrayProperty\" typeName=\"string\"/>"
+ " <ECArrayProperty propertyName=\"FixedArrayProperty\" typeName=\"string\" minOccurs=\"1\" maxOccurs=\"1\" />"
+ " <ECArrayProperty propertyName=\"StructArrayProperty\" typeName=\"StructClass\" isStruct=\"True\" />"
+ " <ECArrayProperty propertyName=\"FixedStructArrayProperty\" typeName=\"StructClass\" minOccurs=\"1\" maxOccurs=\"1\" isStruct=\"True\" />"
+ " <ECStructProperty propertyName=\"StructProperty\" typeName=\"StructClass\" />"
+ " </ECClass>"
+ "</ECSchema>";//设置EC Schema
ECSchemaXmlStringReader xmlReader = new ECSchemaXmlStringReader(schemaXml);//声明ECSchema阅读器
IECSchema deserializedSchema = xmlReader.Deserialize();//将EC Schema阅读器读取到的信息反序列化
return deserializedSchema;//返回ECSchema
}
在本案例中,名为ComplexSchema,版本为1.0的Schema文件被成功加载。
代码创建
使用该方法可以使用代码的方法一次创建Schema与其中的EC类及属性。
public static void ImportSchemaToDgnFile2(string unparsed)
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
ImportSchemaOptions options = new ImportSchemaOptions();//声明导入Schema选项
IECSchema testSchema = DefineECSchema2();//定义Schema
SchemaImportStatus impStatus = DgnECManager.Manager.ImportSchema(testSchema, dgnFile, options);//导入ECSchema
MessageBox.Show("Schema Import Status:\n" + impStatus);//对话框输出导入是否成功
}
public static IECSchema DefineECSchema2()
{
IECSchema schema = new ECSchema("ComplexSchema2", 1, 1, "");//声明ECSchema
//create the Project class
ECClass prjClass = new ECClass("ProjectClass");//创建EC类
prjClass.Add(new ECProperty("ProjectID", Bentley.ECObjects.ECObjects.IntegerType));//在EC类中添加EC属性
prjClass.Add(new ECProperty("ProjectName", Bentley.ECObjects.ECObjects.StringType));//在EC类中添加EC属性
prjClass.Add(new ECProperty("ProjectCost", Bentley.ECObjects.ECObjects.DoubleType));//在EC类中添加EC属性
prjClass.IsCustomAttribute = false;//设置EC类是否为自定义属性
prjClass.IsDomainClass = true;//设置EC类是否是域类
schema.AddClass(prjClass);//在ECSchema中添加EC类
//create the Member class
ECClass memberClass = new ECClass("MemberClass");//声明EC类
memberClass.Add(new ECProperty("MemberName", Bentley.ECObjects.ECObjects.StringType));//在EC类中添加EC属性
memberClass.Add(new ECProperty("MemberID", Bentley.ECObjects.ECObjects.IntegerType));//在EC类中添加EC属性
memberClass.Add(new ECProperty("MemberRole", Bentley.ECObjects.ECObjects.StringType));//在EC类中添加EC属性
memberClass.IsCustomAttribute = false;//设置EC类是否为自定义属性
memberClass.IsDomainClass = true;//设置EC类是否是域类
schema.AddClass(memberClass);//在ECSchema中添加EC类
return schema;//返回ECSchema
}
在本案例中,名为ComplexSchema2,版本为1.1的Schema文件被成功加载。
文件导入
使用该方法可以从外部Schema文件中获得工程属性信息并导入文件中。使用这种方法时需要确定导入Schema文件的路径与名称,然后导入文件即可。
public static void ImportSchemaToDgnFile3(string unparsed)
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
ImportSchemaOptions options = new ImportSchemaOptions();//声明导入Schema选项
string searchpath = @"E://工作相关//20211213MS案例直播//直播资料//Part6//ECAndItemTypeIntroduction//Schema//";//设置ECSchema存放路径
IECSchemaLocater SearchPathLocater = new SearchPathSchemaFileLocater(searchpath);//根据存放路径获取ECSchema
Bentley.ECObjects.ECObjects.AddSchemaLocater(SearchPathLocater);//在EC对象中添加ECSchema定位器
string schemafullname = "ComplexSchema";//设置ECSchema全名
IECSchema testSchema =
Bentley.ECObjects.ECObjects.LocateSchema(schemafullname, SchemaMatchType.Exact, null, null);//根据名称定位ECSchema
if(null==testSchema)//判断是否成功获得ECSchema
{
MessageBox.Show("Schema not found, please check");//对话框输出未获得指定ECSchema
return;//返回
}
SchemaImportStatus impStatus = DgnECManager.Manager.ImportSchema(testSchema, dgnFile, options);//导入ECSchema
MessageBox.Show("Schema Import Status:\n" + impStatus);//在对话框中输出ECSchema导入状态
}
在本案例中,名为ComplexSchema的Schema文件被成功加载。
创建EC实例
元素上创建EC实例
当我们导入Schema文件后,若要对元素赋予EC实例,那么首先需要找到需要赋予的ECSchema,再根据类名找到赋予元素的EC类,可在赋予前对EC类中的EC属性值进行修改,修改完成后在元素上创建EC实例。
public static void CreateECInstanceOnElem(string unparsed)
{
try
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
string schemafullname = "ComplexSchema";//设置ECSchema全名
IECSchema testSchema =
Bentley.ECObjects.ECObjects.LocateSchema(schemafullname, SchemaMatchType.Exact, null, null);//根据名称定位ECSchema
if (null == testSchema)//判断是否成功获得ECSchema
{
MessageBox.Show("Schema not found, please check");//对话框输出未获得指定ECSchema
return;//返回
}
IECClass ecClass = testSchema.GetClass("ComplexClass");//获得指定名称的EC类
DgnECInstanceEnabler instanceEnabler = DgnECManager.Manager.ObtainInstanceEnabler(dgnFile, ecClass);//获得EC实例启动器
StandaloneECDInstance instance = instanceEnabler.SharedWipInstance;
instance.SetInteger("IntProperty", 100);
IECArrayValue arrayValue = null;
if (null != (arrayValue = instance["FixedStructArrayProperty"] as IECArrayValue))
{
IECStructValue structValue;
structValue = arrayValue[0] as IECStructValue;
structValue["StringProperty"].StringValue = "MyStrVal1";
structValue["IntProperty"].IntValue = 11;
structValue = arrayValue[1] as IECStructValue;
structValue["StringProperty"].StringValue = "MyStrVal2";
structValue["IntProperty"].IntValue = 22;
}
#region Create ConeElement
DgnModel dgnModel = Session.Instance.GetActiveDgnModel();//获得当前激活的模型空间
DPoint3d topCenter = new DPoint3d(0, 0, 100000);//定义顶部圆锥(台)圆心坐标
DPoint3d bottomCenter = DPoint3d.Zero;//定义底部圆锥(台)圆心坐标
ConeElement cone = new ConeElement(dgnModel, null, 50000, 100000, topCenter, bottomCenter, DMatrix3d.Identity, true);//定义圆锥(台)元素
cone.AddToModel();//将圆锥(台)写入模型
#endregion
IDgnECInstance instanceOnElement = instanceEnabler.CreateInstanceOnElement(cone, instance, false);//在元素上创建EC实例
StatusInt status = instanceOnElement.ScheduleChanges(cone);//更新元素上的EC实例
if (status == StatusInt.Success)//判断是否更新成功
{
MessageBox.Show("Create EC On Element Success");//对话框输出创建成功的信息
}
}
catch (Exception ex)
{
MessageCenter.Instance.StatusMessage = ex.Message;//输出错误状态信息
MessageCenter.Instance.StatusWarning = ex.Message;//输出错误警告信息
}
}
在本案例中可以发现名为"ComplexClass"的EC类生成实例被成功附加在元素上。
模型上创建EC实例
当我们导入Schema文件后,若要对模型赋予EC实例,那么首先需要找到需要赋予的ECSchema,再根据类名找到赋予元素的EC类,可在赋予前对EC类中的EC属性值进行修改,修改完成后在模型上创建EC实例。
public static void CreateECInstanceOnModel(string unparsed)
{
try
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
DgnModel dgnModel = Session.Instance.GetActiveDgnModel();//获得当前激活的模型空间
string schemafullname = "ComplexSchema";//设置ECSchema全名
IECSchema testSchema =
Bentley.ECObjects.ECObjects.LocateSchema(schemafullname, SchemaMatchType.Exact, null, null);//根据名称定位ECSchema
if (null == testSchema)//判断是否成功获得ECSchema
{
MessageBox.Show("Schema not found, please check");//对话框输出未获得指定ECSchema
return;//返回
}
IECClass ecClass = testSchema.GetClass("ComplexClass");//获得指定名称的EC类
DgnECInstanceEnabler instanceEnabler = DgnECManager.Manager.ObtainInstanceEnabler(dgnFile, ecClass);//获得EC实例启动器
IDgnECInstance instanceOnModel = instanceEnabler.CreateInstanceOnModel(dgnModel, instanceEnabler.SharedWipInstance);//在模型上创建EC实例
StatusInt status= instanceOnModel.WriteChanges();//更新模型上的EC实例
if (status==StatusInt.Success)//判断EC实例是否更新成功
{
MessageBox.Show("Create EC On Model Success");//对话框输出结果
}
}
catch (Exception ex)
{
MessageCenter.Instance.StatusMessage = ex.Message;//输出错误状态信息
MessageCenter.Instance.StatusWarning = ex.Message;//输出错误警告信息
}
}
在本案例中可以发现名为"ComplexClass"的EC类生成实例被成功附加在模型上。
文件上创建EC实例
当我们导入Schema文件后,若要对文件赋予EC实例,那么首先需要找到需要赋予的ECSchema,再根据类名找到赋予元素的EC类,可在赋予前对EC类中的EC属性值进行修改,修改完成后在文件上创建EC实例。
public static void CreateECInstanceOnFile(string unparsed)
{
try
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
string schemafullname = "ComplexSchema";//设置ECSchema全名
IECSchema testSchema =
Bentley.ECObjects.ECObjects.LocateSchema(schemafullname, SchemaMatchType.Exact, null, null);//根据名称定位ECSchema
if (null == testSchema)//判断是否成功获得ECSchema
{
MessageBox.Show("Schema not found, please check");//对话框输出未获得指定ECSchema
return;//返回
}
IECClass ecClass = testSchema.GetClass("ComplexClass");//获得指定名称的EC类
DgnECInstanceEnabler instanceEnabler = DgnECManager.Manager.ObtainInstanceEnabler(dgnFile, ecClass);//获得EC实例启动器
IDgnECInstance instanceOnFile = instanceEnabler.CreateInstanceOnFile(dgnFile, instanceEnabler.SharedWipInstance);//在文件上创建EC实例
StatusInt status = instanceOnFile.WriteChanges();//更新文件上的EC实例
if (status == StatusInt.Success)//判断EC实例是否更新成功
{
MessageBox.Show("Create EC On File Success");//对话框输出结果
}
}
catch (Exception ex)
{
MessageCenter.Instance.StatusMessage = ex.Message;//输出错误状态信息
MessageCenter.Instance.StatusWarning = ex.Message;//输出错误警告信息
}
}
在本案例中可以发现名为"ComplexClass"的EC类生成实例被成功附加在文件上。
更新ECSchema
当我们需要修改ECSchema时,我们可以使用DgnECManager.Manager.UpdateSchema( )的方法对Schema中的内容进行修改。
public static void UpdateSchema(string unparsed)
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
DgnECConnectionOptions options = new DgnECConnectionOptions();//声明EC连接选项
string schemafullname = "ComplexSchema";//设置ECSchema全名
IECSchema testSchema =
Bentley.ECObjects.ECObjects.LocateSchema(schemafullname, SchemaMatchType.Exact, null, null);//根据名称定位ECSchema
if (null == testSchema)//判断是否成功获得ECSchema
{
MessageBox.Show("Schema not found, please check");//对话框输出未获得指定ECSchema
return;//返回
}
IECClass ecClass = testSchema.GetClass("ComplexClass");//获得指定名称的EC类
ecClass.Add(new ECProperty("MemberName", Bentley.ECObjects.ECObjects.StringType));//在EC类中添加EC属性
ecClass.Add(new ECProperty("MemberID", Bentley.ECObjects.ECObjects.IntegerType));//在EC类中添加EC属性
ecClass.Add(new ECProperty("MemberRole", Bentley.ECObjects.ECObjects.StringType));//在EC类中添加EC属性
ecClass.Remove("IntProperty");//在EC类中移除指定EC属性
ecClass.Remove("StringProperty");//在EC类中移除指定EC属性
UpdateSchemaOptions uoption = new UpdateSchemaOptions();//声明ECSchema更新选项
SchemaUpdateStatus ustatus = DgnECManager.Manager.UpdateSchema(testSchema, dgnFile, uoption);//更新ECSchema
if (ustatus == SchemaUpdateStatus.Success)//判断是否更新成功
{
MessageBox.Show("Data update success");//对话框输出数据更新成功
}
else
{
MessageBox.Show("Data update failure:\n" + ustatus.ToString());//对话框输出更新失败原因
}
}
在本案例中我们对比可以发现,在名为"ComplexClass"EC类中,移除了IntProperty与StringProperty属性,添加了MemberName,MemberID与MemberRole属性。
修改EC实例属性值
当我们需要修改元素上挂接的EC实例中的属性值时,首先得到获得需要修改属性值的元素,然后找到执行EC类上的指定属性,对其值进行修改。
public static void ChangeECInstancePropertyValueOnElem(string unparsed)
{
DgnFile dgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
DgnModel dgnModel = Session.Instance.GetActiveDgnModel();//获得当前激活的模型空间
ModelElementsCollection elems = dgnModel.GetGraphicElements();//获得模型空间中的图形元素
foreach (Element elem in elems)//遍历图形元素
{
DgnECInstanceCollection instCol = DgnECManager.Manager.GetElementProperties(elem, ECQueryProcessFlags.SearchAllClasses);//获得元素EC实例集
foreach (IDgnECInstance instance in instCol)//遍历属性集中的EC实例
{
if (instance.ClassDefinition.Name == "ComplexClass")//根据实例类名称条件筛选
{
instance.SetString("StringProperty", "Test for Change EC Instance Property on Element");//设置属性值
instance.WriteChanges();//更新文件上的EC实例
}
}
}
}
本案例中,名为"StringProperty"的EC属性将原来为空的属性值修改为"Test for Change EC Instance Property on Element"的字符串。
移除元素上的EC实例
当我们移除元素上挂接的EC实例时,首先需要找到需要移除EC实例的元素,然后获取对应的EC实例后使用Delete( )执行EC实例删除的操作。
public static void RemoveECInstanceOnElem(string unparsed)
{
DgnModel dgnModel = Session.Instance.GetActiveDgnModel();//获得当前激活的模型空间
ModelElementsCollection elems= dgnModel.GetGraphicElements();//获得模型空间中的图形元素
foreach (Element elem in elems)//遍历图形元素
{
DgnECInstanceCollection instCol = DgnECManager.Manager.GetElementProperties(elem, ECQueryProcessFlags.SearchAllClasses);//获得元素EC实例集
foreach (IDgnECInstance instance in instCol)//遍历属性集中的EC实例
{
if (instance.ClassDefinition.Name == "ComplexClass")//根据实例类名称条件筛选
{
DeleteDgnECInstanceStatus state =instance.Delete();//删除EC实例
MessageBox.Show("Remove EC Instance On Elem Status:\n" + state.ToString());//对话框输出删除结果
}
}
}
}
创建ECRelationship
当我们需要建立EC类之间的关系时,就需要使用ECRelationship。首先我们需要在Schema文件中对用于关联的EC类与对应的ECRelationship进行定义,定义完成后才能实现对ECRelationship的挂接操作。为了说明问题,我们举一个较为简单的例子,下方的Schema文件中定义了三个EC类,分别名为"Widget",“Gadget1"与"Gadget2”。而下方的ECRelationshipClass中将三者之间的关系进行定义,即名为"Widget"拥有"Gadget1"与"Gadget2"。
<?xml version="1.0" encoding="utf-8"?>
<ECSchema schemaName="Simple" nameSpacePrefix="demo" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.2.0">
<ECClass typeName="Widget" isDomainClass="True">
<ECProperty propertyName="Manufacturer" typeName="string" />
</ECClass>
<ECClass typeName="Gadget1" isDomainClass="True">
<ECProperty propertyName="Manufacturer" typeName="string" />
</ECClass>
<ECClass typeName="Gadget2" isDomainClass="True">
<ECProperty propertyName="Manufacturer" typeName="string" />
</ECClass>
<ECRelationshipClass typeName="WidgetHasGadgets" description="WidgetHasGadgets" isDomainClass="True" strength="referencing" strengthDirection="forward">
<Source cardinality="(1,1)" roleLabel="has Gadgets" polymorphic="False">
<Class class="Widget" />
</Source>
<Target cardinality="(1,N)" roleLabel="are held by Widget" polymorphic="False">
<Class class="Gadget1" />
<Class class="Gadget2" />
</Target>
</ECRelationshipClass>
</ECSchema>
#region Create ECInstanceRelationship
LineElement gadgetLine = CreateLine(0, 0, 0, 100);//创建线元素
IECClass ecGadgetClass1 = ecSimpleSchema.GetClass("Gadget1");//在ECSchema中获取指定名称的EC类
DgnECInstanceEnabler gadgetEnabler1 = dgnECManager.ObtainInstanceEnabler(activeDgnFile, ecGadgetClass1);//获得EC实例启动器
ECDInstance gadgetWipInstance1 = gadgetEnabler1.SharedWipInstance;//获得EC实例
gadgetWipInstance1.SetAsString("Manufacturer", "Sample App Gadget Manufacturer1");//设置对应属性值
gadgetInstance1 = gadgetEnabler1.CreateInstanceOnElement(gadgetLine, gadgetWipInstance1, false);//在元素上创建EC实例
IECClass ecGadgetClass2 = ecSimpleSchema.GetClass("Gadget2");
DgnECInstanceEnabler gadgetEnabler2 = dgnECManager.ObtainInstanceEnabler(activeDgnFile, ecGadgetClass2);//获得EC实例启动器
ECDInstance gadgetWipInstance2 = gadgetEnabler2.SharedWipInstance;//获得EC实例
gadgetWipInstance2.SetAsString("Manufacturer", "Sample App Gadget Manufacturer2");//设置对应属性值
gadgetInstance2 = gadgetEnabler2.CreateInstanceOnElement(gadgetLine, gadgetWipInstance2, false);//在元素上创建EC实例
MessageCenter.Instance.StatusMessage = "Success_GadgetCreate";//输出EC实例创建成功的信息
}
catch (Exception ex)
{
MessageCenter.Instance.StatusWarning = ex.Message;//输出错误信息
}
}
/// <summary>
/// creating relationship between gadget and widget instance.
/// </summary>
public static void CreatingWidgetGadgetRelationship(IECSchema ecSimpleSchema)
{
try
{
DgnFile activeDgnFile = Session.Instance.GetActiveDgnFile();//获得当前激活的文件
DgnECManager dgnECManager = DgnECManager.Manager;//获取DgnECManager
if (null == dgnECManager)//判断DgnECManager是否存在
return;//返回
if (null == ecSimpleSchema)//判断ECSchema是否存在
{
MessageCenter.Instance.StatusWarning = "ERROR_SCHEMANOTFOUND";//输出未找到ECSchema的提示
return;//返回
}
string widgetHasGadgetClassName = "WidgetHasGadgets"; //设置ECRelationship名称,其中ECRelationship名称已经存在ECShema中
IECRelationshipClass widgetHasGadgetRelationshipClass = ecSimpleSchema.GetClass(widgetHasGadgetClassName) as IECRelationshipClass;//获得ECRelationship
DgnECRelationshipEnabler relationshipEnabler = dgnECManager.ObtainDgnECRelationshipEnabler(activeDgnFile, widgetHasGadgetRelationshipClass);//为IECRelationshipClass-DgnFile对创建ECRelationship启动器
if (null == relationshipEnabler)//判断ECRelationship启动器是否成功激活
{
MessageCenter.Instance.StatusWarning = "ERROR_REL_ENABLER";//输出ECRelationship启动器不可用的提示
return;//返回
}
IECRelationshipInstance relationshipInstance = relationshipEnabler.CreateRelationshipOnElement(widgetInstance, gadgetInstance1);//在元素上创建ECRelationship实例
if (null == relationshipInstance)//判断ECRelationship实例是否存在
{
MessageCenter.Instance.StatusWarning = "ERROR_REL_INSTANCE";//输出ECRelationship实例获取失败的提示
return;//返回
}
relationshipInstance = relationshipEnabler.CreateRelationshipOnElement(widgetInstance, gadgetInstance2);//在元素上创建ECRelationship实例
if (null == relationshipInstance)//判断ECRelationship实例是否存在
{
MessageCenter.Instance.StatusWarning = "ERROR_REL_INSTANCE";//输出ECRelationship实例获取失败的提示
return;//返回
}
}
catch (Exception ex)
{
MessageCenter.Instance.StatusWarning = ex.Message;//输出错误信息
}
}
private static LineElement CreateLine(int x1, int y1, int x2, int y2)
{
DgnModel dgnModel = Session.Instance.GetActiveDgnModel();//获得当前激活的模型空间
DSegment3d segment = new DSegment3d(x1, y1, x2, y2);//创建直线几何
LineElement line = new LineElement(dgnModel, null, segment);//创建线元素
line.AddToModel();//将线元素写入模型
return line;//返回线元素
}
#endregion
#endregion