NW中創建接口的方法

比如需要創建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
 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章