internal override void ParseXml(XmlElement xml) { base.ParseXml(xml); foreach (XmlNode child in xml.ChildNodes) { string name = child.Name; if (string.Compare(name, "ShapeOfProduct") == 0) { foreach (XmlNode cn in child.ChildNodes) { IfcProduct product = mDatabase.ParseXml <IfcProduct>(cn as XmlElement); if (product != null) { mShapeOfProduct.Add(product); } } } if (string.Compare(name, "HasShapeAspects") == 0) { foreach (XmlNode cn in child.ChildNodes) { IfcShapeAspect aspect = mDatabase.ParseXml <IfcShapeAspect>(cn as XmlElement); if (aspect != null) { mHasShapeAspects.Add(aspect); } } } } }
internal IfcWindowPanelProperties(DatabaseIfc db, IfcWindowPanelProperties p) : base(db, p) { mOperationType = p.mOperationType; mPanelPosition = p.mPanelPosition; mFrameDepth = p.mFrameDepth; mFrameThickness = p.mFrameThickness; if (p.mShapeAspectStyle > 0) { ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle) as IfcShapeAspect; } }
internal IfcWindowPanelProperties(DatabaseIfc db, IfcWindowPanelProperties p, DuplicateOptions options) : base(db, p, options) { mOperationType = p.mOperationType; mPanelPosition = p.mPanelPosition; mFrameDepth = p.mFrameDepth; mFrameThickness = p.mFrameThickness; if (p.mShapeAspectStyle != null) { ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle); } }
internal IfcWindowLiningProperties(DatabaseIfc db, IfcWindowLiningProperties p, DuplicateOptions options) : base(db, p, options) { mLiningDepth = p.mLiningDepth; mLiningThickness = p.mLiningThickness; mTransomThickness = p.mTransomThickness; mMullionThickness = p.mMullionThickness; mFirstTransomOffset = p.mFirstTransomOffset; mSecondTransomOffset = p.mSecondTransomOffset; mFirstMullionOffset = p.mFirstMullionOffset; mSecondMullionOffset = p.mSecondMullionOffset; ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle); mLiningOffset = p.mLiningOffset; mLiningToPanelOffsetX = p.mLiningToPanelOffsetX; mLiningToPanelOffsetY = p.mLiningToPanelOffsetY; }
internal IfcWindowLiningProperties(DatabaseIfc db, IfcWindowLiningProperties p, IfcOwnerHistory ownerHistory, bool downStream) : base(db, p, ownerHistory, downStream) { mLiningDepth = p.mLiningDepth; mLiningThickness = p.mLiningThickness; mTransomThickness = p.mTransomThickness; mMullionThickness = p.mMullionThickness; mFirstTransomOffset = p.mFirstTransomOffset; mSecondTransomOffset = p.mSecondTransomOffset; mFirstMullionOffset = p.mFirstMullionOffset; mSecondMullionOffset = p.mSecondMullionOffset; if (p.mShapeAspectStyle > 0) { ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle) as IfcShapeAspect; } mLiningOffset = p.mLiningOffset; mLiningToPanelOffsetX = p.mLiningToPanelOffsetX; mLiningToPanelOffsetY = p.mLiningToPanelOffsetY; }
internal void setAggregate(BaseClassIfc obj) { IfcProduct product = obj as IfcProduct; if (product != null) { mProducts.Add(product); IfcBuildingStorey buildingStorey = obj as IfcBuildingStorey; if (buildingStorey != null) { mBuildingStories.Add(buildingStorey); } IfcGrid grid = obj as IfcGrid; if (grid != null) { mGrids.Add(grid); } IfcSlab slab = product as IfcSlab; if (slab != null) { mSlabs.Add(slab); } IfcStructuralItem structuralItem = obj as IfcStructuralItem; if (structuralItem != null) { mStructItems.Add(structuralItem); } IfcWall wall = product as IfcWall; if (wall != null) { mWalls.Add(wall); } return; } //IfcApplication application = obj as IfcApplication; //if (application != null) // mApplications.Add(application); IfcComplexProperty cp = obj as IfcComplexProperty; if (cp != null) { mComplexProperties.Add(cp); return; } IfcCoordinateOperation coordOp = obj as IfcCoordinateOperation; if (coordOp != null) { mCoordinateOperations.Add(coordOp); return; } IfcEdgeCurve edgeCurve = obj as IfcEdgeCurve; if (edgeCurve != null) { mEdgeCurves.Add(edgeCurve); return; } IfcExternalReferenceRelationship externalReferenceRelationship = obj as IfcExternalReferenceRelationship; if (externalReferenceRelationship != null) { mExternalRelationships.Add(externalReferenceRelationship); return; } //IfcExtrudedAreaSolid extrudedAreaSolid = result as IfcExtrudedAreaSolid; //if(extrudedAreaSolid != null) //{ // if(result as IfcExtrudedAreaSolidTapered == null) // aggregate.mExtrusions.Add(extrudedAreaSolid); // return extrudedAreaSolid; //} IfcGeometricRepresentationSubContext geometricRepresentationContext = obj as IfcGeometricRepresentationSubContext; if (geometricRepresentationContext != null) { mGeomContexts.Add(geometricRepresentationContext); return; } IfcGroup group = obj as IfcGroup; if (group != null) { IfcZone zone = group as IfcZone; if (zone != null) { mZones.Add(zone); return; } mGroups.Add(group); return; } IfcIndexedColourMap indexedColourMap = obj as IfcIndexedColourMap; if (indexedColourMap != null) { mIndexedColourMap.Add(indexedColourMap); return; } IfcIndexedTextureMap indexedTextureMap = obj as IfcIndexedTextureMap; if (indexedTextureMap != null) { mIndexedTextureMap.Add(indexedTextureMap); return; } IfcLocalPlacement localPlacement = obj as IfcLocalPlacement; if (localPlacement != null) { mLocalPlacements.Add(localPlacement); return; } IfcMappedItem mi = obj as IfcMappedItem; if (mi != null) { mMappedItems.Add(mi); return; } IfcMaterial material = obj as IfcMaterial; if (material != null) { mMaterials.Add(material); return; } IfcMaterialProperties materialProperties = obj as IfcMaterialProperties; if (materialProperties != null) { mMaterialProperties.Add(materialProperties); return; } IfcMaterialPropertiesSuperSeded materialPropertiesSS = obj as IfcMaterialPropertiesSuperSeded; if (materialPropertiesSS != null) { mMaterialPropertiesSS.Add(materialPropertiesSS); return; } // IfcMechanicalFastener mechanicalFastener = result as IfcMechanicalFastener; //if(mechanicalFastener != null) //{ // mFasteners.Add(mechanicalFastener); // return mechanicalFastener; //} //IfcOwnerHistory ownerHistory = result as IfcOwnerHistory; //if(ownerHistory != null) //{ // mOwnHistories.Add(ownerHistory); // return ownerHistory; //} IfcPresentationLayerAssignment presentationLayerAssignment = obj as IfcPresentationLayerAssignment; if (presentationLayerAssignment != null) { mPresentationLayerAssignments.Add(presentationLayerAssignment); return; } IfcProductRepresentation productRepresentation = obj as IfcProductRepresentation; if (productRepresentation != null) { mProductReps.Add(productRepresentation); return; } IfcPropertySet propSet = obj as IfcPropertySet; if (propSet != null) { mPropertySets.Add(propSet); return; } //IfcProfileDef profileDef = obj as IfcProfileDef; //if (profileDef != null) //{ // mProfiles.Add(profileDef); // return profileDef; //} IfcRelationship relationship = obj as IfcRelationship; if (relationship != null) { mRelationships.Add(relationship); return; } IfcRepresentation representation = obj as IfcRepresentation; if (representation != null) { mRepresentations.Add(representation); return; } //IfcRepresentationMap representationMap = obj as IfcRepresentationMap; //if (representationMap != null) //{ // mRepMaps.Add(representationMap); // return representationMap; //} IfcResourceConstraintRelationship rcr = obj as IfcResourceConstraintRelationship; if (rcr != null) { mConstraintRelationships.Add(rcr); return; } IfcShapeAspect shapeAspect = obj as IfcShapeAspect; if (shapeAspect != null) { mShapeAspects.Add(shapeAspect); return; } IfcStyledItem styledItem = obj as IfcStyledItem; if (styledItem != null) { mStyledItems.Add(styledItem); return; } IfcTypeProduct typeProduct = obj as IfcTypeProduct; if (typeProduct != null) { mTypeProducts.Add(typeProduct); return; } setCustomAggregate(obj); }
internal IfcDoorPanelProperties(DatabaseIfc db, IfcDoorPanelProperties p) : base(db, p) { mPanelDepth = p.mPanelDepth; mOperationType = p.mOperationType; mPanelWidth = p.mPanelWidth; mPanelPosition = p.mPanelPosition; if (p.mShapeAspectStyle > 0) ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle) as IfcShapeAspect; }
internal IfcDoorLiningProperties(DatabaseIfc db, IfcDoorLiningProperties p) : base(db, p) { mLiningDepth = p.mLiningDepth; mLiningThickness = p.mLiningThickness; mThresholdDepth = p.mThresholdDepth; mThresholdThickness = p.mThresholdThickness; mTransomThickness = p.mTransomThickness; mTransomOffset = p.mTransomOffset; mLiningOffset = p.mLiningOffset; mThresholdOffset = p.mThresholdOffset; mCasingThickness = p.mCasingThickness; mCasingDepth = p.mCasingDepth; if (p.mShapeAspectStyle > 0) ShapeAspectStyle = db.Factory.Duplicate(p.ShapeAspectStyle) as IfcShapeAspect; mLiningToPanelOffsetX = p.mLiningToPanelOffsetX; mLiningToPanelOffsetY = p.mLiningToPanelOffsetY; }
internal static void parseFields(IfcShapeAspect a, List<string> arrFields, ref int ipos) { a.mShapeRepresentations = ParserSTEP.SplitListLinks(arrFields[ipos++]); a.mName = arrFields[ipos++].Replace("'", ""); a.mDescription = arrFields[ipos++].Replace("'", ""); a.mProductDefinitional = ParserIfc.ParseIFCLogical(arrFields[ipos++]); a.mPartOfProductDefinitionShape = ParserSTEP.ParseLink(arrFields[ipos++]); }
internal static IfcShapeAspect Parse(string strDef) { IfcShapeAspect a = new IfcShapeAspect(); int ipos = 0; parseFields(a, ParserSTEP.SplitLineFields(strDef), ref ipos); return a; }
internal IfcShapeAspect(IfcShapeAspect a) : base() { mShapeRepresentations = new List<int>(a.mShapeRepresentations.ToArray()); mName = a.mName; mDescription = a.mDescription; mProductDefinitional = a.mProductDefinitional; mPartOfProductDefinitionShape = a.mPartOfProductDefinitionShape; }