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

完善主體資料,免費(fèi)贈(zèng)送VIP會(huì)員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學(xué)歷
* 工作性質(zhì)
請先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領(lǐng)完即止!

下載app免費(fèi)領(lǐng)取會(huì)員

NULL

ad.jpg

二次開發(fā)教程:Revit開發(fā)通過軸網(wǎng)創(chuàng)建柱子

發(fā)布于:2019-08-26 16:45:29

網(wǎng)友投稿

更多

    [Regeneration(RegenerationOption.Manual)]

    [Transaction(TransactionMode.Manual)]

    public class Class1:IExternalCommand

    {

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

        {

            Document doc = commandData.Application.ActiveUIDocument.Document;

            FilteredElementCollector gridFilter = new FilteredElementCollector(doc);


            // 獲取所有的軸網(wǎng)

            List<Grid> allGrids = gridFilter.OfClass(typeof(Grid)).Cast<Grid>().ToList();


            //獲取軸網(wǎng)的所有交點(diǎn)

            List<XYZ> Points = new List<XYZ>();

            foreach (Grid grid in allGrids)

            {

                Grid currentGrid = grid;

                foreach (Grid grd in allGrids)

                { 

                    InterpResultArray ira = null;

                    SetComparisonResult scr = currentGrid.Curve.Intersect(grd.Curve, out ira);

                    if (ira != null)

                    {

                        InterpResult ir = ira.get_Item(0);



                        // 判斷點(diǎn)是否重復(fù)

                        if (!CheckPoint(Points,ir.XYZPoint))

                        {

                            Points.Add(ir.XYZPoint);

                        }

                    }

                }

            }


            // 設(shè)置ViewModel

            MyDataContext myDataContext = new MyDataContext(doc);

            MyWin myWin = new MyWin(myDataContext);

            if (myWin.ShowDialog() ?? false)

            {

                // 返回用戶選定的建筑柱FamilySymbol

                FamilySymbol symbol = myDataContext.Symbol as FamilySymbol;


                // 返回柱子的頂部標(biāo)高

                Level topLevel = myDataContext.TopLevel as Level;


                // 返回柱子的底部標(biāo)高

                Level btmLevel = myDataContext.BtmLevel as Level;


                // 返回頂部偏移

                double topOffset = myDataContext.TopOffset / 304.8;


                // 返回底部偏移

                double btmOffset = myDataContext.BtmOffset / 304.8;


                //啟動(dòng) 事務(wù)

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

                trans.Start();

                foreach(XYZ p in Points)

                {

                    FamilyInstance column = doc.Create.NewFamilyInstance(p, symbol, btmLevel, StructuralType.NonStructural);

                    //設(shè)置底部偏移

                    column.get_Parameter(BuiltInParameter.SCHEDULE_BASE_LEVEL_OFFSET_PARAM).Set(btmOffset);

                    //設(shè)置頂部標(biāo)高

                    column.get_Parameter(BuiltInParameter.SCHEDULE_TOP_LEVEL_PARAM).Set(topLevel.Id);

                    //設(shè)置頂部偏移

                    column.get_Parameter(BuiltInParameter.FAMILY_TOP_LEVEL_OFFSET_PARAM).Set(topOffset);

                }

                // 提交事務(wù)

                trans.Commit();

            }



            return Result.Succeeded;

        }


        private bool CheckPoint(List<XYZ> points, XYZ point)

        {

            bool flag = false;

            foreach (XYZ p in points)

            { 

                if(p.IsAlmostEqualTo(point))

                {

                    flag = true;

                    break;

                }

            }

            return flag;

        }

    }




Xaml 代碼


