Пример #1
0
 protected override void setJSON(JObject obj, BaseClassIfc host, HashSet <int> processed)
 {
     base.setJSON(obj, host, processed);
     obj["MaterialLayers"] = new JArray(MaterialLayers.ToList().ConvertAll(x => x.getJson(this, processed)));
     setAttribute(obj, "LayerSetName", Name);
     setAttribute(obj, "Description", Description);
 }
        protected override void Process(IFCAnyHandle ifcMaterialLayerSet)
        {
            base.Process(ifcMaterialLayerSet);

            IList <IFCAnyHandle> ifcMaterialLayers =
                IFCAnyHandleUtil.GetAggregateInstanceAttribute <List <IFCAnyHandle> >(ifcMaterialLayerSet, "MaterialLayers");

            if (ifcMaterialLayers == null)
            {
                Importer.TheLog.LogError(ifcMaterialLayerSet.Id, "Expected at least 1 IfcMaterialLayer, found none.", false);
                return;
            }

            foreach (IFCAnyHandle ifcMaterialLayer in ifcMaterialLayers)
            {
                IFCMaterialLayer materialLayer = null;
                if (materialLayer is IFCMaterialLayerWithOffsets)
                {
                    materialLayer = IFCMaterialLayerWithOffsets.ProcessIFCMaterialLayerWithOffsets(ifcMaterialLayer);
                }
                else
                {
                    materialLayer = IFCMaterialLayer.ProcessIFCMaterialLayer(ifcMaterialLayer);
                }

                if (materialLayer != null)
                {
                    MaterialLayers.Add(materialLayer);
                }
            }

            LayerSetName = IFCImportHandleUtil.GetOptionalStringAttribute(ifcMaterialLayerSet, "LayerSetName", null);
        }
Пример #3
0
 internal override void parseJObject(JObject obj)
 {
     base.parseJObject(obj);
     MaterialLayers.AddRange(mDatabase.extractJArray <IfcMaterialLayer>(obj.GetValue("MaterialLayers", StringComparison.InvariantCultureIgnoreCase) as JArray));
     LayerSetName = extractString(obj.GetValue("LayerSetName", StringComparison.InvariantCultureIgnoreCase));
     Description  = extractString(obj.GetValue("Description", StringComparison.InvariantCultureIgnoreCase));
 }
Пример #4
0
 internal override void ParseXml(XmlElement xml)
 {
     base.ParseXml(xml);
     foreach (XmlNode child in xml.ChildNodes)
     {
         string name = child.Name;
         if (string.Compare(name, "MaterialLayers") == 0)
         {
             foreach (XmlNode node in child.ChildNodes)
             {
                 IfcMaterialLayer l = mDatabase.ParseXml <IfcMaterialLayer>(node as XmlElement);
                 if (l != null)
                 {
                     MaterialLayers.Add(l);
                 }
             }
         }
     }
     if (xml.HasAttribute("LayerSetName"))
     {
         LayerSetName = xml.Attributes["LayerSetName"].Value;
     }
     if (xml.HasAttribute("Description"))
     {
         Description = xml.Attributes["Description"].Value;
     }
 }
Пример #5
0
        internal PrinterSettingsLayer GetMaterialLayer(string layerID)
        {
            if (string.IsNullOrEmpty(layerID))
            {
                return(null);
            }

            return(MaterialLayers.Where(layer => layer.LayerID == layerID).FirstOrDefault());
        }
Пример #6
0
 internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary <int, BaseClassIfc> dictionary)
 {
     MaterialLayers.AddRange(ParserSTEP.StripListLink(str, ref pos, len).Select(x => dictionary[x] as IfcMaterialLayer));
     mLayerSetName = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
     if (release != ReleaseVersion.IFC2x3)
     {
         mDescription = ParserIfc.Decode(ParserSTEP.StripString(str, ref pos, len));
     }
 }
Пример #7
0
        public override string GetStepParameters()
        {
            var parameters = new List <string>();

            parameters.Add(MaterialLayers != null ? MaterialLayers.ToStepValue() : "$");
            parameters.Add(LayerSetName != null ? LayerSetName.ToStepValue() : "$");
            parameters.Add(Description != null ? Description.ToStepValue() : "$");

            return(string.Join(", ", parameters.ToArray()));
        }
Пример #8
0
        internal SettingsLayer GetMaterialLayer(string key)
        {
            if (string.IsNullOrEmpty(key))
            {
                return(null);
            }

            // Find the first matching layer in either the user or the OEM layers
            SettingsLayer layer = null;

            if (!MaterialLayers.TryGetValue(key, out layer))
            {
                OemProfile.MaterialLayers.TryGetValue(key, out layer);
            }

            return(layer);
        }