Inheritance: BaseClassIfc, IfcMetricValueSelect, IfcAppliedValueSelect
コード例 #1
0
ファイル: IFC R.cs プロジェクト: jenca-cloud/ggIFC
		internal static void parseFields(IfcReference m, List<string> arrFields, ref int ipos)
		{
			m.mTypeIdentifier = arrFields[ipos++].Replace("'", "");
			m.mAttributeIdentifier = arrFields[ipos++].Replace("'", "");
			m.mInstanceName = arrFields[ipos++].Replace("'", "");
			string s = arrFields[ipos++];
			if (s.StartsWith("("))
				m.mListPositions = ParserSTEP.SplitLineFields(s.Substring(1, s.Length - 2)).ConvertAll(x => int.Parse(x));
			m.mInnerReference = ParserSTEP.ParseLink(arrFields[ipos++]);
		}
コード例 #2
0
 internal virtual List <IBaseClassIfc> retrieveReference(IfcReference reference)
 {
     return(reference.InnerReference != null ? null : new List <IBaseClassIfc>()
     {
     });
 }
コード例 #3
0
ファイル: IFC R.cs プロジェクト: jenca-cloud/ggIFC
		internal static IfcReference Parse(string strDef) { IfcReference m = new IfcReference(); int ipos = 0; parseFields(m, ParserSTEP.SplitLineFields(strDef), ref ipos); return m; }
コード例 #4
0
ファイル: IFC R.cs プロジェクト: jenca-cloud/ggIFC
		public IfcReference(DatabaseIfc db, string typeId, string attributeId, string instanceName, List<int> positions, IfcReference inner)
			: this(db, typeId, attributeId, instanceName, inner) { mListPositions.AddRange(positions); }
コード例 #5
0
ファイル: IFC R.cs プロジェクト: jenca-cloud/ggIFC
		public IfcReference(DatabaseIfc db, string typeId, string attributeId, string instanceName, IfcReference inner)
			: this(db,typeId,attributeId,instanceName) { InnerReference = inner; }
コード例 #6
0
ファイル: IFC R.cs プロジェクト: jenca-cloud/ggIFC
		internal IfcReference(IfcReference r) : base()
		{
			mTypeIdentifier = r.mTypeIdentifier;
			mAttributeIdentifier = r.mAttributeIdentifier;
			mInstanceName = r.mInstanceName;
			mListPositions.AddRange(r.mListPositions);
			mInnerReference = r.mInnerReference;
		}
コード例 #7
0
ファイル: IFC E.cs プロジェクト: jmirtsch/GeometryGymIFC
		internal override List<IBaseClassIfc> retrieveReference(IfcReference reference)
		{
			IfcReference ir = reference.InnerReference;
			List<IBaseClassIfc> result = new List<IBaseClassIfc>();
			if (ir == null)
			{
				if (string.Compare(reference.mAttributeIdentifier, "Quantities", true) == 0)
				{
					List<IfcPhysicalQuantity> quants = Quantities;
					if (reference.mListPositions.Count == 0)
					{
						string name = reference.InstanceName;
						if (!string.IsNullOrEmpty(name))
						{
							foreach (IfcPhysicalQuantity q in quants)
							{
								if (string.Compare(q.Name, name) == 0)
									result.Add(q);
							}
						}
						else
							result.AddRange(quants);
					}
					else
					{
						foreach (int i in reference.mListPositions)
						{
							result.Add(quants[i - 1]);
						}
					}
					return result;
				}
			}
			if (string.Compare(reference.mAttributeIdentifier, "Quantities", true) == 0)
			{
				List<IfcPhysicalQuantity> quants = Quantities;
				if (reference.mListPositions.Count == 0)
				{
					string name = reference.InstanceName;

					if (string.IsNullOrEmpty(name))
					{
						foreach (IfcPhysicalQuantity q in quants)
							result.AddRange(q.retrieveReference(reference.InnerReference));
					}
					else
					{
						foreach (IfcPhysicalQuantity q in quants)
						{
							if (string.Compare(name, q.Name) == 0)
								result.AddRange(q.retrieveReference(reference.InnerReference));
						}
					}
				}
				else
				{
					foreach (int i in reference.mListPositions)
						result.AddRange(quants[i - 1].retrieveReference(ir));
				}
				return result;
			}
			return base.retrieveReference(reference);
		}