Revit SDK 内容摘要: 9.0 - 9.1

news2024/11/25 18:56:06

前提

不包含已单独写博客部分。

Revit SDK Samples

9.0

AllViews
创建图纸,并放置视图。

ViewSheet sheet = ViewSheet.Create(doc, m_titleBlock.Id);
double xDistance = 0;
double yDistance = 0;
CalculateDistance(sheet.Outline, views.Size, ref xDistance, ref yDistance);

Autodesk.Revit.DB.UV origin = GetOffSet(sheet.Outline, xDistance, yDistance);
double tempU = origin.U;
double tempV = origin.V;
int n = 1;
foreach (Autodesk.Revit.DB.View v in views) {
   Autodesk.Revit.DB.UV location = new Autodesk.Revit.DB.UV(tempU, tempV);
   Autodesk.Revit.DB.View view = v;
   Rescale(view, xDistance, yDistance);
   Viewport.Create(view.Document, sheet.Id, view.Id, new XYZ(location.U, location.V, 0));
   if (0 != n++ % m_rows) {
      tempU = tempU + xDistance * (1 - TITLEBAR);
   } else {
      tempU = origin.U;
      tempV = tempV + yDistance;
   }

AnalyticalSupportData_Info
在这里插入图片描述
获取 Support Type 的逻辑:

AnalyticalModel analyticalModel = element.GetAnalyticalModel();
string[] supportInformations = new string[2] { "", "" };
IList<AnalyticalModelSupport> supports = analyticalModel.GetAnalyticalModelSupports();
if (!analyticalModel.IsElementFullySupported()) {
   if (0 == supports.Count) {
      supportInformations[0] = "not supported";
   } else {
      foreach (AnalyticalModelSupport support in supports) {
         supportInformations[0] = supportInformations[0] + support.GetSupportType().ToString() + ", ";
      }
   }
} else {
   if (0 == supports.Count) {
      supportInformations[1] = "supported but no more information";
   } else {
      foreach (AnalyticalModelSupport support in supports) {
      supportInformations[0] = supportInformations[0] + support.GetSupportType().ToString() + ", ";
   }
}

AreaReinCurve
AreaReinforcement 区域钢筋,参考官方文档。
下面是获取区域钢筋的曲线,其它都是设置参数 Parameter

AreaReinforcement m_areaRein = areaReinforcement;
CurveArray curves = new CurveArray();
List<AreaReinforcementCurve> m_areaReinCurves = new List<AreaReinforcementCurve>();
IList<ElementId> curveIds = m_areaRein.GetBoundaryCurveIds();
foreach (ElementId o in curveIds) {
   AreaReinforcementCurve areaCurve = m_doc.GetElement(o) as AreaReinforcementCurve;
   m_areaReinCurves.Add(areaCurve);
   curves.Append(areaCurve.Curve);
}

AreaReinParameters
钢筋弯钩,参考文档。

namespace Autodesk.Revit.DB.Structure
{
    public class RebarHookType : ElementType
    {
        public double StraightLineMultiplier { get; set; }
        public double HookAngle { get; set; }
        public RebarStyle Style { get; set; }
        public static RebarHookType Create(Document doc, double angle, double multiplier);
        public static ElementId CreateDefaultRebarHookType(Document ADoc);
        public double GetDefaultHookExtension(double barDiameter);
        public double GetHookExtensionLength(RebarBarType barType);
        public bool IsOffsetLengthRequired();
    }
}
namespace Autodesk.Revit.DB.Structure
{
    public class RebarBarType : ElementType
    {
        public double MaximumBendRadius { get; set; }
        public double StandardBendDiameter { get; set; }
        public double StandardHookBendDiameter { get; set; }
        public double StirrupTieBendDiameter { get; set; }
        public double BarDiameter { get; set; }
        public RebarDeformationType DeformationType { get; set; }
        public static RebarBarType Create(Document ADoc);
        public static ElementId CreateDefaultRebarBarType(Document ADoc);
        public bool GetAutoCalcHookLengths(ElementId hookId);
        public double GetHookLength(ElementId hookId);
        public double GetHookOffsetLength(ElementId hookId);
        public bool GetHookPermission(ElementId hookId);
        public double GetHookTangentLength(ElementId hookId);
        public RebarRoundingManager GetReinforcementRoundingManager();
        public void SetAutoCalcHookLengths(ElementId hookId, bool autoCalculated);
        public void SetBarTypeDiameters(BarTypeDiameterOptions diametersOptions);
        public void SetHookLength(ElementId hookId, double hookLength);
        public void SetHookOffsetLength(ElementId hookId, double newLength);
        public void SetHookPermission(ElementId hookId, bool permission);
        public void SetHookTangentLength(ElementId hookId, double newLength);
    }
}

BeamAndSlabNewParameter
添加共享参数:

DefinitionFile informationFile = AccessOrCreateExternalSharedParameterFile();
DefinitionGroups informationCollections = informationFile.Groups;
DefinitionGroup  informationCollection  = null;
informationCollection = informationCollections.get_Item("MyParameters");
informationCollections.Create("MyParameters");
informationCollection = informationCollections.get_Item("MyParameters");
Definition information = informationCollection.Definitions.get_Item("Unique ID");
                
if (null == information) {
   ExternalDefinitionCreationOptions ExternalDefinitionCreationOptions = new ExternalDefinitionCreationOptions("Unique ID", Autodesk.Revit.DB.ParameterType.Text);
   informationCollection.Definitions.Create(ExternalDefinitionCreationOptions);
   information = informationCollection.Definitions.get_Item("Unique ID");
}

CategorySet categories              = m_revit.Application.Create.NewCategorySet();
Category structuralFramingCategorie = null;
Category floorsClassification       = null;

// use category in instead of the string name to get category 
structuralFramingCategorie = m_revit.ActiveUIDocument.Document.Settings.Categories.get_Item(BuiltInCategory.OST_StructuralFraming);
floorsClassification = m_revit.ActiveUIDocument.Document.Settings.Categories.get_Item(BuiltInCategory.OST_Floors);
categories.Insert(structuralFramingCategorie);
categories.Insert(floorsClassification);

InstanceBinding caseTying = m_revit.Application.Create.NewInstanceBinding(categories);
bool boundResult = m_revit.ActiveUIDocument.Document.ParameterBindings.Insert(information, caseTying);    

CreateBeamsColumnsBraces
创建支撑 Brace - 关于支撑,参考官方文档。

STRUCTURALTYPE structuralType = Autodesk.Revit.DB.Structure.StructuralType.Brace;
Line line1 = Line.CreateBound(startPoint, middlePoint);
if (!braceType.IsActive)
   braceType.Activate();
FamilyInstance firstBrace = m_revit.ActiveUIDocument.Document.Create.NewFamilyInstance(line1, braceType, baseLevel, structuralType);

创建梁 Beam:

Line line = Line.CreateBound(startPoint, endPoint);
STRUCTURALTYPE structuralType = Autodesk.Revit.DB.Structure.StructuralType.Beam;
if (!beamType.IsActive)
   beamType.Activate();
m_revit.ActiveUIDocument.Document.Create.NewFamilyInstance(line, beamType, topLevel, structuralType);

CreateComplexAreaRein

ElementId areaReinforcementTypeId = AreaReinforcementType.CreateDefaultAreaReinforcementType(revit.Application.ActiveUIDocument.Document);
ElementId rebarBarTypeId = RebarBarType.CreateDefaultRebarBarType(revit.Application.ActiveUIDocument.Document);
ElementId rebarHookTypeId = RebarHookType.CreateDefaultRebarHookType(revit.Application.ActiveUIDocument.Document);
AreaReinforcement areaRein = AreaReinforcement.Create(revit.Application.ActiveUIDocument.Document, floor, curves, majorDirection, areaReinforcementTypeId, rebarBarTypeId, rebarHookTypeId);
private void ChangeAreaReinCurves(AreaReinforcement areaRein){
   //interior 4 curves are listed in the back of the curves, 
   //this order is decided when we create it
   IList<ElementId> curveIds = areaRein.GetBoundaryCurveIds();
   for (int i = 4; i < 8; i++) {
      AreaReinforcementCurve areaReinCurve = m_doc.GetElement(curveIds[i]) as AreaReinforcementCurve;
      //remove hooks, set the hook the top 2 layers to 'up'
      ParameterUtil.SetParaInt(areaReinCurve, BuiltInParameter.REBAR_SYSTEM_OVERRIDE, -1);
      ParameterUtil.SetParaInt(areaReinCurve, BuiltInParameter.REBAR_SYSTEM_HOOK_ORIENT_TOP_DIR_1, (int)HookOrientation.Up);
      ParameterUtil.SetParaInt(areaReinCurve, BuiltInParameter.REBAR_SYSTEM_HOOK_ORIENT_TOP_DIR_2, (int)HookOrientation.Up);
   }
}

CreateDimensions

Autodesk.Revit.UI.UIApplication app = m_revit.Application;
Document doc = app.ActiveUIDocument.Document;

Autodesk.Revit.DB.XYZ p1 = new XYZ(
                        newLine.GetEndPoint(0).X + 5,
                        newLine.GetEndPoint(0).Y + 5,
                        newLine.GetEndPoint(0).Z);
Autodesk.Revit.DB.XYZ p2 = new XYZ(
                        newLine.GetEndPoint(1).X + 5,
                        newLine.GetEndPoint(1).Y + 5,
                        newLine.GetEndPoint(1).Z);

Line newLine2 = Line.CreateBound(p1, p2);
Dimension newDimension = doc.Create.NewDimension( doc.ActiveView, newLine2, referenceArray);

CreateSimpleAreaRein
创建及设置对应参数。

CreateViewSection

namespace Autodesk.Revit.DB
{
    public class ViewSection : View
    {
        public static View CreateCallout(Document document, ElementId parentViewId, ElementId viewFamilyTypeId, XYZ point1, XYZ point2);
        public static ViewSection CreateDetail(Document document, ElementId viewFamilyTypeId, BoundingBoxXYZ sectionBox);
        public static void CreateReferenceCallout(Document document, ElementId parentViewId, ElementId viewIdToReference, XYZ point1, XYZ point2);
        public static void CreateReferenceSection(Document document, ElementId parentViewId, ElementId viewIdToReference, XYZ headPoint, XYZ tailPoint);
        public static ViewSection CreateSection(Document document, ElementId viewFamilyTypeId, BoundingBoxXYZ sectionBox);
        public static bool IsParentViewValidForCallout(Document document, ElementId parentViewId);
        public static bool IsViewFamilyTypeValidForCallout(Document document, ElementId viewFamilyTypeId, ElementId parentViewId);
        public bool IsSplitSection();
    }
}

CreateWallinBeamProfile
CreateWallsUnderBeams
DeleteDimensions
DeleteObject
简单例子,后续补充,略。

DesignOptionReader
VB,略。

GenerateFloor
创建楼板:

doc.Create.NewFloor(data.Profile, data.FloorType, data.Level, data.Structural);

InPlaceMembers
内建图元 - In-Place Family,参考官方文档。

LevelsProperty

namespace Autodesk.Revit.DB
{
    public class Level : DatumPlane
    {
        public double Elevation { get; set; }
        public static Level Create(Document document, double elevation);
        public ElementId FindAssociatedPlanViewId();
        public Reference GetPlaneReference();
    }
}

Loads
载荷,参考官方文档。

MaterialProperties
参考,Revit API: Material 材质

ObjectViewer
PhaseSample
SlabProperties
StructuralLayerFunction
通过参数查询例子,后续补充,略。

RotateFramingObjects

               // if be familyInstance,judge the types of familyInstance
               if (StructuralType.Beam == familyComponent.StructuralType
                  || StructuralType.Brace == familyComponent.StructuralType)
               {
                  // selection is a beam or Brace
                  ParameterSetIterator paraIterator = familyComponent.Parameters.ForwardIterator();
                  paraIterator.Reset();

                  while (paraIterator.MoveNext())
                  {
                     object para = paraIterator.Current;
                     Parameter objectAttribute = para as Parameter;
                     //set generic property named "Cross-Section Rotation"                           
                     if (objectAttribute.Definition.Name.Equals(AngleDefinitionName))
                     {
                        Double originDegree = objectAttribute.AsDouble();
                        double rotateDegree = m_receiveRotationTextBox * Math.PI / 180;
                        if (!m_isAbsoluteChecked)
                        {
                           // absolute rotation
                           rotateDegree += originDegree;
                        }
                        objectAttribute.Set(rotateDegree);
                        // relative rotation
                     }
                  }
               }
               else if (StructuralType.Column == familyComponent.StructuralType)
               {
                  // rotate a column
                  Autodesk.Revit.DB.Location columnLocation = familyComponent.Location;
                  // get the location object
                  LocationPoint pointLocation = columnLocation as LocationPoint;
                  Autodesk.Revit.DB.XYZ insertPoint = pointLocation.Point;
                  // get the location point
                  double temp = pointLocation.Rotation;
                  //existing rotation
                  Autodesk.Revit.DB.XYZ directionPoint = new Autodesk.Revit.DB.XYZ(0, 0, 1);
                  // define the vector of axis
                  Line rotateAxis = Line.CreateUnbound(insertPoint, directionPoint);
                  double rotateDegree = m_receiveRotationTextBox * Math.PI / 180;
                  // rotate column by rotate method
                  if (m_isAbsoluteChecked)
                  {
                     rotateDegree -= temp;
                  }
                  bool rotateResult = pointLocation.Rotate(rotateAxis, rotateDegree);
                  if (rotateResult == false)
                  {
                     TaskDialog.Show("Revit", "Rotate Failed.");
                  }
               }

VersionChecking

Application revitApplication = revit.Application.Application;

// get product name, version number and build number information
// via corresponding Properties of Autodesk.Revit.ApplicationServices.Application class
m_productName = revitApplication.VersionName;
m_version     = revitApplication.VersionNumber;
m_buildNumber = revitApplication.VersionBuild;

9.1

BoundaryConditions
边界条件,参考官方文档介绍

// invoke Document.NewPointBoundaryConditions Method 
Autodesk.Revit.DB.Structure.BoundaryConditions createdBC = 
   createDoc.NewPointBoundaryConditions(endReference, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
// invoke Document.NewLineBoundaryConditions Method
Autodesk.Revit.DB.Structure.BoundaryConditions createdBC = 
   createDoc.NewLineBoundaryConditions(hostElement.GetAnalyticalModel(), 0, 0, 0, 0, 0, 0, 0, 0);
// invoke Document.NewAreaBoundaryConditions Method
Autodesk.Revit.DB.Structure.BoundaryConditions createdBC =
   createDoc.NewAreaBoundaryConditions(hostElement.GetAnalyticalModel(), 0, 0, 0, 0, 0, 0);

CreateBeamSystem
有关梁系统,参考官方文档。

public void CreateBeamSystem() {
   Document document = m_data.CommandData.Application.ActiveUIDocument.Document;
   // create curve array and insert Lines in order
   IList<Curve> curves = new List<Curve>();
   foreach (Line line in m_data.Lines) {
      curves.Add(line);
   }
   // create beam system takes closed profile consist of lines
   BeamSystem aBeamSystem = BeamSystem.Create(document, curves, document.ActiveView.SketchPlane, 0);
   // set created beam system's layout rule and beam type property
   aBeamSystem.LayoutRule = m_data.Param.Layout;
   aBeamSystem.BeamType = m_data.Param.BeamType;
}

FoundationSlab
创建基础底板,参考官方文档。
FoundationSlab 是一种楼板,只是类型有区别。

Floor foundationSlab = m_revit.ActiveUIDocument.Document.Create.NewFoundationSlab(
                slab.OctagonalProfile, m_foundationSlabType, m_levelList.Values[0],
                true, normal);

判断楼板是否是基础底板:

public void GetInfo_FloorType(FloorType floorType)
{
    string message;
    // Get whether FloorType is a foundation slab
    message = "If is foundation slab : " + floorType.IsFoundationSlab;
    TaskDialog.Show("Revit",message);
}

FrameBuilder
创建由柱梁等组成的框架系统。

      public void CreateFraming()
      {
         Transaction t = new Transaction(m_data.CommandData.Application.ActiveUIDocument.Document, Guid.NewGuid().GetHashCode().ToString());
         t.Start();
         m_data.UpdateLevels();
         List<FamilyInstance> frameElems = new List<FamilyInstance>();
         Autodesk.Revit.DB.UV[,] matrixUV = CreateMatrix(m_data.XNumber, m_data.YNumber, m_data.Distance);

         // iterate levels from lower one to higher one by one according to FloorNumber
         for (int ii = 0; ii < m_data.FloorNumber; ii++)
         {
            Level baseLevel = m_data.Levels.Values[ii];
            Level topLevel = m_data.Levels.Values[ii + 1];

            int matrixXSize = matrixUV.GetLength(0);    //length of matrix's x range
            int matrixYSize = matrixUV.GetLength(1);    //length of matrix's y range

            // insert columns in an array format according to the calculated matrix
            foreach (Autodesk.Revit.DB.UV point2D in matrixUV)
            {
               frameElems.Add(NewColumn(point2D, baseLevel, topLevel));
            }

            // insert beams between the tops of each adjacent column in the X and Y direction
            for (int j = 0; j < matrixYSize; j++)
            {
               for (int i = 0; i < matrixXSize; i++)
               {
                  //create beams in x direction
                  if (i != (matrixXSize - 1))
                  {
                     frameElems.Add(NewBeam(matrixUV[i, j], matrixUV[i + 1, j], topLevel));
                  }
                  //create beams in y direction
                  if (j != (matrixYSize - 1))
                  {
                     frameElems.Add(NewBeam(matrixUV[i, j], matrixUV[i, j + 1], topLevel));
                  }
               }
            }

            // insert braces between the mid point of each column 
            // and the mid point of each adjoining beam
            for (int j = 0; j < matrixYSize; j++)
            {
               for (int i = 0; i < matrixXSize; i++)
               {
                  //create braces in x direction
                  if (i != (matrixXSize - 1))
                  {
                     frameElems.AddRange(
                         NewBraces(matrixUV[i, j], matrixUV[i + 1, j], baseLevel, topLevel));
                  }
                  //create braces in y direction
                  if (j != (matrixYSize - 1))
                  {
                     frameElems.AddRange(
                         NewBraces(matrixUV[i, j], matrixUV[i, j + 1], baseLevel, topLevel));
                  }
               }
            }
         }

         MoveRotateFrame(frameElems);
         t.Commit();
      }

Journaling
日志,记录和回放插件运行情况。

void WriteJournalData(ExternalCommandData commandData)
{
    // Get the StringStringMap class which can write data into.
    IDictionary<String, String> dataMap = commandData.JournalData;
    dataMap.Clear();

    // Begin to add the support data
    dataMap.Add("Name", "Autodesk.Revit");
    dataMap.Add("Information", "This is an example.");
    dataMap.Add("Greeting", "Hello Everyone.");
}

/// <summary>
/// This sample shows how to get data from journal file. 
/// </summary>
void ReadJournalData(ExternalCommandData commandData)
{
    // Get the StringStringMap class which can write data into.
    IDictionary<String, String> dataMap = commandData.JournalData;

    // Begin to get the support data.
    String prompt = "Name: " + dataMap["Name"];
    prompt += "\nInformation: " + dataMap["Information"];
    prompt += "\nGreeting: " + dataMap["Greeting"];

    TaskDialog.Show("Revit",prompt);
}

Openings
获取洞口的信息。

ReferencePlane
参照平面。

Reinforcement
钢筋,参考官方文档。

Rooms
获取房间的信息。

SharedCoordinateSystem

namespace Autodesk.Revit.DB
{
    public class SiteLocation : ElementType
    {
        public string GeoCoordinateSystemDefinition { get; }
        public string GeoCoordinateSystemId { get; }
        public double Elevation { get; }
        public string WeatherStationName { get; }
        public string PlaceName { get; set; }
        public double TimeZone { get; set; }
        public double Longitude { get; set; }
        public double Latitude { get; set; }
        public DateTime ConvertFromProjectTime(DateTime projectTime);
        public DateTime ConvertToProjectTime(DateTime inputTime);
        public bool IsCompatibleWith(SiteLocation otherSiteLocation);
        public void SetGeoCoordinateSystem(string coordSystem);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1005429.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

few shot目标检测survey paper笔记(整体概念)

paper: Few-Shot Object Detection: A Comprehensive Survey (CVPR2021) 深度学习提高了目标检测的精度&#xff0c;但是它需要大量的训练数据。 对于训练数据集中没有见过的目标&#xff0c;是检测不了的&#xff0c;所以就限制了在实际中的应用。 如果想让模型去识别新的目标…

【SLAM】坐标系变换与外参标定

【SLAM】坐标系变换与外参标定 突然发现学习文档有下面这句话&#xff1a; 学习这件事不在乎有没有人教你&#xff0c;最重要的是在于你自己有没有觉悟和恒心。——法布尔 task02从二维坐标系开始推导坐标系变换参数&#xff0c;进而加入平移&#xff0c;加入Z轴拓展到三维坐…

论文笔记:Deep Representation Learning for Trajectory Similarity Computation

ICDE 2018 1 intro 1.1 背景 用于计算轨迹相似性的成对点匹配方法&#xff08;DTW&#xff0c;LCSS&#xff0c;EDR&#xff0c;ERP&#xff09;的问题&#xff1a; 轨迹的采样率不均匀 如果两个轨迹表示相同的基本路径&#xff0c;但是以不同的采样率生成&#xff0c;那么这…

uni-app 之 下拉刷新,上拉加载,获取网络列表数据

uni-app 之 下拉刷新&#xff0c;上拉加载&#xff0c;获取网络列表数据 image.png <template><view><!-- 车源模块 -->--- uni.request 网络请求API接口 ---<view v-for"(item) in newsArr" :key"item.id" style"display: fle…

uniapp使用Vue2框架生成二维码

1. 生成二维码插件 npm install qrcodejs2 --save 上代码&#xff1a; <template><view><view class"page" ><div id"qrCode" ref"qrCodeDiv" ></div></view><view class"page">核…

微信小程序音频后台播放功能

微信小程序在手机息屏后依旧能播放音频&#xff0c;需要使用 wx.getBackgroundAudioManager() 方法创建后台音乐播放器&#xff0c;并将音乐播放任务交给这个后台播放器。 具体实现步骤如下&#xff1a; 小程序页面中&#xff0c;使用 wx.getBackgroundAudioManager() 方法创…

springMVC1之ModelAttribute注解

什么叫先执行 只要控制器方法一过来&#xff0c; 这个控制器里面的所有方法都会比下面执行的慢一点 我们来访问一个页面 也就是说访问的是控制器里面下面这个方法 看一下控制台执行效果 还是shouUser先执行了 什么叫如果没有提交的字段使用原来的数据 比如下面这个方法 我们在调…

php高级 TP+Redis实现发布订阅和消息推送案例实战

Redis 的发布-订阅模型是一种消息通信模式&#xff0c;它允许客户端之间通过特定的频道进行通信。在这种模型中&#xff0c;有些客户端负责发布消息&#xff08;发布者&#xff09;&#xff0c;而其他客户端则订阅它们感兴趣的频道并接收这些消息&#xff08;订阅者&#xff09…

自动驾驶汽车下匝道路径优化控制策略研究

摘要 随着社会不断进步&#xff0c; 经济快速发展&#xff0c; 科学技术也在突飞猛进&#xff0c; 交通行业是典型的领域之一。现阶段的交通发展&#xff37; 实现智能交通系统为目标&#xff0c; 正逐渐从信息化步入智能化&#xff0c;朝着智慧化迈进。近年来&#xff0c;一系…

线程练习题

有三个线程&#xff0c;分别只能打印A&#xff0c;B和C&#xff0c;要求按顺序打印ABC&#xff0c;打印10次 输出示例&#xff1a; ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC &#xff08;1&#xff09;、这种方法并不能达到题目要求&#xff0c;因为无法确认当线程…

ChatGPT AIGC 实现Excel行列多条件交叉查找

查找函数在Excel中一直是非常重要的知识点,我们让ChatGPT AIGC来总结一下关于查找函数的优点与了处。 Excel中的查找函数是一种非常强大且多用途的工具,具有以下优点和作用: 1. 数据定位:查找函数可以帮助我们在大量数据中快速定位某个特定的数据或信息。 2. 数据整理:如…

sql注入之高权限注入和文件读写

死在山野的风里&#xff0c;活在自由的梦里 sql注入之高权限注入 高权限注入1.多个网站共享mysql服务器2.MySQL 权限介绍3.注入流程查询所有数据库名称查询表名对应的字段名查询数据 文件读写1.文件读写注入的原理2.文件读写注入的条件3.读取文件4.写入文件 高权限注入 在数据…

linux jenkins2.414.1-1.1版本安装

文章目录 前言一、rpm文件下载二、安装jenkins2.1.升级jdk1.82.2安装jenkins2.3 启动服务2.4 使用密码登录2.5 修改插件源2.6 汉化插件安装演示 总结 前言 之前也安装过jenkins&#xff0c;但是那个版本是2.1的&#xff0c;太老了很多插件都不支持&#xff0c;现在安装目前为止…

2022年全国研究生数学建模竞赛华为杯D题PISA架构芯片资源排布问题求解全过程文档及程序

2022年全国研究生数学建模竞赛华为杯 D题 PISA架构芯片资源排布问题 原题再现&#xff1a; 一、背景介绍 芯片是电子行业的基础&#xff0c;在当前日益复杂的国际形势下&#xff0c;芯片成了各个大国必争的高科技技术。本课题关注网络通信领域的交换芯片&#xff0c;传统的交…

5.5G的技术原理和应用场景

引言 5.5G即5G-Advanced&#xff0c;是一种移动通信技术。 这个解释显然十分的boring&#xff0c;但是在5.5G还未正式进入大家生活的今天&#xff0c;这是百度词条给出为数不多的解释。 当今社会&#xff0c;移动通讯已成为人们生活中不可缺少的一部分。2G打开了文本时代&…

C/C++ 代码中使用 CMake 工程目录

C/C 代码中使用 CMake 工程目录 文章目录 C/C 代码中使用 CMake 工程目录使用原因如何使用参考链接 使用原因 在 C 代码中获取工程路径有点麻烦&#xff0c;因为如果生成的可执行文件(.exe) 位置与工程目录不同&#xff0c;则当前的路径为运行时的路径&#xff0c;可能需要通过…

H.265 视频在浏览器中的播放问题探究

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

华为OD机考算法题:MVP争夺战

目录 题目部分 解读与分析 代码实现 题目部分 题目MVP争夺战难度易题目说明在星球争霸篮球赛对抗赛中&#xff0c;强大的宇宙战队&#xff0c;希望每个人都能拿到MVP。 MVP的条件是&#xff0c;单场最高分得分获得者&#xff0c;可以并列&#xff0c;所以宇宙战队决定在比赛…

【Axure高保真原型】桥梁监控大屏可视化案例

今天和大家分享桥梁监控大屏可视化案例的原型模板&#xff0c;包括桥梁预警次数统计、预警类型分析、实时预警分析、通行趋势分析、通行类型分析、热门桥梁分析&#xff0c;里面包含多个高保真的图表模板&#xff08;多柱状图组、滚动列表、多面积图、排名图、玫瑰图&#xff0…

(未完成)【Redis专题】一线大厂Redis高并发缓存架构实战与性能优化

前言 在本章内容里&#xff0c;我希望大家还是要先看看【前置知识】的内容。按照我的大纲设计&#xff0c;我是想先给大家抛出一些大家比较陌生的&#xff0c;关于【Redis缓存问题以及缓存方案】的一些名词概念&#xff0c;再然后在正文【课程内容】里面给大家使用源码案例&am…