Ejemplo n.º 1
0
        public BuiltElements.Duct DuctToSpeckle(DB.Duct revitDuct)
        {
            var baseGeometry = LocationToSpeckle(revitDuct);
            var baseLine     = baseGeometry as Line;

            if (baseLine == null)
            {
                throw new Exception("Only line base Ducts are currently supported.");
            }

            // SPECKLE DUCT
            var speckleDuct = new RevitDuct();

            speckleDuct.family   = revitDuct.DuctType.FamilyName;
            speckleDuct.type     = revitDuct.DuctType.Name;
            speckleDuct.baseLine = baseLine;

            speckleDuct.diameter = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_DIAMETER_PARAM);
            speckleDuct.height   = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_HEIGHT_PARAM);
            speckleDuct.width    = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_WIDTH_PARAM);
            speckleDuct.length   = GetParamValue <double>(revitDuct, BuiltInParameter.CURVE_ELEM_LENGTH);
            speckleDuct.velocity = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_VELOCITY);
            speckleDuct.level    = ConvertAndCacheLevel(revitDuct, BuiltInParameter.RBS_START_LEVEL_PARAM);

            var typeElem = Doc.GetElement(revitDuct.MEPSystem.GetTypeId());

            speckleDuct.systemName = typeElem.Name;

            GetAllRevitParamsAndIds(speckleDuct, revitDuct,
                                    new List <string> {
                "RBS_CURVE_HEIGHT_PARAM", "RBS_CURVE_WIDTH_PARAM", "RBS_CURVE_DIAMETER_PARAM", "CURVE_ELEM_LENGTH", "RBS_START_LEVEL_PARAM", "RBS_VELOCITY"
            });

            return(speckleDuct);
        }
Ejemplo n.º 2
0
        public BuiltElements.Duct DuctToSpeckle(DB.Duct revitDuct)
        {
            var baseGeometry = LocationToSpeckle(revitDuct);

            if (!(baseGeometry is Line baseLine))
            {
                throw new Speckle.Core.Logging.SpeckleException("Only line based Ducts are currently supported.");
            }

            // SPECKLE DUCT
            var speckleDuct = new RevitDuct
            {
                family      = revitDuct.DuctType.FamilyName,
                type        = revitDuct.DuctType.Name,
                baseLine    = baseLine,
                diameter    = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_DIAMETER_PARAM),
                height      = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_HEIGHT_PARAM),
                width       = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_CURVE_WIDTH_PARAM),
                length      = GetParamValue <double>(revitDuct, BuiltInParameter.CURVE_ELEM_LENGTH),
                velocity    = GetParamValue <double>(revitDuct, BuiltInParameter.RBS_VELOCITY),
                level       = ConvertAndCacheLevel(revitDuct, BuiltInParameter.RBS_START_LEVEL_PARAM),
                displayMesh = GetElementMesh(revitDuct)
            };


            var typeElem = Doc.GetElement(revitDuct.MEPSystem.GetTypeId());

            speckleDuct.systemName = typeElem.Name;

            GetAllRevitParamsAndIds(speckleDuct, revitDuct,
                                    new List <string>
            {
                "RBS_CURVE_HEIGHT_PARAM", "RBS_CURVE_WIDTH_PARAM", "RBS_CURVE_DIAMETER_PARAM", "CURVE_ELEM_LENGTH",
                "RBS_START_LEVEL_PARAM", "RBS_VELOCITY"
            });
            //Report.Log($"Converted Duct {revitDuct.Id}");
            return(speckleDuct);
        }