<Window x:Class="CreateColumnByGrids.MyWin"

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

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

        Title="MyWin" SizeToContent="WidthAndHeight">

    <Window.Resources>

        <Style TargetType="Button">

            <Setter Property="Background" Value="White"/>

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

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

            <Style.Triggers>

                <Trigger Property="IsMouseOver" Value="True">

                    <Setter Property="Background" Value="Red"></Setter>

                </Trigger>

            </Style.Triggers>

        </Style>

        <Style TargetType="TextBox">

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

            <Setter Property="VerticalContentAlignment" Value="Center" />

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

        </Style>

        <Style TargetType="Label">

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

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

        </Style>

        <Style TargetType="ComboBox">

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

            <Setter Property="SelectedIndex" Value="0"/>

        </Style>

    </Window.Resources>

    <Grid>

        <Grid.ColumnDefinitions>

            <ColumnDefinition Width="Auto"/>

            <ColumnDefinition Width="Auto"/>

        </Grid.ColumnDefinitions>

        <Grid.RowDefinitions>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="Auto"/>

        </Grid.RowDefinitions>

        <Label Content="底部標(biāo)高:" Grid.Row="0" Grid.Column="0"/>

        <ComboBox Grid.Column="1" Grid.Row="0" Name="btmLvl" ItemsSource="{Binding Path=AllLevels}"

                  DisplayMemberPath="Name" SelectedValuePath="Element" SelectedValue="{Binding Path=BtmLevel,UpdateSourceTrigger=PropertyChanged}"/>



        <Label Content="底部偏移:" Grid.Row="1" Grid.Column="0"/>

        <TextBox Grid.Column="1" Grid.Row="1" Name="btmOffset" Text="{Binding Path=BtmOffset, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"  />



        <Label Content="頂部標(biāo)高:" Grid.Column="0" Grid.Row="2" />

        <ComboBox Grid.Column="1" Grid.Row="2" Name="topLvl" ItemsSource="{Binding Path=AllLevels}" 

                  DisplayMemberPath="Name" SelectedValuePath="Element" SelectedValue="{Binding Path=TopLevel,UpdateSourceTrigger=PropertyChanged}"/>



        <Label Content="頂部偏移:" Grid.Column="0" Grid.Row="3" />

        <TextBox Grid.Column="1" Grid.Row="3" Name="topOffset" Text="{Binding Path=TopOffset,UpdateSourceTrigger=PropertyChanged}"/>



        <Label Content="柱類型:" Grid.Column="0" Grid.Row="4"/>

        <ComboBox Name="symbol" Grid.Column="1" Grid.Row="4" ItemsSource="{Binding Path=AllSymbol}" DisplayMemberPath="Name" SelectedValuePath="Element"/>

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

            <Button Name="OK" Content="確定"  Margin="5" Command="{Binding Path= OK_Command}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"/>

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

        </StackPanel>

        

    </Grid>

</Window>




窗體代碼:


    public partial class MyWin : Window

    { 

        public MyWin()

        {

            InitializeComponent();           

        }

        public MyWin(MyDataContext dataContext)

        {

            InitializeComponent();             

            this.DataContext = dataContext;

        }

    }


