/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #ifndef _IFC_EX_MODEL_FILLER_H #define _IFC_EX_MODEL_FILLER_H #include "OdaCommon.h" #include "IfcCore.h" #include "IfcModel.h" #include "IfcModelFiller.h" #include "IfcRepresentationBuilder.h" #include "IfcAlignmentBuilder.h" #include "IfcBridgeBuilder.h" #include "IfcRailwayBuilder.h" #include "IfcBuildingBuilder.h" #include "IfcPropertySetFiller.h" #include "IfcQuantitySetFiller.h" class ExIfcModelFiller : public OdIfcModelFiller { protected: std::map m_relDefinesByProperties; std::map m_relNests; public: ExIfcModelFiller(OdIfcModel *pModel) : OdIfcModelFiller(pModel) {} // TODO: This seems for OdIfcModelFiller IfcRepresentationBuilderPtr createRepresentationBuilder(OdIfc::OdIfcInstancePtr pInst); // Domain-based Spatial Structure builders // Rail/Road infrastructure IfcAlignmentBuilderPtr appendAlignment(const OdAnsiString &name); // Railroad Builder IfcRailwayBuilderPtr appendRailway(const OdAnsiString &name); // Bridge builder IfcBridgeBuilderPtr appendBridge(const OdAnsiString &name, IfcBridgeBuilder::Type type); OdDAI::ApplicationInstancePtr createRooted(const char *typeName, const char *name = nullptr, bool append = true); OdIfc::OdIfcInstancePtr appendRelContainedInSpatialStructure(OdIfc::OdIfcInstancePtr pRelating, OdIfc::OdIfcInstancePtr pRelated); OdIfc::OdIfcInstancePtr getRelContainedInSpatialStructure(OdIfc::OdIfcInstancePtr pRelating); OdIfc::OdIfcInstancePtr addRelNests(OdIfc::OdIfcInstancePtr pRelating, const OdDAIObjectIds &related); OdIfc::OdIfcInstancePtr appendRelNests(OdIfc::OdIfcInstancePtr pRelating, OdIfc::OdIfcInstancePtr pRelated); OdIfc::OdIfcInstancePtr addRelNests(OdIfc::OdIfcInstancePtr pRelating, OdIfc::OdIfcInstancePtr pRelated); OdIfc::OdIfcInstancePtr getRelNests(OdIfc::OdIfcInstancePtr pRelating); OdIfc::OdIfcInstancePtr createShapeRepresentation(const OdAnsiString &contextType, const OdAnsiString &name, const OdAnsiString &type); OdIfc::OdIfcInstancePtr createAlignmentSegment(OdDAIObjectId nestedSegmentId); }; typedef OdSharedPtr ExIfcModelFillerPtr; #endif // _IFC_EX_MODEL_FILLER_H