Closed jwouellette closed 9 years ago
Also the workflow is needed. Is it necessary to embed the library items to the IFC model or is it ok just reference them some way? How?
I would think we'd want to embed it in the model as a backup, in case the library isn't readily accessible, or the receiving system doesn't yet support the library view.
At a minimum, it seems the IFC4 coordination views (certainly the Handover View, maybe also the Reference View) would benefit by including library references within scope. Such library references could be other IFC files (a separate model view to be defined for product types), or any other format used by the application generating the file.
To support, each product type definition (subtype of IfcElementType) would have IfcRelAssociatesLibrary attached, where IfcLibraryReference.ReferencedLibrary.Location would identify the URL (either absolute or relative to the current file if used within the same server somewhere). IfcLibraryReference.Identification would be some arbitrary identifier of the object within the target file according to the specific format -- if an IFC file it would correspond to IfcRoot.IfcGloballyUniqueId. IfcLibraryInformation.Version could also be used to call out a specific version of a file if under revision control.
Even better, all external references would additionally be rolled up into the new IFC4 IfcProjectLibrary definition listed underneath the IfcProject -- then an application can directly resolve external dependencies, redirecting references as necessary. This also makes it possible to interoperate with different units, different precision, etc. without having to convert and potentially lose information when embedding definitions.
Perhaps we should also add a project on GitHub for library view? Not sure if it's yet an official project, but there's plenty of content that could be put up there (e.g. IFC4 product library spec that DDS and others have put together, IFC4 parametric product types), which may help provide context for how the IFC4 Coordination View could interoperate.
Library references are in scope of the Design Transfer View.
All external libraries may be traversed at: IfcProject.Declares\IfcRelDeclares.RelatedDefinitions[]\IfcProjectLibrary
Information for identifying the library, version, and accessing it via URL: IfcProjectLibrary.HasAssociations\IfcRelAssociatesLibrary.RelatingLibrary\IfcLibraryInformation
Then any product type definitions from the referenced library are encapsulated at: IfcProjectLibrary.Declares\IfcRelDeclares.RelatedDefinitions\IfcTypeProduct
Including library information about product types is entirely optional, and the format of referenced library files can be anything (IFC/IFCXML supporting Library View would be possible as well as any other format).
Based on the work being proposed for IFC product libraries, do we need to have an explicit "Library View" documented?