Ejemplo n.º 1
0
 public MEPOpeningMaker(Document document, ComparisonCoupleElement openningModel, string projectName = "")
 {
     _doc = document;
     _comparionCoupleElement = openningModel;
     _openningModel          = openningModel.ServerGeometry;
     GetValueGeometry(openningModel.ServerGeometry);
     if (Common.IsEqual(_direction, XYZ.BasisZ) || Common.IsEqual(_direction, XYZ.BasisZ.Negate()))
     {
         _isVertical = true;
         if (_shapeProfile == Define.RECTANGLE_FAMILY)
         {
             _openningName = Define.FLOOR_OPENNING_RECTANGLE_NAME_MEP;
         }
         else if (_shapeProfile == Define.CYLYNDER_FAMILY)
         {
             _openningName = Define.FLOOR_OPENNING_CYLYNDER_NAME_MEP;
         }
     }
     else
     {
         _isVertical = false;
         if (_shapeProfile == Define.RECTANGLE_FAMILY)
         {
             _openningName = Define.WALL_OPENNING_RECTANGLE_NAME_MEP;
         }
         else if (_shapeProfile == Define.CYLYNDER_FAMILY)
         {
             _openningName = Define.WALL_OPENNING_CYLYNDER_NAME_MEP;
         }
     }
 }
Ejemplo n.º 2
0
        private void Implement(ComparisonCoupleElement comparisonCoupleElement)
        {
            GeometryDetail openningModelSever = comparisonCoupleElement.ServerGeometry;
            GeometryDetail openningModelLocal = comparisonCoupleElement.LocalGeometry;

            OpeningName = comparisonCoupleElement.Name;
            if (openningModelLocal != null)
            {
                if (openningModelLocal.Original != null)
                {
                    string original = GetOriginalStrFromJson(openningModelLocal.Original);
                    CoordinateCurent = original;
                }

                if (openningModelLocal.Geometry != null)
                {
                    string geometry = GetGeometryStrFromJson(openningModelLocal.Geometry);
                    DimentionCurent = geometry;
                }

                if (openningModelLocal.Direction != null)
                {
                    string direction = GetDirectionStrFromJson(openningModelLocal.Direction);
                    DirectionCurent = direction;
                }

                if (comparisonCoupleElement.CurrentVersionGeometryOfLocal != null)
                {
                    ElementVersionCurent = comparisonCoupleElement.CurrentVersionGeometryOfLocal;
                }
            }
            if (openningModelSever != null)
            {
                if (openningModelSever.Original != null)
                {
                    string original = GetOriginalStrFromJson(openningModelSever.Original);
                    CoordinateLastest = original;
                }
                if (openningModelSever.Geometry != null)
                {
                    string geometry = GetGeometryStrFromJson(openningModelSever.Geometry);
                    DimentionLastest = geometry;
                }
                if (openningModelSever.Direction != null)
                {
                    string direction = GetDirectionStrFromJson(openningModelSever.Direction);
                    DirectionLastest = direction;
                }
                if (openningModelSever.Version != null)
                {
                    ElementVersionLastest     = openningModelSever.Version;
                    ElementVersionLastestDate = String.Format("{0:f}", openningModelSever.UpdatedDate);
                }
            }
            Id             = comparisonCoupleElement.Id;
            revitElementId = comparisonCoupleElement.IdRevitElement;
            _comment       = comparisonCoupleElement.Comment;
        }
Ejemplo n.º 3
0
 private Level GetLevelFromLocation(GeometryDetail geometryDetail)
 {
     if (geometryDetail != null)
     {
         XYZ curentLocation            = GetOriginalFromJson(geometryDetail.Original) / 304.8;
         Autodesk.Revit.DB.Level level = Common.GetNearestLevel(_doc, curentLocation);
         return(level);
     }
     else
     {
         return(null);
     }
 }
Ejemplo n.º 4
0
        private CurveArray GetProfile(XYZ origin, GeometryDetail openingData)
        {
            CurveArray curveArray = null;

            if (_shapeProfile == Define.RECTANGLE_FAMILY)
            {
                curveArray = SetRectangleProfile(origin, _lenght, _width);
            }
            else if (_shapeProfile == Define.CYLYNDER_FAMILY)
            {
                curveArray = SetCylynderProfile(origin, _radius);
            }
            return(curveArray);
        }
Ejemplo n.º 5
0
 private void GetValueGeometry(GeometryDetail openingData)
 {
     _shapeProfile = ConvertOpenningStringToObjectReVit.GetShapeFromGeometry(openingData.Geometry);
     _origin       = ConvertOpenningStringToObjectReVit.GetOriginal(openingData.Original);
     _height       = ConvertOpenningStringToObjectReVit.GetHeightFromGeometry(openingData.Geometry) / Define.mmToFeet;
     _direction    = ConvertOpenningStringToObjectReVit.getDirection(openingData.Direction);
     _angle        = ConvertOpenningStringToObjectReVit.getAngle(openingData.Direction);
     if (_shapeProfile == Define.RECTANGLE_FAMILY)
     {
         _lenght = ConvertOpenningStringToObjectReVit.GetLengthFromGeometry(openingData.Geometry) / Define.mmToFeet;
         _width  = ConvertOpenningStringToObjectReVit.GetWidthFromGeometry(openingData.Geometry) / Define.mmToFeet;
     }
     else if (_shapeProfile == Define.CYLYNDER_FAMILY)
     {
         _radius = ConvertOpenningStringToObjectReVit.GetRadiusFromGeometry(openingData.Geometry) / Define.mmToFeet;
     }
 }
Ejemplo n.º 6
0
        private string LoadSharpOpenningForPreview(GeometryDetail openingData, bool isEdit, double firthAngle = 0)
        {
            //transaction.Start("Create Str Opening");
            // get data for base Level
            XYZ   basePoint = _origin;
            Level baseLevel = GetNearestLevel(basePoint, out XYZ baseDirectionToEndPoint, out double baseLenghtToEndPoint);
            // get data for top Level
            XYZ   topPoint = _origin + XYZ.BasisZ * _height;
            Level topLevel = GetNearestLevel(topPoint, out XYZ topDirectionToEndPoint, out double topLenghtToEndPoint);
            // get CurveArray
            CurveArray profile = GetProfile(basePoint, openingData);
            Opening    opening = _document.Create.NewOpening(baseLevel, topLevel, profile);

            TranformSharpOpenning(opening, baseDirectionToEndPoint, baseLenghtToEndPoint, topDirectionToEndPoint, topLenghtToEndPoint);
            //Get Guid and save to Comparetion
            if (isEdit == true)
            {
                UpdateShaftAngle(opening.Id, firthAngle);
            }
            UpdateShaftAngle(opening.Id, isEdit);
            return(opening.UniqueId);
            //transaction.Commit();
        }