Ifd:IfdContext
From dev.ifd-library.org
Contents |
[edit] Attributes
-
string guidThe global unique attribute -
string version_idThe version identifier -
string version_dateThe version date -
IfdStatusEnum statusSee the IfdStatusEnum for possible values of the status. -
IfdName full_names []- which is an array of IfdName -
IfdDescription definitions []- which is an array of IfdDescription -
IfdDescription comments []- which is an array of IfdDescription -
boolean is_restricted- flag to limit use of the context to users and owners -
boolean is_read_only- flag to tell if the logged in user can read or write to the context
[edit] Introduction to contexts
The following figures is an attempt to explain how contexts are used to filter and structure the relationships between concepts in the IFD library. A contexts is simply a way of grouping relationships that represents a particular view of a concept. In the following example each color represents a context. The box in the middle is the same concept in each of the figures. The only thing that differs is how this concepts relates to other concepts and this differs in each of the views/contexts.
The main purpose of contexts are to enable multiple structures to co-exist within the IFD library and thus being able to create particular views of a concept by using the context as a filtering mechanism.
[edit] How contexts work
| The white boxes means that the context isn't visible to current logged in user. Or in other words that the current user doesn't have access to any of the contexts used for the relationships between the concepts viewed. Each context has a list of context users and context owners. If the current user is a context user the context will appear in the list of returned contexts in IfdConceptInRelationship. |
Each of the figures above represents a particular context(view) of a concept. The black lines are relationships between the concepts and it's relating and related concepts. The concept in the middle i the same in each figure. Each color represent a context(view) of the concept. A context is ultimately a grouping of these lines but to simplify the sample we have colored the concepts themselves rather than the relationships(lines). Taking a window as an example the blue concept could represent the window and its parts and properties in a specification sheet, the read is the window as described in a AECFM standard like IFC and the yellow the window as represented in a product catalogue.
In the following example user A has read access to both the Blue and Red context. User B has no access to any of the contexts. The example doesn't demonstrate write access to contexts, but a user defined as context owner will of course also have read access to the same context.
[edit] Querying a concept as user A with no contexts
| By querying we mean looking up a concepts children and parents by the use of getChildrenConcepts and getParentConcepts functions. If you don't add any contexts as input to the functions it means "Do not filter my results. Return all relationships to the current concept".
Still as user A has write access to both the blue and red contexts. Therefore the list of returned concepts in each IfdConceptInRelationship will contain information about the contexts for each relationship where the the current user has read access. This information can then be used to filter the results. You can in other words use a context to filter out only those properties, parts, etc that a particular organization has quality assured for a given concept. |
[edit] Querying a concept as user B with no contexts
[edit] Querying a concept as user A with the Blue context as filter
| If you query a concepts by using the getChildrenConcepts with the Blue context as input to the functions, the resuling list of IfdConceptInRelationship will be only those valid for that context. All other relationships will be filtered out from the list.
You can use as many contexts as you want as input to the query functions in order to create combined views for a concept or to e.g. see where two standard overlap in their description of a concept. |





