public static IRevitInstance ToSAM(this FamilyInstance familyInstance, ConvertSettings convertSettings) { if (familyInstance == null || !familyInstance.IsValidObject) { return(null); } IRevitInstance result = convertSettings?.GetObject <IRevitInstance>(familyInstance.Id); if (result != null) { return(result); } Document document = familyInstance.Document; if (document == null) { return(result); } ElementType elementType = document.GetElement(familyInstance.GetTypeId()) as ElementType; if (elementType == null) { return(null); } RevitType revitType = elementType.ToSAM(convertSettings); if (revitType == null) { return(null); } if (revitType is RevitType3D) { result = new RevitInstance3D((RevitType3D)revitType, familyInstance.ToSAM_Geometries <Spatial.ISAMGeometry3D>()); } else if (revitType is RevitType2D) { result = new RevitInstance2D((RevitType2D)revitType, familyInstance.ToSAM_Geometries <Planar.ISAMGeometry2D>()); } if (result != null) { result.UpdateParameterSets(familyInstance, ActiveSetting.Setting.GetValue <TypeMap>(Core.Revit.ActiveSetting.Name.ParameterMap)); convertSettings?.Add(familyInstance.Id, result); } return(result); }
public RevitInstance2D(RevitInstance2D revitInstance2D) : base(revitInstance2D) { }