コード例 #1
0
        public static void RemoveObjectFromClassificationNotation(this IfcClassificationNotationSelect cls, IfcRoot root)
        {
            var model = cls.Model;
            var rel   = model.Instances.FirstOrDefault <IfcRelAssociatesClassification>(r => r.RelatingClassification == cls);

            if (rel == null)
            {
                return;
            }
            if (rel.RelatedObjects.Contains(root))
            {
                rel.RelatedObjects.Remove(root);
            }
        }
コード例 #2
0
ファイル: BbMaterial.cs プロジェクト: JackTing/ifctoolkit
        /// <summary>
        /// do not use obsolete
        /// </summary>
        /// <param name="location"></param>
        /// <param name="itemReference"></param>
        /// <param name="name"></param>
        BbMaterial(string location, string itemReference, string name)
        {
            IfcMaterial = new IfcMaterial
                            {
                                Name = name
                            };

            IfcMaterialClassificationRelationship
                = new IfcMaterialClassificationRelationship
                      {
                          MaterialClassifications = new List<IfcClassificationNotationSelect>(),
                          ClassifiedMaterial = IfcMaterial,
                      };

            IfcClassificationReference
                = new IfcClassificationReference
                      {
                          Location = location,
                          ItemReference = itemReference,
                          Name = name,
                      };

            var ns
                = new IfcClassificationNotationSelect
                         {
                             Value = IfcClassificationReference,
                         };

            IfcMaterialClassificationRelationship.MaterialClassifications.Add(ns);
            //var ifcMaterialLayer = new IfcMaterialLayer
            //    {
            //        Material = IfcMaterial,
            //        LayerThickness = new IfcPositiveLengthMeasure { Value = 0.0 },

            //    };

            //var ifcMaterialLayerSet = new IfcMaterialLayerSet
            //    {
            //        MaterialLayers = new List<IfcMaterialLayer>(),

            //    };
            //ifcMaterialLayerSet.MaterialLayers.Add(ifcMaterialLayer);
            //var ifcMaterialLayerSetUsage = new IfcMaterialLayerSetUsage
            //    {
            //        ForLayerSet = ifcMaterialLayerSet,
            //        LayerSetDirection = IfcLayerSetDirectionEnum.
            //    };
        }
コード例 #3
0
        /// <summary>
        /// do not use obsolete
        /// </summary>
        /// <param name="location"></param>
        /// <param name="itemReference"></param>
        /// <param name="name"></param>
        BbMaterial(string location, string itemReference, string name)
        {
            IfcMaterial = new IfcMaterial
            {
                Name = name
            };

            IfcMaterialClassificationRelationship
                = new IfcMaterialClassificationRelationship
                {
                MaterialClassifications = new List <IfcClassificationNotationSelect>(),
                ClassifiedMaterial      = IfcMaterial,
                };

            IfcClassificationReference
                = new IfcClassificationReference
                {
                Location      = location,
                ItemReference = itemReference,
                Name          = name,
                };

            var ns
                = new IfcClassificationNotationSelect
                {
                Value = IfcClassificationReference,
                };

            IfcMaterialClassificationRelationship.MaterialClassifications.Add(ns);
            //var ifcMaterialLayer = new IfcMaterialLayer
            //    {
            //        Material = IfcMaterial,
            //        LayerThickness = new IfcPositiveLengthMeasure { Value = 0.0 },

            //    };

            //var ifcMaterialLayerSet = new IfcMaterialLayerSet
            //    {
            //        MaterialLayers = new List<IfcMaterialLayer>(),

            //    };
            //ifcMaterialLayerSet.MaterialLayers.Add(ifcMaterialLayer);
            //var ifcMaterialLayerSetUsage = new IfcMaterialLayerSetUsage
            //    {
            //        ForLayerSet = ifcMaterialLayerSet,
            //        LayerSetDirection = IfcLayerSetDirectionEnum.
            //    };
        }
コード例 #4
0
        public static void AddObjectToClassificationNotation(this IfcClassificationNotationSelect cls, IfcRoot root)
        {
            var model = cls.Model;
            var rel   = model.Instances.FirstOrDefault <IfcRelAssociatesClassification>(r => r.RelatingClassification == cls);

            if (rel == null)
            {
                model.Instances.New <IfcRelAssociatesClassification>(r =>
                {
                    r.RelatingClassification = cls;
                    r.RelatedObjects.Add(root);
                });
            }
            else if (!rel.RelatedObjects.Contains(root))
            {
                rel.RelatedObjects.Add(root);
            }
        }
コード例 #5
0
 public override void IfcParse(int propIndex, IPropertyValue value)
 {
     switch (propIndex)
     {
         case 0:
         case 1:
         case 2:
         case 3:
         case 4:
             base.IfcParse(propIndex, value);
             break;
         case 5:
             _relatingClassification = (IfcClassificationNotationSelect) value.EntityVal;
             break;
         default:
             this.HandleUnexpectedAttribute(propIndex, value); break;
     }
 }
コード例 #6
0
        public static IfcClassificationNotation GetFirstClassificationNotation(this IfcRoot root, IModel model)
        {
            IfcRelAssociatesClassification rel =
                model.Instances.Where <IfcRelAssociatesClassification>(r => r.RelatedObjects.Contains(root)).
                FirstOrDefault();

            if (rel == null)
            {
                return(null);
            }
            IfcClassificationNotationSelect notationSelect = rel.RelatingClassification;

            if (notationSelect is IfcClassificationReference)
            {
                Debug.WriteLine(
                    "Classification relation does not contain classification notation, but it contains external reference.");
                return(null);
            }
            return(notationSelect as IfcClassificationNotation);
        }
コード例 #7
0
        public override void Parse(int propIndex, IPropertyValue value, int[] nestedIndex)
        {
            switch (propIndex)
            {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
                base.Parse(propIndex, value, nestedIndex);
                return;

            case 5:
                _relatingClassification = (IfcClassificationNotationSelect)(value.EntityVal);
                return;

            default:
                throw new XbimParserException(string.Format("Attribute index {0} is out of range for {1}", propIndex + 1, GetType().Name.ToUpper()));
            }
        }
コード例 #8
0
        public override void IfcParse(int propIndex, IPropertyValue value)
        {
            switch (propIndex)
            {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
                base.IfcParse(propIndex, value);
                break;

            case 5:
                _relatingClassification = (IfcClassificationNotationSelect)value.EntityVal;
                break;

            default:
                this.HandleUnexpectedAttribute(propIndex, value); break;
            }
        }
コード例 #9
0
 public IfcRelAssociatesClassification(IfcGloballyUniqueId __GlobalId, IfcOwnerHistory __OwnerHistory, IfcLabel?__Name, IfcText?__Description, IfcRoot[] __RelatedObjects, IfcClassificationNotationSelect __RelatingClassification)
     : base(__GlobalId, __OwnerHistory, __Name, __Description, __RelatedObjects)
 {
     this._RelatingClassification = __RelatingClassification;
 }