public static FamilyCreator CreateSimilar(FamilyInstance _fi, Document _tarDoc, int _hostLevel) { var type = HostUtils.GetHostingType(_fi); if (type == HostingType.FaceBased) { return(FaceBasedFamilyCreator.CreateSimilar(_fi, _tarDoc, _hostLevel)); } else if (type == HostingType.LineBasedOnLevel) { return(LineBasedFamilyCreator_onLevel.CreateSimilar(_fi, _tarDoc, _hostLevel)); } else if (type == HostingType.LineBasedOnFace) { return(LineBasedFamilyCreator_onPlanarFace.CreateSimilar(_fi, _tarDoc, _hostLevel)); } else if (type == HostingType.WallBased) { return(WallBasedFamilyCreator.CreateSimilar(_fi, _tarDoc, _hostLevel)); } else { return(null); } }