ViewModel代碼:


    public class MyDataContext : INotifyPropertyChanged 

    {

        private List<ComboBoxData> _AllLevels = new List<ComboBoxData>();

        public List<ComboBoxData> AllLevels { get { return _AllLevels; } private set { _AllLevels = value; } }



        private List<ComboBoxData> _AllSymbol = new List<ComboBoxData>();

        public List<ComboBoxData> AllSymbol { get { return _AllSymbol; } private set { _AllSymbol = value; } }



        private Element symbol = null;

        public Element Symbol

        {

            get 

            {

                if (symbol == null)

                    return _AllSymbol.First().Element;

                return symbol;

            }

            set 

            {

                symbol = value;

                NotifyPropertyChanged("Symbol");

            }

        }



        private Element topLevel = null;

        public Element TopLevel

        {

            get

            {

                if (topLevel == null)

                    return _AllLevels.First().Element;

                return topLevel;

            }

            set

            {

                topLevel = value;

                NotifyPropertyChanged("TopLevel");

                (OK_Command as OK_Command).NotifyPropertyChanged("OK_Command"); 

            }

        }



        private Element btmLevel = null;

        public Element BtmLevel

        {

            get

            {

                if (btmLevel == null)

                    return _AllLevels.First().Element;

                return btmLevel;

            }

            set

            {

                btmLevel = value; 

                NotifyPropertyChanged("BtmLevel");

                (OK_Command as OK_Command).NotifyPropertyChanged("OK_Command"); 

            }

        }



        private double topOffset = 0.0;

        public double TopOffset

        {

            get { return topOffset; }

            set

            {

                topOffset = value;

                NotifyPropertyChanged("TopOffset");

                (OK_Command as OK_Command).NotifyPropertyChanged("OK_Command");

            }

        }



        private double btmOffset = 0.0;

        public double BtmOffset { get { return btmOffset; } 

            set 

            { 

                btmOffset = value; 

                NotifyPropertyChanged("BtmOffset");

                (OK_Command as OK_Command).NotifyPropertyChanged("OK_Command"); 

            }

        }

        public ICommand OK_Command { get; set; }

        public ICommand Cancel_Command { get; set; }



        public MyDataContext(Document doc)

        {



            // 獲取所有的標(biāo)高

            FilteredElementCollector lvlFilter = new FilteredElementCollector(doc);

            List<Level> lvls = lvlFilter.OfClass(typeof(Level)).Cast<Level>().ToList();

            foreach(Element elm in lvls)

            {

                _AllLevels.Add(new ComboBoxData(elm));

            }



            //獲取所有建筑柱的FamilySymbol

            FilteredElementCollector symbolFilter = new FilteredElementCollector(doc);

            List<FamilySymbol> symbols = symbolFilter.OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_Columns).Cast<FamilySymbol>().ToList();

            foreach (Element elm in symbols)

            {

                _AllSymbol.Add(new ComboBoxData(elm));

            }


            OK_Command = new OK_Command(this);

            Cancel_Command = new Cancel_Command();


        }


        public event PropertyChangedEventHandler PropertyChanged;


        public void NotifyPropertyChanged(string Name)

        {

            if (PropertyChanged != null)

            {

                PropertyChanged(this, new PropertyChangedEventArgs(Name));

            }

        }

    }


Ok 命令:


    public class OK_Command : ICommand

    {

        MyDataContext _context;

        public OK_Command(MyDataContext context)

        {

            _context = context;

        }

        public bool CanExecute(object parameter)

        {

            Level topLevel = _context.TopLevel as Level;

            Level btmLevel = _context.BtmLevel as Level;

            if (topLevel == null || btmLevel == null)

                return false;

            if (topLevel.Elevation + _context.TopOffset - (btmLevel.Elevation + _context.BtmOffset) > 0.001)

                return true;

            return false;

        }



        public event EventHandler CanExecuteChanged;



        public void NotifyPropertyChanged(string Name)

        {

            if (CanExecuteChanged != null)

            {

                CanExecuteChanged(this, new PropertyChangedEventArgs(Name));

            }

        }



        public void Execute(object parameter)

        {

            MyWin myWin = parameter as MyWin;

            if (myWin == null)

                return;



            if (myWin.symbol.SelectedItem == null)

                return;

            if (myWin.topLvl.SelectedItem == null)

                return;

            double TopOffset = 0.0;

            if (!double.TryParse(myWin.topOffset.Text, out TopOffset))

            {

                return;

            }

            if (myWin.btmLvl.SelectedItem == null)

                return;

            double BtmOffset = 0.0;

            if (!double.TryParse(myWin.btmOffset.Text, out BtmOffset))

            {

                return;

            }

            Level TopLevel = myWin.topLvl.SelectedValue as Level;

            Level BtmLevel = myWin.btmLvl.SelectedValue as Level;

            if (TopLevel != null && BtmLevel != null)

            {

                if (BtmLevel.Elevation + BtmOffset > TopLevel.Elevation + TopOffset)

                    return;

            }

            else

            {

                return;

            }



            myWin.DialogResult = true;

            myWin.Close();

        }

    }




