比如需要创建InwOaPropertyVec、InwOaProperty、InwGUIPropertyNode2等,则可以使用下面的通用方法进行创建。
public static T NewObject<T>(this InwOpState10 state)
{
try
{
Type type = typeof(T);
string value = "eObjectType_" + type.Name;
nwEObjectType eType = (nwEObjectType)Enum.Parse(typeof(nwEObjectType), value, true);
T t = (T)state.ObjectFactory(eType, null, null);
return t;
}
catch (Exception ex)
{
return default(T);
}
}
示例
InwOaPropertyVec vec = ComApiBridge.State.NewObject();
InwOaProperty prop = ComApiBridge.State.NewObject();
InwGUIPropertyNode2 node = ComApiBridge.State.NewObject();常规
InwOaPropertyVec pVec = (InwOaPropertyVec)ComApiBridge.State.ObjectFactory(nwEObjectType.eObjectType_nwOaPropertyVec, null, null);
它可以创建的对象很多,nwEObjectType枚举中的对象都可以创建。
public enum nwEObjectType
{
eObjectType_Reserved = 0,
eObjectType_nwLBox3f = 1,
eObjectType_nwLPos3f = 2,
eObjectType_nwLVec3f = 3,
eObjectType_nwNvViewPoint = 4,
eObjectType_nwNvCamera = 5,
eObjectType_nwOpAnimView = 6,
eObjectType_nwOpAnonView = 7,
eObjectType_nwOpComment = 8,
eObjectType_nwOpCutView = 9,
eObjectType_nwOpFolderView = 10,
eObjectType_nwOpView = 11,
eObjectType_nwLRotation3f = 12,
eObjectType_nwOaClipPlane = 13,
eObjectType_nwLUnitVec3f = 14,
eObjectType_nwLPlane3f = 15,
eObjectType_nwOpSelectionSet = 16,
eObjectType_nwOaPath = 17,
eObjectType_nwOpSelection = 18,
eObjectType_nwOclClashTest = 19,
eObjectType_nwOaProperty = 20,
eObjectType_nwOaSpotLight = 21,
eObjectType_nwOaPointLight = 22,
eObjectType_nwOaDistantLight = 23,
eObjectType_nwLTransform3f = 24,
eObjectType_nwOaNat64Attribute = 25,
eObjectType_nwOaNameAttribute = 26,
eObjectType_nwOaTextAttribute = 27,
eObjectType_nwOaURLAttribute = 28,
eObjectType_nwOaMaterial = 29,
eObjectType_nwOaPropertyAttribute = 30,
eObjectType_nwOpFind = 31,
eObjectType_nwOpFindCondition = 32,
eObjectType_nwOpFindSpec = 33,
eObjectType_nwOpUserSelectionTreeSpec = 34,
eObjectType_nwOpUserFindSpec = 35,
eObjectType_nwURL = 36,
eObjectType_nwURLOverride = 37,
eObjectType_nwSmartTagsOpts = 38,
eObjectType_nwOaPropertyVec = 39,
eObjectType_nwOaPublishAttribute = 40,
eObjectType_nwOpSelectionSetFolder = 41
}