Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 正在传递checkedlistbox.checked项强制转换为列表<;内置分类>;从窗体实例到Revit类函数_Winforms_List_Revit - Fatal编程技术网

Winforms 正在传递checkedlistbox.checked项强制转换为列表<;内置分类>;从窗体实例到Revit类函数

Winforms 正在传递checkedlistbox.checked项强制转换为列表<;内置分类>;从窗体实例到Revit类函数,winforms,list,revit,Winforms,List,Revit,从表单实例调用Revit类时,我没有遇到任何问题。当我尝试将列表指定给Revit类的函数categoryList()时,得到的变量在上下文错误中不存在。我尝试在form类“form UF=new form”的实例前面加上一个引用前缀;这不起作用 //The Revit Class public Result Execute(ExternalCommandData commandData, ref string message,....) { User_F

从表单实例调用Revit类时,我没有遇到任何问题。当我尝试将列表指定给Revit类的函数categoryList()时,得到的变量在上下文错误中不存在。我尝试在form类“form UF=new form”的实例前面加上一个引用前缀;这不起作用

    //The Revit Class

    public Result Execute(ExternalCommandData commandData, ref string message,....)
    {
        User_Form UF = new User_Form(commandData);
        UF.ShowDialog();


    public List<BuiltInCategory> categoryList(Document doc, int intSwitch)
    {
        //list built in categories for built in filter_1
        builtInCats_List = new List<BuiltInCategory>();

        switch (intSwitch)
        {
            case (1):
            ...
            case (3):
            ...             
            case (4):
                {
                    builtInCats_List = newStateCb1;
                    return builtInCats_List;
                }
            default:
                {
                    builtInCats_List = newStateCb1;
                    return builtInCats_List;
                }
        }
    }



   using Form = System.Windows.Forms.Form;
   using WS = ModelAuditor_2014.WorksetSorter_2014;
   using ModelAuditor_2014;
   using System.Threading;









   //The Form
   namespace ModelAuditor_2014
    {
   public partial class User_Form : Form
     {

        //Constructor
       WorksetSorter_2014 WS = new WorksetSorter_2014();

    //Revit references
        public Autodesk.Revit.UI.UIApplication rvtUiApp;
        public Autodesk.Revit.UI.UIDocument rvtUiDoc;
        public Autodesk.Revit.ApplicationServices.Application rvtApp;



    //Global Variables
    public List<BuiltInCategory> Filter01_CategoryList;
    public List<BuiltInCategory> Filter02_CategoryList;
    public int intSwitch;
    public List<BuiltInCategory> newStateCb1;




    public User_Form(ExternalCommandData commandData)
    {
        //Revit references
        rvtUiApp = commandData.Application;
        rvtUiDoc = rvtUiApp.ActiveUIDocument;
        rvtApp = rvtUiApp.Application;
        InitializeComponent();
    }


    public void User_Form_Load(object sender, EventArgs e)
    {
        //use rvtDoc = Doc
        Autodesk.Revit.DB.Document rvtDoc = .....                         

        //CheckedListBox for filter01
        checkedListBox1.DataSource = WS.categoryList(rvtDoc, intSwitch = 1);

        Filter01_CategoryList = new List<BuiltInCategory>();
        Filter01_CategoryList = WS.RetrieveSchema(rvtDoc, false);


        foreach (BuiltInCategory ChkedB1 in Filter01_CategoryList)
       {
           for (int i = 0; i < checkedListBox1.Items.Count; i++)
            {
                if (checkedListBox1.Items[i].ToString() == ChkedB1.ToString())
                 {
                     checkedListBox1.SetItemChecked(i, true);
                 }
             }
          }



        public List<BuiltInCategory> returnNewStateCB1()
          {
        newStateCb1 = checkedListBox1.CheckedItems.Cast
        <BuiltInCategory>().ToList<BuiltInCategory>();

        return newStateCb1;
          }
//Revit类
公共结果执行(外部命令数据、引用字符串消息等)
{
用户表单UF=新用户表单(commandData);
UF.ShowDialog();
公共列表类别列表(文档文档、int开关)
{
//列出内置过滤器_1的内置类别
内置列表=新列表();
开关(intSwitch)
{
案例(1):
...
案例(3):
...             
案例(4):
{
内置属性列表=newStateCb1;
返回内置组件列表;
}
违约:
{
内置属性列表=newStateCb1;
返回内置组件列表;
}
}
}
使用Form=System.Windows.Forms.Form;
使用WS=ModelAuditor_2014.WorksetSorter_2014;
使用ModelAuditor\u 2014;
使用系统线程;
//形式
名称空间模型审核员2014
{
公共部分类用户表单:表单
{
//建造师
WorksetSorter_2014 WS=新的WorksetSorter_2014();
//Revit参考
公共Autodesk.Revit.UI.UI应用程序rvtUiApp;
公共Autodesk.Revit.UI.UIDocument rvtUiDoc;
公共Autodesk.Revit.ApplicationServices.Application rvtApp;
//全局变量
公共列表过滤器01_类别列表;
公共列表过滤器02_类别列表;
公共int交换机;
公共列表CB1;
公共用户表单(ExternalCommandData commandData)
{
//Revit参考
rvtUiApp=commandData.Application;
rvtUiDoc=rvtUiApp.ActiveUIDocument;
rvtApp=rvtUiApp.应用;
初始化组件();
}
公共无效用户\u表单\u加载(对象发送方,事件参数e)
{
//使用rvtDoc=Doc
Autodesk.Revit.DB.Document rvtDoc=。。。。。
//过滤器01的CheckedListBox
checkedListBox1.DataSource=WS.categoryList(rvtDoc,intSwitch=1);
Filter01_CategoryList=新列表();
Filter01_CategoryList=WS.RetrieveSchema(rvtDoc,false);
foreach(过滤器01_类别列表中的内置类别ChkedB1)
{
对于(int i=0;i
我将win表单中的列表传递给revit应用程序中的另一个公共函数,我可以访问此函数返回的列表