我们有Package-A,其中我们有10个class元素。我们有另一个Package-B。现在我们想要通过Addin将Package-A中的元素移动到Package-B。这可以通过EA实现插件
即使将子包从包A移动到包-B也是一样的
答案 0 :(得分:1)
使用PackageB ID为所有类元素设置PackageID属性。
示例代码
foreach(EA.Element classElement in PackageA.elements)
{
classElement.PackageID = packageb.PackageID :
classElement.Update();
}
答案 1 :(得分:0)
这是一种通过SQL在没有任何脚本的情况下立即执行此操作的方法。 在EA的SQL Scratchpad中执行此操作。
复制目标包的GUID在剪贴板中,例如{61068DDF-335B-4b29-89F8-C54A7000EF6F})
它的包ID如下:
select Package_ID from t_package where ea_guid='{61068DDF-335B-4b29-89F8-C54A7000EF6F}'
复制剪贴板中源包的GUID,例如{F3B52DA0-D9E9-4606-BCA0-5D211B73FBE6}。
它的包ID如下:
select Package_ID from t_package where ea_guid='{F3B52DA0-D9E9-4606-BCA0-5D211B73FBE6}'
因此,源包中的元素是:
select * from t_object where Package_ID=(select Package_ID from t_package where ea_guid='{F3B52DA0-D9E9-4606-BCA0-5D211B73FBE6}')
所以,让我们去那个目标。
update t_object
set Package_ID=(select Package_ID from t_package where ea_guid='{61068DDF-335B-4b29-89F8-C54A7000EF6F}'
where Package_ID=(
select Package_ID from t_package where ea_guid='{F3B52DA0-D9E9-4606-BCA0-5D211B73FBE6}'
)
应该做的伎俩。
首先备份您的模型。
对于加载项,只需要获取两个GUID和Repository.Execute(theSQLString)。
Repository.Execute不在doc中,但有效。