色女孩综合网_天天做天天添婷婷我也去 _日韩视频高清_草草影院免费

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業名稱
* 信用代碼
* 所在行業
* 企業規模
* 所在職位
* 姓名
* 所在行業
* 學歷
* 工作性質
請先選擇行業
您還可以選擇以下福利:
行業福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

二次開發教程:Revit開發創建部件和部件視圖

發布于:2019-08-26 16:21:21

網友投稿

更多

在Revit里可以把一部分構件組合起來創建為一個部件,


然后可以創建一些針對這個部件的視圖


通過API來創建主要用到兩個類


AssemblyInstance 


AssemblyViewUtils 




下面是一個小例子:




Command:


        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)

        {

            UIDocument uidoc = commandData.Application.ActiveUIDocument;

            Document doc = uidoc.Document;

            IList<Reference> refs = uidoc.Selection.PickObjects(ObjectType.Element);

            List<Element> elems = new List<Element>();

            List<ElementId> ids = new List<ElementId>();

            foreach (Reference r in refs)

            {

                Element e = doc.GetElement(r);

                elems.Add(e);

                ids.Add(e.Id);

            }

            ViewModel myViewModel = new ViewModel(elems);

            AssemblyViewWindow myWin = new AssemblyViewWindow(myViewModel);

            if(myWin.ShowDialog()??false)

            {

                TransactionGroup transGrop = new TransactionGroup(doc, "transGroup");

                transGrop.Start();

                Transaction trans = new Transaction(doc, "trans");

                trans.Start();

                AssemblyInstance assemblyInstance =  AssemblyInstance.Create(doc, ids, myViewModel.Category.Id);                

                trans.Commit();

                trans = new Transaction(doc, "rename");// 

                trans.Start();

                ElementId typeId = assemblyInstance.GetTypeId();

                Element type = doc.GetElement(typeId);

                type.Name = myViewModel.AssemblyInstanceName;

                View3D view3d = AssemblyViewUtils.Create3DOrthographic(doc, assemblyInstance.Id);

                trans.Commit();

                transGrop.Assimilate();                

            }

            return Result.Succeeded;

        }




Window:


<Window x:Class="AssemblyView.AssemblyViewWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="新建部件" SizeToContent="WidthAndHeight">

    <Window.Resources>

        <Style TargetType="Label">

            <Setter Property="Margin" Value="5"/>

            <Setter Property="HorizontalAlignment" Value="Right"/>

        </Style>

        <Style TargetType="TextBox">

            <Setter Property="Margin" Value="5"/>

            <Setter Property="Width" Value="80"/>

        </Style>

        <Style TargetType="ComboBox">

            <Setter Property="Margin" Value="5"/>

            <Setter Property="Width" Value="80"/>

        </Style>

        <Style TargetType="Button">

            <Setter Property="Margin" Value="5"/>

            <Setter Property="Width" Value="75"/>

            <Setter Property="Height" Value="23"/>

        </Style>

    </Window.Resources>

    <Grid>

        <Grid.ColumnDefinitions>

            <ColumnDefinition/>

            <ColumnDefinition/>

        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>

            <RowDefinition/>

            <RowDefinition/>

            <RowDefinition/>

        </Grid.RowDefinitions>

        <Label Content="類型名稱:" Grid.Column="0" Grid.Row="0"/>

        <TextBox Grid.Column="1" Grid.Row="0" Text="{Binding Path=AssemblyInstanceName, UpdateSourceTrigger=PropertyChanged}"/>

        <Label Content="命名類別:" Grid.Column="0" Grid.Row="1"/>

        <ComboBox  Grid.Column="1" Grid.Row="1" ItemsSource="{Binding Path=Categories, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Path=Category, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Name"/>

        <StackPanel Orientation="Horizontal" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" HorizontalAlignment="Right">

            <Button Content="確定" IsEnabled="{Binding Path=IsEnabled, UpdateSourceTrigger=PropertyChanged}" Command="{Binding Path=OK_Command}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType=Window}}"/>

            <Button Content="取消" Command="{Binding Path=Cancel_Command}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor ,AncestorType=Window}}" />

        </StackPanel>

    </Grid>

</Window>




    public partial class AssemblyViewWindow : Window

    {

        public AssemblyViewWindow()

        {

            InitializeComponent();

        }

        public AssemblyViewWindow(ViewModel viewModel)

        {

            InitializeComponent();

            this.DataContext = viewModel;

        }

    }




