Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 public RevitInstance3D(RevitInstance3D revitInstance3D)
     : base(revitInstance3D)
 {
 }