Exemplo n.º 1
0
 public static dynamic GetTSObject(NumericConstantFilterExpression dynObject)
 {
     if (dynObject is null)
     {
         return(null);
     }
     return(dynObject.teklaObject);
 }
Exemplo n.º 2
0
        /// <summary>Selects all objects which are on the phase</summary>
        /// <param name="phaseNumber">Number of the phase</param>
        /// <exception cref="Exceptions.FilteringToolTeklaSettingsException">When macro directory not exsists</exception>
        public static void SelectObjects(int phaseNumber)
        {
            var assemblyPhase = new TemplateFilterExpressions.CustomString("ASSEMBLY.PHASE");
            var phase         = new StringConstantFilterExpression(phaseNumber.ToString());
            var expresion1    = new BinaryFilterExpression(assemblyPhase, StringOperatorType.IS_EQUAL, phase);

            var objectType = new ObjectFilterExpressions.Type();
            var partF      = new NumericConstantFilterExpression(Tekla.Structures.TeklaStructuresDatabaseTypeEnum.PART);
            var expresion2 = new BinaryFilterExpression(objectType, NumericOperatorType.IS_EQUAL, partF);

            var expresion = new BinaryFilterExpressionCollection();

            expresion.Add(new BinaryFilterExpressionItem(expresion1, BinaryFilterOperatorType.BOOLEAN_AND));
            expresion.Add(new BinaryFilterExpressionItem(expresion2, BinaryFilterOperatorType.BOOLEAN_AND));

            var filter = new Filter(expresion);

            var objects = new Tekla.Structures.Model.Model().GetModelObjectSelector().GetObjectsByFilter(expresion);

            objects.SelectInstances = false;

            var ar = new System.Collections.ArrayList();

            while (objects.MoveNext())
            {
                var part = objects.Current as Tekla.Structures.Model.Part;
                if (part != null)
                {
                    var assembly = part.GetAssembly();
                    ar.Add(assembly);
                    break;
                }
            }

            var mos = new Tekla.Structures.Model.UI.ModelObjectSelector();

            mos.Select(new System.Collections.ArrayList());
            mos.Select(ar);

            if (Tekla.Structures.TeklaStructures.Connect())
            {
                TeklaMacroDirectory.CheckIfExists();
                var akit = new Tekla.Structures.MacroBuilder();

                akit.PushButton("butCancel", "diaPhaseManager");
                akit.Callback("acmd_display_active_system_dialog", "", "main_frame");
                akit.PushButton("butSelectPhases", "diaPhaseManager");
                akit.PushButton("butSelectObjects", "diaPhaseManager");
                akit.PushButton("butCancel", "diaPhaseManager");

                akit.Run();
                akit = null;
            }
        }
Exemplo n.º 3
0
        public static List <Part> GetParts(this Model model, bool autoFetch)
        {
            ObjectFilterExpressions.Type    objectType = new ObjectFilterExpressions.Type();
            NumericConstantFilterExpression type       =
                new NumericConstantFilterExpression(TeklaStructuresDatabaseTypeEnum.PART);

            var expression2 = new BinaryFilterExpression(objectType, NumericOperatorType.IS_EQUAL, type);

            BinaryFilterExpressionCollection filterCollection =
                new BinaryFilterExpressionCollection
            {
                new BinaryFilterExpressionItem(expression2, BinaryFilterOperatorType.BOOLEAN_AND),
            };

            //IMPORTANT!!!
            ModelObjectEnumerator.AutoFetch = autoFetch;

            return(model
                   .GetModelObjectSelector()
                   .GetObjectsByFilter(filterCollection)
                   .ToAList <Part>());
        }