internal LegacyComponentMassProperty(IXDocument3D doc, IXComponent component, IMassProperty massProperty, IXUnits userUnit) { Document = doc; Component = component; MassProperty = massProperty; UserUnit = userUnit; }
/// <summary> /// Gets all bodies from the components /// </summary> /// <param name="comp">Component</param> /// <param name="includeHidden">True to include all bodies, false to only include visible</param> /// <returns>Bodies</returns> public static IEnumerable <IXBody> IterateBodies(this IXComponent comp, bool includeHidden = false) { IEnumerable <IXComponent> SelectComponents(IXComponent parent) { var state = parent.State; if (!state.HasFlag(ComponentState_e.Suppressed)) { if (includeHidden || !state.HasFlag(ComponentState_e.Hidden)) { yield return(parent); if (state.HasFlag(ComponentState_e.Lightweight)) { if (parent.Document is IXAssembly) { comp.State = (ComponentState_e)(state - ComponentState_e.Lightweight); } } foreach (var child in parent.Children.SelectMany(c => SelectComponents(c))) { yield return(child); } } } } IXBody[] GetComponentBodies(IXComponent srcComp) => srcComp.Bodies.Where(b => includeHidden || b.Visible).ToArray(); if (comp.Document is IXPart) { foreach (var body in GetComponentBodies(comp)) { yield return(body); } } else if (comp.Document is IXAssembly) { foreach (var body in SelectComponents(comp) .SelectMany(GetComponentBodies)) { yield return(body); } } else { throw new NotSupportedException(); } }
public bool TryGet(string name, out IXComponent ent) { var comp = m_Assm.Assembly.GetComponentByName(name); if (comp != null) { ent = SwObject.FromDispatch <SwComponent>(comp, m_Assm); return(true); } else { ent = null; return(false); } }
public bool TryGet(string name, out IXComponent ent) { var comp = GetChildren().FirstOrDefault(c => string.Equals(GetRelativeName(c), name, StringComparison.CurrentCultureIgnoreCase)); if (comp != null) { ent = SwObject.FromDispatch <SwComponent>(comp, m_Assm); return(true); } else { ent = null; return(false); } }
public bool TryGet(string name, out IXComponent ent) { var comp = IterateDmComponents().FirstOrDefault(c => string.Equals(((ISwDMComponent7)c).Name2, name, StringComparison.CurrentCultureIgnoreCase)); if (comp != null) { ent = CreateComponentInstance(comp); return(true); } else { ent = null; return(false); } }
/// <summary> /// Default constructor /// </summary> /// <param name="comp">Component</param> public NotLoadedMassPropertyComponentException(IXComponent comp) : base($"Reference document of the component '{comp.Name}' must be loaded in order to access this mass property in SOLIDWORKS 2019 or older") { }
/// <summary> /// Gets all bodies from the components /// </summary> /// <param name="comp">Component</param> /// <param name="includeHidden">True to include all bodies, false to only include visible</param> /// <returns>Bodies</returns> public static IEnumerable <IXBody> IterateBodies(this IXComponent comp, bool includeHidden = false) => IterateComponentBodies(new IXComponent[] { comp }, includeHidden);
public bool TryGet(string name, out IXComponent ent) => throw new Exception("No components");