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); } }
/// <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. // }; }
/// <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. // }; }
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); } }
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; } }
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); }
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())); } }
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; } }
public IfcRelAssociatesClassification(IfcGloballyUniqueId __GlobalId, IfcOwnerHistory __OwnerHistory, IfcLabel?__Name, IfcText?__Description, IfcRoot[] __RelatedObjects, IfcClassificationNotationSelect __RelatingClassification) : base(__GlobalId, __OwnerHistory, __Name, __Description, __RelatedObjects) { this._RelatingClassification = __RelatingClassification; }