Quantcast
Channel: ArchiCAD-Talk - Developer Forum
Viewing all articles
Browse latest Browse all 564

Override rules creation

$
0
0
Author:mvallee
Posted: Mon May 22, 2017 10:12 am (GMT+1)


Hi,

I am digging in the Override_Test example project to see what the API lets us do in this field.
I am very surprised to realize that rules creation implies creating manually then saving their criterions as an XML string.

Code:
API_OverrideRule rule;
   rule.name = "Transparent surface for Windows and Doors";

   // NOTE: to get the proper criterion XML, go to ARCHICAD and save the wanted override rule as XML
   // Criterion XML: Element Type is Window or Door
   rule.criterionXML =
      "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>"
      "<CriterionExpression Mv=\"2\" Sv=\"1\">"
         "<TextMatchType>1</TextMatchType>"
         "<Size>1</Size>"
         "<ClassGuid>C6EBD1BD-7702-46FF-8ED9-9CC37648A7C7</ClassGuid>"
         "<CompositeCriterion Mv=\"2\" Sv=\"1\">"
            "<LogicalOperator>2</LogicalOperator>"
            "<CriteriaCount>1</CriteriaCount>"
            "<ClassGuid>C6EBD1BD-7702-46FF-8ED9-9CC37648A7C7</ClassGuid>"
            "<CompositeCriterion Mv=\"2\" Sv=\"1\">"
               "<LogicalOperator>1</LogicalOperator>"
               "<CriteriaCount>2</CriteriaCount>"
               "<ClassGuid>B4B7B134-EC56-4D40-8D4C-71D7C5A2493A</ClassGuid>"
               "<ElemTypeCriterion Mv=\"2\" Sv=\"3\">"
                  "<VBEF::CritToolType Mv=\"1\" Sv=\"0\">"
                     "<ElemRegistryRefId>1464421956</ElemRegistryRefId>"
                     "<ElemCreatorToolUnID>"
                        "<MainGuid>4ABD0A6E-634B-4931-B3AA-9BEE01F35CDF</MainGuid>"
                        "<RevGuid>5585F21A-DE1C-164C-A64E-92CB48F79FA5</RevGuid>"
                     "</ElemCreatorToolUnID>"
                  "</VBEF::CritToolType>"
                  "<LogicalOperator>1</LogicalOperator>"
               "</ElemTypeCriterion>"
               "<ClassGuid>B4B7B134-EC56-4D40-8D4C-71D7C5A2493A</ClassGuid>"
               "<ElemTypeCriterion Mv=\"2\" Sv=\"3\">"
                  "<VBEF::CritToolType Mv=\"1\" Sv=\"0\">"
                     "<ElemRegistryRefId>1146048338</ElemRegistryRefId>"
                     "<ElemCreatorToolUnID>"
                        "<MainGuid>11E85B84-8DD1-491B-A2FE-337454A91545</MainGuid>"
                        "<RevGuid>91A61E93-32A8-BC46-A11A-5FB89256C651</RevGuid>"
                     "</ElemCreatorToolUnID>"
                  "</VBEF::CritToolType>"
                  "<LogicalOperator>1</LogicalOperator>"
               "</ElemTypeCriterion>"
            "</CompositeCriterion>"
         "</CompositeCriterion>"
      "</CriterionExpression>";


I wanted to create this kind of "filters" automatically in my add-on.

Thanks for your ideas.
_________________
Maxime VALLÉ E
Informatique Technique Bouygues Entreprises France Europe


Viewing all articles
Browse latest Browse all 564

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>