protected override string BuildStringSTEP()
 {
     if (PredefinedType != null && mDatabase.Release < ReleaseVersion.IFC4X3_RC1)
     {
         IfcBridgePartTypeEnum part = IfcBridgePartTypeEnum.NOTDEFINED;
         if (!PredefinedType.isEnumeration(ref part))
         {
             part = IfcBridgePartTypeEnum.NOTDEFINED;
         }
         return(base.BuildStringSTEP() + (part == IfcBridgePartTypeEnum.NOTDEFINED ? ",$" : ",." + part.ToString() + "."));
     }
     return(base.BuildStringSTEP());
 }
 internal override void parse(string str, ref int pos, ReleaseVersion release, int len, ConcurrentDictionary <int, BaseClassIfc> dictionary)
 {
     base.parse(str, ref pos, release, len, dictionary);
     if (release < ReleaseVersion.IFC4X3_RC1)
     {
         string s = ParserSTEP.StripField(str, ref pos, len);
         if (s.StartsWith("."))
         {
             IfcBridgePartTypeEnum partType = IfcBridgePartTypeEnum.NOTDEFINED;
             if (Enum.TryParse <IfcBridgePartTypeEnum>(s.Replace(".", ""), true, out partType))
             {
                 PredefinedType = new IfcFacilityPartTypeSelect(partType);
             }
         }
     }
 }