<ECProperty propertyName="Name" typeName="string"> <ECCustomAttributes> <PreviousNameArray xmlns="Bentley_Standard_CustomAttributes.01.00"> <PreviousNames> <PreviousName> <OldName /> <SchemaFullNameKey>TestSchema.01.00</SchemaFullNameKey> <IsNewInThisVersion>True</IsNewInThisVersion> </PreviousName> </PreviousNames> <PreviousNameAlreadySaved>True</PreviousNameAlreadySaved> </PreviousNameArray> <PropertyPriority xmlns="EditorCustomAttributes.01.00"> <Priority>100</Priority> </PropertyPriority> </ECCustomAttributes> </ECProperty>
Sub test() Dim oPH As PropertyHandler Set oPH = CreatePropertyHandler(ActiveModelReference.GetElementByID(DLongFromLong(32358))) oPH.SelectByAccessString "mingCheng" oPH.SetValue "12" End Sub
从你粘贴出来的ECSchema.XML中看到的ECProperty的名称是"Name",而你的代码中SelectByAccessString后指定的名称是"mingCheng",这两个名称不匹配。请查看一下是否是这个原因?
我这个xml粘贴自您给的文件!疏忽了,我使用的是我另写的xml,并没有不匹配,如下:
<ECProperty propertyName="mingCheng" typeName="String" displayLabel="名称"> <ECCustomAttributes> <PreviousNameArray xmlns="Bentley_Standard_CustomAttributes.01.00"> <PreviousNames> <PreviousName> <OldName /> <SchemaFullNameKey>TestSchema.01.00</SchemaFullNameKey> <IsNewInThisVersion>True</IsNewInThisVersion> </PreviousName> </PreviousNames> <PreviousNameAlreadySaved>True</PreviousNameAlreadySaved> </PreviousNameArray> <PropertyPriority xmlns="EditorCustomAttributes.01.00"> <Priority>100</Priority> </PropertyPriority> </ECCustomAttributes> </ECProperty>
符老师,根据你们的讨论我这边也将EC属性赋值成功,我想追问的是,如果一个已经附加自定义属性的元素在换父级对象后需要替换为不同的自定义属性!就是说:EC属性可以在附加完成后删除或替换吗?
XiaoHu said:EC属性可以在附加完成后删除或替换吗?
是可以的。但由于VBA功能太有限,需要切换到C#或C++中来完成。MSCE中的EC功能从底层上重写了(用C++代替了C#,C#效率太低),所以,强烈推荐您升级到MSCE。
ecsdk.chm、ecobjects.chm、ecservices.chm可以发一份给我邮箱吗?
yqw@focus-engineering.no拜托了。
这些文档只要安装了v8i的SDK,在C:\Program Files (x86)\Bentley\MicroStation V8i (SELECTseries)\Documentation下都有。
v8i SDK在哪里可以下载?
抱歉,Bentley目前关闭了所有V8i的下载通道(除了最新的V8iSS10以外),推荐使用CE版。如果您是BDN会员,请联系rick.zhai@bentley.com获得这个V8i版的SDK。