ViewModel:


   public class ViewModel:INotifyPropertyChanged

    {

        private string assemblyInstanceName = string.Empty;

        public string AssemblyInstanceName

        {

            get 

            { 

                return assemblyInstanceName;

            }

            set 

            { 

                assemblyInstanceName = value;

                NotifyPropertyChanged("AssemblyInstanceName");

                CheckOkBtn();

            }

        }

        private List<Category> categories = new List<Category>();

        public List<Category> Categories

        {

            get

            {

                return categories;

            }

        }

        private Category category = null;

        public Category Category

        {

            get 

            { 

                return category;

            }

            set 

            { 

                category = value;

                NotifyPropertyChanged("Category");

                CheckOkBtn();

            }

        }

        private bool isEnabled = false;

        public bool IsEnabled

        {

            get { return isEnabled; }

            set

            {

                isEnabled = value;

            }

        }

        private OK_Command ok_Command = null;

        public OK_Command OK_Command 

        {

            get { return ok_Command; }

        }

        private Cancel_Command cancel_Command = null;

        public Cancel_Command Cancel_Command

        {

            get { return cancel_Command; }

        }

        public ViewModel(List<Element> elems)

        { 

            foreach(Element elm in elems)

            {

                if (categories.Where(m=>m.Name==elm.Category.Name).Count()==0)

                    categories.Add(elm.Category);

            }

            this.cancel_Command = new Cancel_Command();

            this.ok_Command = new OK_Command();

        }

        public event PropertyChangedEventHandler PropertyChanged;

        public void NotifyPropertyChanged(string name)

        {

            if (PropertyChanged != null)

            {

                PropertyChanged(this, new PropertyChangedEventArgs(name));

            }

        }

        private void CheckOkBtn()

        {

            if (assemblyInstanceName == string.Empty || category == null)

                IsEnabled = false;

            else

                IsEnabled = true;

            NotifyPropertyChanged("IsEnabled");

        }

        

    }




ICommand:


    public class OK_Command : ICommand

    {

        public bool CanExecute(object parameter)

        {

            return true;

        }

        public event EventHandler CanExecuteChanged;

        public void Execute(object parameter)

        {

            AssemblyViewWindow myWin = parameter as AssemblyViewWindow;

            myWin.DialogResult = true;

            myWin.Close();

        }

    }

    public class Cancel_Command : ICommand

    {

        public bool CanExecute(object parameter)

        {

            return true;

        }

        public event EventHandler CanExecuteChanged;

        public void Execute(object parameter)

        {

            AssemblyViewWindow myWin = parameter as AssemblyViewWindow;

            myWin.DialogResult = false;

            myWin.Close();

        }

    }


本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發教程:Revit開發之AddInManager安裝包簡單制作

下一篇:二次開發教程:Revit開發之警告和錯誤處理

