如何使用Revit API翻转实时部分

时间:2017-02-10 16:33:39

标签: c# revit-api revit

我希望能够使用Revit 2017 API翻转实时部分。它将等同于我在下面的图像中看到的UI功能。

Before After

我尝试过使用内置class LineitemInfo(models.Model): order = models.ForeignKey('Orders') line_item_num = models.CharField(max_length=20) item_description = models.CharField(max_length=1020, blank=True, null=True) quantity = models.FloatField(blank=True, null=True) unit = models.CharField(max_length=20, blank=True, null=True) unit_price = models.FloatField(blank=True, null=True) line_account_code = models.CharField(max_length=260, blank=True, null=True) options = models.CharField(max_length=30, blank=True, null=True) option_num = models.CharField(max_length=8, blank=True, null=True) class Meta: unique_together = (('order', 'line_item_num'),) class Orders(models.Model): pr_num = models.CharField(max_length=80, blank=True, null=True) po_num = models.CharField(max_length=56, blank=True, null=True) task_order_num = models.CharField(max_length=40, blank=True, null=True) credit_card_id = models.CharField(max_length=40, blank=True, null=True) date_ordered = models.DateField(blank=True, null=True) vendor_name = models.CharField(max_length=200, blank=True, null=True) order_description = models.CharField(max_length=400, blank=True, null=True) predicted_order_total = models.DecimalField(max_digits=20, decimal_places=2, blank=True, null=True) requestor = models.CharField(max_length=120, blank=True, null=True) class Modifications(models.Model): order = models.ForeignKey('Orders', editable=False) mod_num = models.CharField(max_length=40, blank=True, null=True, editable=False) mod_date = models.DateField(blank=True, null=True, editable=False) mod_amount = models.IntegerField(blank=True, null=True, editable=False) mod_description = models.CharField(max_length=400, blank=True, null=True, editable=False) mod_performenddate = models.DateField(blank=True, null=True, editable=False) optionyear = models.IntegerField(blank=True, null=True, editable=False) class Meta: unique_together = (('order', 'mod_num'),) ,但只会创建第二个部分标记,并带有第二个剖面视图。有什么方法可以使用Revit API实现这一目标吗?

2 个答案:

答案 0 :(得分:1)

我在Revit API论坛上找到了我的帖子How can I flip a section using the Revit 2017 API的解决方案。事实证明,我忽略了复数ElementTransformUtils.MirrorElements函数,我假设它与奇异ElementTransformUtils.MirrorElement几乎完全相同,除了做多个元素镜像而不是单个镜像。复数ElementTransformUtils.MirrorElements具有bool mirrorCopies参数,您可以将其设置为false,这将强制原始部分被镜像,而不是仅制作原始的镜像副本。以下是两个并排的功能签名:

void MirrorElement(
  Document document, 
  ElementId elementToMirror, 
  Plane plane
);

IList<ElementId> MirrorElements(
  Document document, 
  ICollection<ElementId> elementsToMirror, 
  Plane plane, 
  bool mirrorCopies
);

我的代码最终看起来像这样(elementsToMirror只包含一个元素):

ElementTransformUtils.MirrorElements(document, elementsToMirror, mirrorPlane, false);

答案 1 :(得分:0)

您需要更改CropBox对象的ViewSection属性。 MinMax属性的Z分量应该反转。