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 static RevitInstance3D ToSAM(this WallSweep wallSweep, ConvertSettings convertSettings) { if (wallSweep == null || !wallSweep.IsValidObject) { return(null); } RevitInstance3D result = convertSettings?.GetObject <RevitInstance3D>(wallSweep.Id); if (result != null) { return(result); } Document document = wallSweep.Document; if (document == null) { return(result); } ElementType elementType = document.GetElement(wallSweep.GetTypeId()) as ElementType; if (elementType == null) { return(null); } RevitType3D revitType3D = elementType.ToSAM(convertSettings) as RevitType3D; if (revitType3D == null) { return(null); } result = new RevitInstance3D(revitType3D, wallSweep.ToSAM_Geometries <Spatial.ISAMGeometry3D>()); if (result != null) { result.UpdateParameterSets(elementType, ActiveSetting.Setting.GetValue <TypeMap>(Core.Revit.ActiveSetting.Name.ParameterMap)); convertSettings?.Add(elementType.Id, result); } return(result); }
public RevitInstance3D(RevitInstance3D revitInstance3D) : base(revitInstance3D) { }