60acb4e0ef112.png
色女孩综合网_天天做天天添婷婷我也去 _日韩视频高清_草草影院免费

    9000px;">

      日韩免费视频一区| 555www色欧美视频| 国产一区二区91| 午夜天堂影视香蕉久久| 亚洲欧洲精品一区二区三区| 亚洲精品在线观看网站| 51精品秘密在线观看| 欧美日韩精品一区二区天天拍小说| aaa国产一区| 国产成人在线网站| 国产精品亚洲一区二区三区在线| 免费久久精品视频| 日韩成人av影视| 亚洲精品国产一区二区三区四区在线| 欧美国产视频在线| 国产精品女上位| 亚洲视频电影在线| 亚洲五码中文字幕| 麻豆视频一区二区| 国产一区欧美一区| 成人黄动漫网站免费app| 成人黄色小视频在线观看| a亚洲天堂av| 欧洲一区在线观看| 日韩欧美资源站| 2020国产精品| 亚洲欧美日韩国产另类专区| 亚洲风情在线资源站| 美女爽到高潮91| 成人在线一区二区三区| 一本久道中文字幕精品亚洲嫩| 欧美天堂亚洲电影院在线播放| 欧美日韩一区中文字幕| 欧美videos中文字幕| 久久精品男人天堂av| 亚洲女女做受ⅹxx高潮| 蜜桃av一区二区在线观看| 国产精品一级在线| 欧美视频三区在线播放| 久久综合中文字幕| 亚洲大型综合色站| 国产制服丝袜一区| 欧美又粗又大又爽| 久久精品夜夜夜夜久久| 亚洲国产精品久久久男人的天堂| 精品在线播放免费| 欧美亚洲免费在线一区| 久久久国产午夜精品| 亚洲成av人片在线观看| 激情综合五月婷婷| 欧美色图片你懂的| 中文字幕一区二区三区蜜月| 日本va欧美va瓶| 91精品办公室少妇高潮对白| 欧美精品一区二区三区在线播放| 亚洲黄色免费网站| 国产99久久久久| 欧美成人a在线| 日韩影院免费视频| 色哟哟在线观看一区二区三区| 欧美精品一区二区在线播放| 偷拍与自拍一区| 色一区在线观看| 国产日韩影视精品| 五月婷婷久久丁香| 91成人免费网站| 国产精品日韩成人| 国内成人精品2018免费看| 欧美日韩一区成人| 亚洲一区二区成人在线观看| 91免费看视频| 国产精品视频第一区| 国产一区二区三区久久久| 欧美一区二区三区在线观看| 亚洲国产精品精华液网站| www.亚洲在线| 中文字幕一区二区三区蜜月| a级精品国产片在线观看| 国产婷婷一区二区| 国产精品自拍在线| 久久亚洲精华国产精华液| 久久国产精品区| 欧美一区二区三区免费| 久久精品国产精品亚洲精品| 日韩美女一区二区三区四区| 麻豆91在线观看| 日韩欧美高清在线| 国产在线精品一区二区三区不卡| 2020国产成人综合网| 国产精品一品二品| 国产精品国产三级国产aⅴ中文| 国产成人一级电影| 日本一区二区三级电影在线观看| 大陆成人av片| 亚洲免费在线看| 欧美日韩精品专区| 韩日精品视频一区| 中文字幕精品在线不卡| 91捆绑美女网站| 五月婷婷久久丁香| 久久久久一区二区三区四区| 成人黄色电影在线| 亚洲国产精品一区二区www| 日韩欧美在线综合网| 国产激情91久久精品导航 | 欧美曰成人黄网| 亚洲chinese男男1069| 3d动漫精品啪啪1区2区免费| 精品亚洲国内自在自线福利| 国产午夜精品久久久久久免费视 | 99视频在线观看一区三区| 亚洲一区成人在线| 精品国产亚洲一区二区三区在线观看| 国产乱妇无码大片在线观看| 亚洲丝袜美腿综合| 日韩一级免费一区| 大胆亚洲人体视频| 日韩精品一二三| 亚洲欧洲精品一区二区三区| 日韩视频中午一区| 91美女精品福利| 黄网站免费久久| 一区二区三区久久| 久久久亚洲午夜电影| 欧美日韩国产影片| 国产精品一区免费视频| 亚洲国产精品视频| 国产精品久久久久久久午夜片 | 丁香天五香天堂综合| 性感美女久久精品| ...av二区三区久久精品| 欧美一级理论片| 欧美在线free| 不卡的av中国片| 韩日av一区二区| 首页国产丝袜综合| 亚洲一线二线三线视频| 国产视频视频一区| 欧美一级艳片视频免费观看| 欧美亚洲综合一区| 一本大道av一区二区在线播放| 床上的激情91.| 国产伦精品一区二区三区免费迷 | 亚洲国产精品v| 久久精品一区二区三区四区| 日韩视频一区在线观看| 欧美精品亚洲二区| 欧美伊人精品成人久久综合97| 成人毛片在线观看| 不卡一区二区中文字幕| 成人夜色视频网站在线观看| 国产精品香蕉一区二区三区| 九九精品视频在线看| 久久国产免费看| 狠狠色狠狠色综合系列| 久久99最新地址| 美国av一区二区| 国产真实乱偷精品视频免| 国产一区二区按摩在线观看| 国产在线观看一区二区| 国产福利91精品| 成人免费看视频| caoporm超碰国产精品| 日本韩国欧美在线| 欧美性猛交xxxx黑人交| 在线精品视频一区二区三四| 在线观看视频一区| 精品视频资源站| 精品国产区一区| 久久精品日韩一区二区三区| 国产精品嫩草99a| 亚洲精品视频一区| 五月激情六月综合| 国产在线视频精品一区| 国产98色在线|日韩| 在线免费一区三区| 欧美一区二区三区在线电影| 国产香蕉久久精品综合网| 中文字幕字幕中文在线中不卡视频| 亚洲美女视频在线观看| 视频在线在亚洲| 国产乱码精品一区二区三| 不卡视频免费播放| 欧美精品少妇一区二区三区| 久久久精品免费免费| 中文字幕一区二区三中文字幕| 亚洲h动漫在线| 成人国产精品免费网站| 欧美系列亚洲系列| 精品国产乱码久久久久久牛牛| 国产农村妇女毛片精品久久麻豆 | 成人h精品动漫一区二区三区| 91偷拍与自偷拍精品| 欧美男同性恋视频网站| 欧美国产亚洲另类动漫| 亚洲va欧美va人人爽午夜 | 在线看不卡av| 国产午夜精品一区二区三区视频 | 不卡欧美aaaaa| 精品国精品自拍自在线|