Cancel命令:


    public class Cancel_Command : ICommand

    {

        public bool CanExecute(object parameter)

        {          

            return true;

        }


        public event EventHandler CanExecuteChanged;


        public void Execute(object parameter)

        {

            MyWin myWin = parameter as MyWin;

            myWin.DialogResult = false;

            myWin.Close();

        }

    }




Combobox 數(shù)據(jù)綁定類:


    public class ComboBoxData

    {

        public Element Element { get; set; }

        public string Name { get; set; }

        public ComboBoxData(Element element)

        {

            this.Element = element;

            this.Name = element.Name;

        }

    }

本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

上一篇:二次開發(fā)教程:Revit開發(fā)之放棄重做操作

下一篇:二次開發(fā)教程:Revit開發(fā)獲取房間內(nèi)的構(gòu)件

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

    9000px;">

      欧美日韩国产一二三| 中文字幕av一区 二区| 国产制服丝袜一区| 日韩女优制服丝袜电影| 97se亚洲国产综合自在线观| 青青草原综合久久大伊人精品优势| 国产日韩影视精品| 精品日韩一区二区| 欧美影院精品一区| 成人免费av在线| 亚洲大片精品永久免费| 久久久精品国产免费观看同学| 欧美在线免费播放| 一本一道波多野结衣一区二区| 国产精品中文字幕日韩精品| 日韩激情视频网站| 国产精品久久久久影院亚瑟| 久久综合久久综合九色| 91精品国产丝袜白色高跟鞋| 一本大道综合伊人精品热热 | 久久亚洲精华国产精华液| 在线观看日韩电影| 91美女福利视频| 菠萝蜜视频在线观看一区| 久久成人羞羞网站| 亚洲午夜激情av| 亚洲免费毛片网站| 国产精品视频yy9299一区| 精品国产乱码久久久久久浪潮| 欧美日韩精品一区二区天天拍小说| 一本色道久久加勒比精品| 成人v精品蜜桃久久一区| 国产乱人伦精品一区二区在线观看 | 国产一区二区看久久| 亚洲成av人影院在线观看网| 亚洲三级在线播放| 最新成人av在线| 亚洲精品一二三| 综合久久久久久| 亚洲电影在线免费观看| 亚洲一区二区三区中文字幕| 久久久久久一级片| 久久精品欧美一区二区三区麻豆| 国产日产欧美一区二区视频| 国产精品激情偷乱一区二区∴| 国产精品视频yy9299一区| 一区在线中文字幕| 国产精品色在线观看| 日韩美女视频一区二区 | 日本久久电影网| 97久久精品人人爽人人爽蜜臀| 成人黄动漫网站免费app| 91美女在线观看| 欧美欧美欧美欧美| 久久精品人人做人人综合| 亚洲桃色在线一区| 久草中文综合在线| 欧美高清在线一区二区| 亚洲国产成人av| 日韩成人一级片| 国内精品久久久久影院一蜜桃| 狠狠色综合播放一区二区| 丰满少妇久久久久久久| 在线观看国产91| 欧美电视剧在线观看完整版| 国产三级三级三级精品8ⅰ区| 最新日韩av在线| 日韩av不卡一区二区| 国产精品一区二区在线播放| 在线观看亚洲专区| 久久久一区二区三区捆绑**| 亚洲一区在线观看免费| 久久99久久久久久久久久久| 99久久久精品| 精品不卡在线视频| 国产精品污www在线观看| 91国偷自产一区二区使用方法| 欧美人牲a欧美精品| 国产欧美日韩综合| 偷窥国产亚洲免费视频 | 91香蕉国产在线观看软件| 51午夜精品国产| 最新热久久免费视频| 国产福利一区二区三区视频在线| 欧洲一区二区三区在线| 欧美国产视频在线| 免费在线视频一区| 欧美在线观看视频在线| 亚洲日本一区二区三区| 国产乱码精品一区二区三| 欧美一区二区三区成人| 婷婷六月综合网| 在线观看日韩国产| 国产日韩亚洲欧美综合| 麻豆一区二区在线| 欧美一级日韩不卡播放免费| 亚洲va欧美va人人爽| 一本大道av一区二区在线播放 | 国产精品久久久久一区二区三区 | 午夜欧美电影在线观看| 在线这里只有精品| 亚洲欧美乱综合| 成人动漫一区二区| 亚洲欧洲www| 94色蜜桃网一区二区三区| 欧美成人精品1314www| 日本视频中文字幕一区二区三区| 欧美日韩不卡在线| 午夜成人免费电影| 欧美乱妇15p| 免费观看一级欧美片| 日韩欧美一级在线播放| 经典三级视频一区| 久久婷婷成人综合色| 成人污污视频在线观看| 中文字幕在线不卡视频| 国产麻豆91精品| 中文字幕中文字幕一区| 色综合天天综合网国产成人综合天| 自拍偷拍国产亚洲| 日韩精品一区国产麻豆| 色婷婷久久99综合精品jk白丝| 日本欧美韩国一区三区| 国产精品卡一卡二| 91精品国产综合久久久久久久| 国产99久久久久久免费看农村| 午夜视频在线观看一区二区三区 | 国产麻豆精品95视频| 亚洲国产一区二区a毛片| 久久久国产午夜精品 | 亚洲成国产人片在线观看| 国产精品久久久久影院亚瑟| 日韩一区二区三区观看| 在线视频观看一区| 国产aⅴ综合色| 精品一区二区三区久久久| 亚洲香肠在线观看| 中文字幕一区二区三区乱码在线| 欧美大胆人体bbbb| 欧美日韩视频第一区| 99久免费精品视频在线观看| 韩日精品视频一区| 久久成人免费日本黄色| 尤物在线观看一区| 亚洲精品中文在线| 国产精品乱人伦中文| 国产日产欧产精品推荐色| 欧美第一区第二区| 日韩欧美国产一区二区在线播放| 欧美性猛交xxxx乱大交退制版 | 成人免费一区二区三区在线观看| 精品国产露脸精彩对白| 欧美一区二区福利视频| 欧美区视频在线观看| 欧美高清视频不卡网| 欧美精选一区二区| 欧美丰满一区二区免费视频 | 欧美videossexotv100| 日韩女优制服丝袜电影| 91麻豆精品91久久久久久清纯 | 日韩精品一区二区三区在线播放| 色综合久久久久综合体桃花网| 国产.欧美.日韩| 国产91丝袜在线播放九色| 国产精品一区二区三区网站| 久久99在线观看| 成人综合日日夜夜| 国产成人免费高清| 白白色亚洲国产精品| 成人v精品蜜桃久久一区| 91色在线porny| 在线亚洲免费视频| 欧美视频一区二区| 欧美蜜桃一区二区三区| 日韩精品一区二区三区蜜臀| 久久亚洲春色中文字幕久久久| 国产亚洲精品7777| 亚洲色图清纯唯美| 亚洲超丰满肉感bbw| 久久不见久久见中文字幕免费| 国产精品一二三区在线| 不卡欧美aaaaa| 欧美日韩在线不卡| 26uuu亚洲| 亚洲日本欧美天堂| 日韩高清不卡在线| 成人三级在线视频| 欧美日韩另类一区| 久久久久久久久97黄色工厂| 亚洲欧美偷拍三级| 日韩av在线免费观看不卡| 丁香啪啪综合成人亚洲小说| 欧美色精品在线视频| 2021中文字幕一区亚洲| 亚洲精品乱码久久久久| 久久99精品久久久久婷婷| 日韩欧美一级二级| 美女www一区二区| 国产尤物一区二区在线| 亚洲国产成人porn|