public static void AddObjectToGroup(this IfcGroup gr, IfcObjectDefinition obj) { IModel model = gr.Model; IfcRelAssignsToGroup relation = gr.IsGroupedBy ?? model.Instances.New <IfcRelAssignsToGroup>(rel => rel.RelatingGroup = gr); relation.RelatedObjects.Add(obj); }
public static IEnumerable <T> GetGroupedObjects <T>(this IfcGroup gr) where T : IfcObjectDefinition { IfcRelAssignsToGroup relation = gr.IsGroupedBy; if (gr.IsGroupedBy != null) { return(relation.RelatedObjects.OfType <T>()); } return(new List <T>()); }
public static IEnumerable <IfcObjectDefinition> GetGroupedObjects(this IfcGroup gr) { IfcRelAssignsToGroup relation = gr.IsGroupedBy; if (gr.IsGroupedBy != null) { return(relation.RelatedObjects); } return(new List <IfcObjectDefinition>()); }
public static void AddObjectToGroup(this IfcGroup gr, IfcObjectDefinition obj) { IModel model = GetModel(gr); IfcRelAssignsToGroup relation = gr.IsGroupedBy; if (gr.IsGroupedBy == null) { relation = model.Instances.New <IfcRelAssignsToGroup>(rel => rel.RelatingGroup = gr); } relation.RelatedObjects.Add(obj); }
public static void AddObjectToGroup(this IfcGroup gr, IEnumerable <IfcObjectDefinition> objects) { IModel model = GetModel(gr); IfcRelAssignsToGroup relation = gr.IsGroupedBy; if (gr.IsGroupedBy == null) { relation = model.Instances.New <IfcRelAssignsToGroup>(rel => rel.RelatingGroup = gr); } foreach (var item in objects) { relation.RelatedObjects.Add(item); } }
public static bool RemoveObjectFromGroup(this IfcGroup gr, IfcObjectDefinition obj) { if (gr == null || obj == null) { return(false); } IModel model = GetModel(gr); IfcRelAssignsToGroup relation = gr.IsGroupedBy; if (gr.IsGroupedBy == null) { return(false); } if (!relation.RelatedObjects.Contains(obj)) { return(false); } relation.RelatedObjects.Remove(obj); return(true); }